odoo 是最流行的 erp(企業資源計畫)軟體,它由 python 編寫,使用 postgresql 作為後端資料庫。odoo 社群版是免費的開源軟體,它囊括了專案管理,生產、財務、記賬和銷售管理,倉儲管理,人力資源管理,甚至還有更多專案。裡面包含了 30 個核心模組,以及超過 3000 個社群模組。odoo 部署了大量的模組,資料庫裡也包含了龐大的資料等等,這些都使得這個軟體比較複雜,可能會導致效率低下。odoo 的兩個主要瓶頸在於磁碟訪問,以及資料庫查詢時間。
為了提公升 odoo 例項的效能,你可以:
正如我們先前提到的,隨機磁碟訪問速度是 odoo 的主要瓶頸之一。因此,要確保 odoo 部署在一台基於 ssd 的 vps 上。由於 odoo 是乙個對資源十分敏感的應用,因此始終要把它安裝在一台有著更多 ram 的 vps 上,如果可能,將整個 odoo 例項及其資料庫載入到 ram 中。固態磁碟驅動器尤其以隨機訪問見長,而且由於 ssd 沒有任何活動部件,它們能夠取得數百倍於傳統機械硬碟驅動器的隨機訪問 iops(lctt譯註:即每秒讀寫操作的次數)。如果伺服器沒有採用 ssd 來驅動或提速,那麼不管你對 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 配置檔案(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 和磁碟使用。
原文發布時間為:2017-03-14
開源ERP和其它ERP軟體比較
現在有許多企業將erp專案,在企業中沒有實施好,都歸咎於軟體產品不好。其實,這只是你們的藉口。若想要將erp軟體真正與企業融合一體,首先得考慮企業的自身情況,再去選擇適合的 erp軟體。開源erp和其它erp軟體比較,如圖所示 成本比較開源 erp其它中型 erp 軟體許可 免費10 100 萬 公...
開源ERP和其它ERP軟體比較
現在有許多企業將erp專案,在企業中沒有實施好,都歸咎於軟體產品不好。其實,這只是你們的藉口。若想要將erp軟體真正與企業融合一體,首先得考慮企業的自身情況,再去選擇適合的 erp軟體。開源erp和其它erp軟體比較,如圖所示 成本比較 開源 erp 其它中型 erp 軟體許可 免費10 100 萬...
說說ERP軟體的系統設計 開源軟體誕生8
用日誌記錄 開源軟體 的誕生 點亮星標,感謝支援,與開發者交流 kzca2000 碼雲 github 赤龍erp官網 筆者是軟體專業出身,學了好多的理論知識,但我總結就是理論過於枯燥,而且在實戰中基本用不上。所以今天就來說說我是如何學習系統設計的。還記得我剛剛畢業,第一次面對要獨立做乙個系統或 時的...