我使用gunicorn为我的烧瓶应用程序。到目前为止,我一直遵循指南,以便每台机器的炮手工人数量为(2 x $ num_cores)+ 1(他们坐在负载平衡器后面)。我正在使应用程序停泊,我的问题是:我应该为每个容器运行一个gunicorn工作者(同样,dockerised负载平衡)?或者,每个码头集装箱运行多个枪炮工人是否有任何意义?
答案 0 :(得分:5)
这完全取决于您使用的工作人员类型以及您应用的具体情况。一些应用程序可以很好地处理大量进程,一些有线程,一些有两者的组合,一些有gevent协程等等。这取决于你在负载下试验和测试你的应用程序,以确定什么效果很好。
通常,Python在进程上的性能优于线程,并且典型的进程数量是核心数量或2x + 1.Gevent协同程序仅在一个进程(和核心)内运行但没有超出限制记忆要求。