您的位置:首頁>科技>正文

開源 ERP 軟體 Odoo 提速指南

Odoo 是最流行的 ERP(企業資源計畫)軟體, 它由 Python 編寫, 使用 PostgreSQL 作為後端資料庫。 Odoo 社區版是免費的開源軟體 -- rosehosting.com

本文導航

-獲得一台有著更多記憶體的 SSD VPS …… 16%

-在 Odoo 配置中啟用多處理器選項 …… 31%

-正確配置並優化 PostgreSQL …… 75%

編譯自: https://www.rosehosting.com/blog/how-to-speed-up-odoo/

作者: rosehosting.com

譯者: GOLinux

Odoo 是最流行的 ERP(企業資源計畫)軟體, 它由 Python 編寫, 使用 PostgreSQL 作為後端資料庫。 Odoo 社區版是免費的開源軟體, 它囊括了專案管理, 生產、財務、記帳和銷售管理, 倉儲管理, 人力資源管理, 甚至還有更多專案。 裡面包含了 30 個核心模組, 以及超過 3000 個社區模組。 Odoo 部署了大量的模組, 資料庫裡也包含了龐大的資料等等, 這些都使得這個軟體比較複雜, 可能會導致效率低下。 Odoo 的兩個主要瓶頸在於磁片訪問, 以及資料庫查詢時間。

為了提升 Odoo 實例的性能, 你可以:

使用一個快速磁碟機來存儲(最好是 SSD)。

使用記憶體充足的 Linux VPS[1]。

在 Odoo 中啟動

多處理器模式multiprocessing mode

正確配置並優化 PostgreSQL 服務。

獲得一台有著更多記憶體的 SSD VPS

正如我們先前提到的,

隨機磁片存取速度是 Odoo 的主要瓶頸之一。 因此, 要確保 Odoo 部署在一台基於 SSD 的 VPS[2] 上。 由於 Odoo 是一個對資源十分敏感的應用, 因此始終要把它安裝在一台有著更多 RAM 的 VPS 上, 如果可能, 將整個 Odoo 實例及其資料庫載入到 RAM 中。 固態磁碟機尤其以隨機存取見長, 而且由於 SSD 沒有任何活動部件, 它們能夠取得數百倍于傳統機械硬碟驅動器的隨機存取 IOPS(LCTT譯注:即每秒讀寫操作的次數)。 如果伺服器沒有採用 SSD 來驅動或提速, 那麼不管你對 Odoo 做多少優化和配置都無濟於事, 它仍然會很慢。 所以, 獲得正確的主機來部署 Odoo 是提升其性能的最重要因素。

其它 Odoo 優化包括:

在 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 的 CPU 核心數一樣, 或者, 如果你想為 PostgreSQL 資料庫、cron 任務、或者其它和 Odoo 實例安裝在同一台 VPS 上的其它應用預留出一些 CPU 核心, 那麼你可以將工作進程數設置為一個比 VPS 上可用 CPU 核心更低的值, 以避免資源耗盡。

limit-memory-soft 和 limit-memory-hard 參數不言自明, 你可以使用預設值, 也可以根據 VPS 上的實際可用 RAM 來進行修改。

例如, 如果你的 VPS 有 8 個 CPU 核心, 以及 16 GB 記憶體, 那麼你可以將工作進程數設置為 17(CPU 核心數 x 2 + 1), limit-memory-soft 總值設置為 640 x 17 = 10880 MB, 而 limit-memory-hard 總數設置為 68MB x 17 = 13056 MB, 這樣, Odoo 就會有總計達 12.75 GB 的 RAM。

例如, 在一台擁有 16 GB RAM 和 8 個 CPU 核心的 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 設定檔(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.confshared_buffers = 3072MB

effective_cache_size = 8192MB

重啟 PostgreSQL 服務來讓修改生效。

同時, 也別忘了週期性手動執行 ‘VACUUM[3]’。 此操作會將陳舊或臨時資料清理乾淨, 但請牢記, 它會大量佔用 CPU 和磁片使用。

via: https://www.rosehosting.com/blog/how-to-speed-up-odoo/

作者:rosehosting.com[4] 譯者:GOLinux 校對:jasminepeng

本文由 LCTT 原創編譯, Linux中國 榮譽推出

[1]: 記憶體充足的 Linux VPS - https://www.rosehosting.com/linux-vps-hosting.html

[2]: 基於 SSD 的 VPS - https://www.rosehosting.com/linux-vps-hosting.html

[3]: VACUUM - https://wiki.postgresql.org/wiki/Introduction_to_VACUUM,_ANALYZE,_EXPLAIN,_and_COUNT

[4]: rosehosting.com - https://www.rosehosting.com/

Next Article
喜欢就按个赞吧!!!
点击关闭提示