Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading “a”是什么;“工人”;在奥多?_Multithreading_Odoo_Odoo 8_Python Multithreading_Worker - Fatal编程技术网

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