Python 当您只有一个核心时,是否有兴趣使用一个以上的工人?

Python 当您只有一个核心时,是否有兴趣使用一个以上的工人?,python,django,multithreading,gunicorn,worker,Python,Django,Multithreading,Gunicorn,Worker,我目前正在单核机器上设置Gunicorn应用程序,内存有限,因此我宁愿使用1个辅助线程和8个线程,而不是使用2个辅助线程和4个线程 但是,我仍然在问自己,在Gunicorn官方文档建议使用以下设置时,1工作者配置可能存在的性能问题 2 * (number of cores) + 1 考虑到使用Python时,如果我想使用线程实现真正的并行性,我会被GIL在本机阻止,我仍然不认为使用比核心数量更多的进程会引起任何兴趣。这实际上取决于工作负载 对于CPU密集型任务,您是对的。 对于I/O(网络、存

我目前正在单核机器上设置Gunicorn应用程序,内存有限,因此我宁愿使用1个辅助线程和8个线程,而不是使用2个辅助线程和4个线程

但是,我仍然在问自己,在Gunicorn官方文档建议使用以下设置时,1工作者配置可能存在的性能问题

2 * (number of cores) + 1

考虑到使用Python时,如果我想使用线程实现真正的并行性,我会被GIL在本机阻止,我仍然不认为使用比核心数量更多的进程会引起任何兴趣。

这实际上取决于工作负载

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

这都是理论上的问题,性能瓶颈可能来自意外的来源

在我看来,最好的做法是根据经验,在模拟系统在生产中所面临的工作负载下对几个配置进行基准测试,并选择产生最佳结果的配置