当您只有一个单一的核心时,使用多于一个的工人会有兴趣吗?

时间:2019-06-20 09:32:36

标签: python django multithreading gunicorn worker

我目前正在单核计算机上设置Gunicorn应用程序,并且内存有限,所以我宁愿使用1个Worker和8个线程,而不是2个具有4个线程的worker。

但是,我仍然要问自己一个问题,如1号工人配置可能会导致性能问题,如Gunicorn官方文档中所建议使用以下设置。

2 * (number of cores) + 1

考虑到使用Python我会被GIL本地阻止这一事实,如果我想使用线程实现真正的并行性,我仍然看不到使用比内核数量更多的进程的任何兴趣。

1 个答案:

答案 0 :(得分:1)

这实际上取决于工作量。

对于CPU密集型任务,您是对的。 对于I / O(网络,存储)密集型任务,即使在单个内核上,您也可以利用许多线程来提高性能。

理论上都是如此,性能瓶颈可能来自意料之外的来源。

我认为最好的做法是根据经验对几种配置进行基准测试,以模拟系统在生产中将面对的工作,并选择产生最佳结果的配置。