我目前正在单核机器上设置 Gunicorn 应用程序,我的内存有限,所以我宁愿使用 1 个工作线程和 8 个线程,也不愿使用 2 个工作线程和 4 个线程。
但是,我仍然问自己关于 1 个工作人员配置可能存在的性能问题,因为 Gunicorn 官方文档建议使用以下设置。
2 * (number of cores) + 1
考虑到使用 Python 我会被 GIL native 阻止的事实如果我想要使用线程实现真正的并行性,我仍然看不到使用比核心数量更多的进程有任何兴趣。
最佳答案
这真的取决于工作量。
对于 CPU 密集型任务,您是对的。 对于 I/O(网络、存储)密集型任务,您可以利用多个线程来提高性能,即使在单个内核上也是如此。
这都是理论上的,性能瓶颈可能来自意想不到的来源。
在我看来,最好的做法是根据经验对模拟系统在生产中面临的工作负载下的几种配置进行基准测试,然后选择产生最佳结果的配置。
关于python - 当您只有一个核心时,是否有兴趣使用超过 1 个 worker ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56683011/