Multithreading “a”是什么;“工人”;在奥多?
工人的目的是什么?这些工人是从事多线程还是其他工作的?当Multithreading “a”是什么;“工人”;在奥多?,multithreading,odoo,odoo-8,python-multithreading,worker,Multithreading,Odoo,Odoo 8,Python Multithreading,Worker,工人的目的是什么?这些工人是从事多线程还是其他工作的?当Odoo实例启动时,我在命令行上看到至少6名工作人员通知: 2016-03-10 13:55:09,602 15504 INFO ? openerp.service.server: Worker WorkerHTTP (15504) alive 2016-03-10 13:55:09,606 15503 INFO ? openerp.service.server: Worker WorkerHTTP (15503) alive 2016-0
Odoo
实例启动时,我在命令行上看到至少6名工作人员通知:
2016-03-10 13:55:09,602 15504 INFO ? openerp.service.server: Worker WorkerHTTP (15504) alive
2016-03-10 13:55:09,606 15503 INFO ? openerp.service.server: Worker WorkerHTTP (15503) alive
2016-03-10 13:55:09,625 15507 INFO ? openerp.service.server: Worker WorkerCron (15507) alive
2016-03-10 13:55:09,628 15506 INFO ? openerp.service.server: Worker WorkerCron (15506) alive
2016-03-10 13:55:09,629 15508 INFO ? openerp.service.server: Worker WorkerCron (15508) alive
2016-03-10 13:55:09,629 15509 INFO ? openerp.service.server: Worker WorkerCron (15509) alive
那么WorkerHTTP
和WorkerCron
之间有什么区别呢?老实说,我不知道他们是干什么的。
在Odoo文档中对此进行了解释
Odoo包括内置HTTP服务器,使用多线程或
多处理
对于生产使用,建议使用多处理
服务器在提高稳定性的同时,更好地利用了
可以更好地监控和管理计算资源
资源有限
通过配置:选项:一个非零数字,可以启用多处理
工作进程的数量
,工作进程的数量应
基于机器中的芯数(可能有一些
cron工作者的空间(取决于预测的cron工作量)
工作限制可以根据硬件配置配置为
避免资源耗尽警告
注意:多处理模式目前在Windows上不可用
配置
每个可用CPU应使用2个工作线程+1个cron线程,每10个并发用户应使用1个CPU。确保调整配置文件中的内存限制和cpu限制
workers = --workers <count>
致力于cron作业的工人数量。默认值为2。辅助线程是多线程模式下的线程和多处理模式下的进程
对于多处理模式,这是对HTTP工作进程的补充
实例
我在上面的评论中添加了@prakah的信息:
Heading | Description
------------------ | ---------------------------------------------------------
CPUs | Number of CPU Cores not threads
Physical | Physical memory, not virtual or swap
workers | Number of workers specified in config file (workers = x)
cron | Number of workers for cron jobs (max_cron_threads = xx)
Mem Per | Memory in MB that is the max memory for request per worker
Max Mem | Maximum amount that can be used by all workers
limit_memory_soft | Number in bytes that you will use for this setting
注意:如果通知小于总内存,则为最大内存,这是故意的。作为
员工处理的请求可以超过Mem Per限制,因此
负载较重的服务器可能超过此数量。这就是为什么会这样
是内置的“头部空间”
CPUs | Physical | workers | cron | Mem Per | Max Mem | limit_memory_soft
---- | -------- | ------- | ---- | ------- | ------- | -----------------------
ANY | =< 256MB | NR | NR | NR | NR | NR
1 | 512MB | 0 | N/A | N/A | N/A | N/A
1 | 512MB | 1 | 1 | 177MB | 354MB | 185127901
1 | 1GB | 2 | 1 | 244MB | 732MB | 255652815
1 | 2GB | 2 | 1 | 506MB | 1518MB | 530242876
2 | 1GB | 3 | 1 | 183MB | 732MB | 191739611
2 | 2GB | 5 | 2 | 217MB | 1519MB | 227246947
2 | 4GB | 5 | 2 | 450MB | 3150MB | 471974428
4 | 2GB | 5 | 2 | 217MB | 1519MB | 227246947
4 | 4GB | 9 | 2 | 286MB | 3146MB | 300347363
4 | 8GB | 9 | 3 | 546MB | 6552MB | 572662306
4 | 16GB | 9 | 3 | 1187MB | 14244MB | 1244918057
cpu |物理|工作| cron | Mem Per | Max Mem | limit | u memory | u soft
---- | -------- | ------- | ---- | ------- | ------- | -----------------------
任何|=<256MB | NR | NR | NR | NR | NR
1 | 512MB | 0 | N/A | N/A | N/A | N/A
1 | 512MB | 1 | 1 | 177MB | 354MB | 185127901
1 | 1GB | 2 | 1 | 244MB | 732MB | 255652815
1 | 2GB | 2 | 1 | 506MB | 1518MB | 530242876
2 | 1GB | 3 | 1 | 183MB | 732MB | 191739611
2 | 2GB | 5 | 2 | 217MB | 1519MB | 227246947
2 | 4GB | 5 | 2 | 450MB | 3150MB | 471974428
4 | 2GB | 5 | 2 | 217MB | 1519MB | 227246947
4 | 4GB | 9 | 2 | 286MB | 3146MB | 300347363
4 | 8GB | 9 | 3 | 546MB | 6552MB | 572662306
4 | 16GB | 9 | 3 | 1187MB | 14244MB 1244918057
正如您可能知道的那样,这会阻止Python执行任何真正的线程
为了更好地了解员工,让我们看看没有他们会发生什么:
如果没有启用worker,那么您的odoo实例在主机中只使用一个核心,因此一旦客户端数量超过一个,性能就会下降,因为新客户端需要等待轮到它使用odoo资源
通常,生产服务器将有多个核心,因此需要在机器资源上扩展odoo;简单地说,workers在某种程度上等同于在同一台机器上启动多个odoo实例。访问此链接s://github.com/DocCyblade/tkl-odoo/blob/master/overlay/etc/odoo/openerp-server.conf#L395@prakash链接已断开。很抱歉,我仍然不明白为什么
768MB
是805306368
。你能给我解释一下吗。@萨拉哈丁1MB=1024kB
,1kB=1024B
。因此768 x 1024 x 1024=805306368 B
--limit-memory-hard <limit>
--limit-time-cpu <limit>
--limit-time-real <limit>
--max-cron-threads <count>
Heading | Description
------------------ | ---------------------------------------------------------
CPUs | Number of CPU Cores not threads
Physical | Physical memory, not virtual or swap
workers | Number of workers specified in config file (workers = x)
cron | Number of workers for cron jobs (max_cron_threads = xx)
Mem Per | Memory in MB that is the max memory for request per worker
Max Mem | Maximum amount that can be used by all workers
limit_memory_soft | Number in bytes that you will use for this setting
CPUs | Physical | workers | cron | Mem Per | Max Mem | limit_memory_soft
---- | -------- | ------- | ---- | ------- | ------- | -----------------------
ANY | =< 256MB | NR | NR | NR | NR | NR
1 | 512MB | 0 | N/A | N/A | N/A | N/A
1 | 512MB | 1 | 1 | 177MB | 354MB | 185127901
1 | 1GB | 2 | 1 | 244MB | 732MB | 255652815
1 | 2GB | 2 | 1 | 506MB | 1518MB | 530242876
2 | 1GB | 3 | 1 | 183MB | 732MB | 191739611
2 | 2GB | 5 | 2 | 217MB | 1519MB | 227246947
2 | 4GB | 5 | 2 | 450MB | 3150MB | 471974428
4 | 2GB | 5 | 2 | 217MB | 1519MB | 227246947
4 | 4GB | 9 | 2 | 286MB | 3146MB | 300347363
4 | 8GB | 9 | 3 | 546MB | 6552MB | 572662306
4 | 16GB | 9 | 3 | 1187MB | 14244MB | 1244918057