Odoo 在 非 windows 系統下, 支持 并行處理,開啟 workers 選項即可。
? ?
odoo有以下配置項 跟 并行處理有關
? ?
配置項 | 幫助信息 | 解說 |
limit_memory_soft | Maximum allowed virtual memory per worker, when reached the worker be reset after the current request (default 671088640 aka 640MB). | 每個worker允許使用的最大 虛擬內存,達到后該worker將在當前請求完成被重置 |
limit_memory_hard | Maximum allowed virtual memory per worker, when reached, any memory allocation will fail (default 805306368 aka 768MB). | 每個worker允許使用的最大 虛擬內存,將不能再分配任何內存 |
limit_time_cpu | Maximum allowed CPU time per request (default 60). | 每個請求允許使用的最大CPU時間 |
limit_time_real | Maximum allowed Real time per request (default 120). | 每個請求允許使用的最大Real時間 |
limit_request | Maximum number of request to be processed per worker (default 8192). | 每個workder 能處理的最大請求 |
?? | ?? | ?? |
?? | ?? | ?? |
? ?
對于worker 的分配,通常會 按照 cpu core 的數量來計算,公式是 2*core+1 , 對于有4個 cpu core 的 主機, 配置 workers = 9
? ?
如果使用默認的 limit_request 配置項,那么 開啟 9個 worker 能提供 最大 8192 * 9 = 73728 個請求
? ?
如果使用默認的 limit_memory_soft 以及 limit_memory_hard, 那么將會 消耗掉 虛擬內存 768 * 9 = 6,912 MB
? ?
參考
虛擬內存
? ?
? ?
CPU time vs Real time
? ?
Real time 是 實際時鐘 計時, 而 cpu time是 cpu 處理指令時 花費的時間, 例如
? ?
Real time 為 2 秒 + io 時間
CPU time = user time + sys time = 0.015 + 0.000 = 0.015
? ?
? ?
Odoo multiprocessing
技術