ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как ускорить Odoo

Как ускорить Odoo

Odoo является наиболее популярным ERP программным обеспечением (Enterprise Resource Planning), написанный на Python и использующей PostgreSQL в качестве базы данных бэк-энда. Community Edition Odoo является свободным и с открытым исходным кодом, который включает в себя управление проектами, производства, бухгалтерии, выставления счетов и продаж, управление складом, человеческие ресурсы и многое другое. Есть около 30 основных модулей и более 3000 дополнительных модулей. Odoo представляет собой сложное программное обеспечение, и развертывание ряда модулей, имеющих большой объем данных внутри базы данных и т.д. может вызвать снижение производительности. Два основных узких места Odoo, это доступа к диску и время запроса к базе данных.

Для повышения производительности экземпляра Odoo, убедитесь в использовании:

SSD VPS с большим количеством оперативной памяти

Как мы уже упоминали ранее, случайная скорость доступа к диску является одним из основным узким местом Odoo, поэтому убедитесь, что для размещается Odoo на основе SSD VPS. Всегда устанавливайте Odoo на VPS с большим количеством оперативной памяти, поскольку Odoo известен как ресурс интенсивного применения, и , если это возможно загрузите весь экземпляр Odoo и свою базу данных в оперативную память. Твердотельные накопители превосходят особенно в случайном доступе и они могут достичь IOPS произвольного доступа в сотни раз выше, чем обычных механических дисковых накопителей, поскольку SSD – накопители не имеют движущихся частей. Независимо от того, сколько оптимизации и конфигурации вы делаете на вашем Odoo, если сервер не быстрый или не работает на SSD, ваш Odoo будет медленным. Правильный хостинг для вашего Odoo является наиболее важным фактором производительности вашего Odoo.

Другие оптимизации Odoo включают в себя:

Включите опцию MultiProcessing в конфигурации Odoo

Для этого найдите двоичный файл OpenERP-server:

#updatedb
#locate openerp-server

/usr/bin/openerp-server

Выполните следующую команду:

#/usr/bin/openerp-server --help

Вывод этой команды должен быть таким:

Usage: openerp-server [options]

Options:
  --version             show program's version number and exit

  (...)

  Multiprocessing options:
    --workers=WORKERS   Specify the number of workers, 0 disable prefork mode.
    --limit-memory-soft=LIMIT_MEMORY_SOFT
                        Maximum allowed virtual memory per worker, when
                        reached the worker be reset after the current request
                        (default 671088640 aka 640MB).
    --limit-memory-hard=LIMIT_MEMORY_HARD
                        Maximum allowed virtual memory per worker, when
                        reached, any memory allocation will fail (default
                        805306368 aka 768MB).
    --limit-time-cpu=LIMIT_TIME_CPU
                        Maximum allowed CPU time per request (default 60).
    --limit-time-real=LIMIT_TIME_REAL
                        Maximum allowed Real time per request (default 120).
    --limit-request=LIMIT_REQUEST
                        Maximum number of request to be processed per worker
                        (default 8192).

Число рабочих процессов должно быть равно количеству процессорных ядер, выделенных на VPS, или если вы хотите оставить некоторые ядра процессора исключительно для базы данных PostgreSQL, хрон рабочих мест или других приложений, установленных на том же самом VPS, где установлен и работает экземпляр Odoo, установите количество рабочих на более низкое значение, чем процессорных ядер, доступных на VPS, чтобы избежать истощения ресурсов.

limit-memory-soft, limit-memory-hard и self-explanatory, вы должны оставить их значения по умолчанию или изменить их в зависимости от оперативной памяти, доступной на фактической VPS.

Например, если у вас есть VPS с 8 ядрами CPU и 16 ГБ оперативной памяти, количество рабочих должно быть 17 (ядер процессора * 2 + 1), общий limit-memory-soft значение будет 640 х 17 = 10880 MB, и общий limit-memory-hard 768MB х 17 = 13056 MB, поэтому Odoo будет использовать максимум 12,75 ГБ оперативной памяти.

Например, на VPS с 16 Гб оперативной памяти и 8 процессорных ядер, отредактировать конфигурационный файл Odoo (например, /etc/odoo-server.conf), и добавьте в него следующие строки:

vi /etc/odoo-server.conf
workers = 17

limit_memory_hard = 805306368

limit_memory_soft = 671088640

limit_request = 8192

limit_time_cpu = 60

limit_time_real = 120

max_cron_threads = 2

Не забудьте перезапустить Odoo для того, чтобы изменения вступили в силу.

Правильно настроить и оптимизировать PostgreSQL

Что касается оптимизации PostgreSQL, это хорошая идея, чтобы обновить до последней версии PostgreSQL всякий раз, когда выходит новая версия. Есть два параметра в файле конфигурации PostgreSQL (pg_hba.conf), которые должны быть изменены: shared_buffers и effective_cache_size. Установите shared_buffers до 20% от объема доступной памяти, и effective_cache_size до 50% от объема доступной памяти.

Например, если Odoo установлена ​​на SSD VPS с 16 Гб оперативной памяти, используйте следующие параметры файла pg_hba.conf:

vi /var/lib/postgresql/data/pg_hba.conf
shared_buffers = 3072MB
effective_cache_size = 8192MB

Перезапустите службу PostgreSQL для того, чтобы изменения вступили в силу.

Кроме того, не забудьте вручную запускать ” VACUUM ” периодически. ‘Vacuuming’ очищает устаревшие или временные данные, но, пожалуйста, имейте в виду, что это тяжело на CPU и использование дискового пространства.

Exit mobile version