如何加快Odoo

Odoo是用Python编写的最受欢迎的ERP软件(企业资源计划),并使用PostgreSQL作为其后端数据库。 Community Edition Odoo是免费和开源的,包括项目管理,制造,会计,发票和销售,仓库管理,人力资源等。 大约有30个主要模块,超过3000个附加模块。 Odoo是复杂的软件,并且在数据库中部署了许多包含大量数据的模块等。 可能会导致性能下降。 Odoo的两个主要瓶颈是磁盘访问和数据库查询时间。 为了提高Odoo实例的性能,请确保使用:

  • 快速存储驱动器(最好是SSD)
  • 具有大量RAM的Linux VPS。
  • 在Odoo中启用多处理模式。
  • 正确配置和优化PostgreSQL服务。

具有大量RAM的SSD VPS

如前所述,随机磁盘访问速度是Odoo的主要瓶颈之一,因此请确保托管基于SSD的Odoo VPS。 始终将Odoo安装在具有大量RAM的VPS上,因为众所周知Odoo会占用大量资源,并尽可能将整个Odoo实例和数据库加载到RAM中。 固态驱动器尤其擅长于随机访问,并且由于SSD没有活动部件,因此其随机访问IOPS比传统机械磁盘驱动器高数百倍。 无论您在Odoo上进行了多少优化和配置,如果服务器运行不快或在SSD上运行,Odoo都会变慢。 Odoo的正确托管是Odoo性能的最重要因素。

其他Odoo优化包括:

在Odoo配置中启用MultiProcessing选项

为此,请找到OpenERP服务器二进制文件:

#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数据库,cron作业或安装和运行Odoo实例的同一VPS上安装的其他应用程序,请安装为避免资源枯竭,工作人员的数量应低于VPS上可用的处理器核心的数量。

limit-memory-soft,limit-memory-hard和不言自明的,您应该将它们保留为默认值或根据实际VPS上可用的RAM进行更改。

例如,如果您有一个具有8个CPU内核和16 GB RAM的VPS,则工作程序的数量应为17(处理器内核* 2 +1),总的限制内存软值将为640 x 17 = 10880 MB,总限制为-硬内存768MB x 17 = 13056 MB,因此Odoo将使用最多12.75 GB的RAM。

例如,在具有16 GB RAM和8个处理器核心的VPS上,编辑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安装在具有16 GB RAM的SSD VPS上,请在pg_hba.conf文件中使用以下参数:

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

重新启动PostgreSQL服务以使更改生效。

同样,不要忘记定期手动运行“ VACUUM”。 “抽真空”可以清除陈旧的或临时的数据,但是请注意,它占用了CPU和大量磁盘。

Sidebar