Odoo含有多線程的內(nèi)置HTTP服務(wù)器。
對(duì)于生產(chǎn)用途,建議使用多處理服務(wù)器,因?yàn)樗梢蕴岣叻€(wěn)定性,更好地利用計(jì)算資源,并且可以得到更好的監(jiān)視和資源限制。
- 通過(guò)配置啟用多處理(workers<>0),workers的數(shù)量應(yīng)基于計(jì)算機(jī)中內(nèi)核的數(shù)量(可能為cron workers留出一定的空間,具體取決于預(yù)測(cè)的cron工作量)
- 可以根據(jù)硬件配置來(lái)配置工作限制,以避免資源耗盡
警告
- Windows目前不提供多處理模式Windows目前不提供多處理模式
workers計(jì)算
- 經(jīng)驗(yàn)法則:(#CPU * 2)+1
- 計(jì)劃管理器 Cron workers需要1 CPU
- 1個(gè)workers 約支持 6個(gè)并發(fā)用戶
內(nèi)存大小計(jì)算
- 80/20原則: 20%的請(qǐng)求是繁重的請(qǐng)求,而80%的請(qǐng)求比較簡(jiǎn)單
- 繁重的工作,如果所有計(jì)算字段都經(jīng)過(guò)精心設(shè)計(jì),SQL請(qǐng)求經(jīng)過(guò)精心設(shè)計(jì),…估計(jì)會(huì)消耗大約1G的RAM
- 在相同的情況下,較輕的worker估計(jì)消耗約150MB的RAM
RAM = #worker *((light_worker_ratio *light_worker_ram_estimation)+(heavy_worker_ratio * heavy_worker_ram_estimation))
配置樣本
- 具有4 CPU,8線程的服務(wù)器
- 60個(gè)并發(fā)用戶
- 60個(gè)用戶/ 6 = 10 <-需要的理論workers
- (4 * 2)+ 1 = 9 <-理論上的最大workers
- 我們將使用8名workers+ 1名cron。我們還將使用監(jiān)視系統(tǒng)來(lái)測(cè)量cpu負(fù)載,并檢查它是否在7到7.5之間。
- 內(nèi)存= 9 *((0.8 *150)+(0.2 * 1024))?= 3Go RAM for Odoo
# vi odoo.conf
[options]
limit_memory_hard = 1677721600
limit_memory_soft = 629145600
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
max_cron_threads = 1
worker = 8