Odoo含有多线程的内置HTTP服务器。
对于生产用途,建议使用多处理服务器,因为它可以提高稳定性,更好地利用计算资源,并且可以得到更好的监视和资源限制。
- 通过配置启用多处理(workers<>0),workers的数量应基于计算机中内核的数量(可能为cron workers留出一定的空间,具体取决于预测的cron工作量)
- 可以根据硬件配置来配置工作限制,以避免资源耗尽
警告
- Windows目前不提供多处理模式Windows目前不提供多处理模式
workers计算
- 经验法则:(#CPU * 2)+1
- 计划管理器 Cron workers需要1 CPU
- 1个workers 约支持 6个并发用户
内存大小计算
- 80/20原则: 20%的请求是繁重的请求,而80%的请求比较简单
- 繁重的工作,如果所有计算字段都经过精心设计,SQL请求经过精心设计,…估计会消耗大约1G的RAM
- 在相同的情况下,较轻的worker估计消耗约150MB的RAM
RAM = #worker *((light_worker_ratio *light_worker_ram_estimation)+(heavy_worker_ratio * heavy_worker_ram_estimation))
配置样本
- 具有4 CPU,8线程的服务器
- 60个并发用户
- 60个用户/ 6 = 10 <-需要的理论workers
- (4 * 2)+ 1 = 9 <-理论上的最大workers
- 我们将使用8名workers+ 1名cron。我们还将使用监视系统来测量cpu负载,并检查它是否在7到7.5之间。
- 内存= 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
网友评论