在负载均衡dockerized Flask应用程序中有多less个gunicorn worker?

我用gunicorn为我的烧瓶应用程序。 到目前为止,我一直遵循这个指导原则,每台机器上的gunicorn worker的数量是(2 x $ num_cores)+1(他们坐在负载均衡器后面)。 我正在dockerising应用程序的过程中,我的问题是:我应该为每个容器运行一个gunicorn worker(再次,dockerised是负载均衡)? 或者每个docker集装箱运行多个gunicorn工人有什么意义?

这完全取决于您使用的工作types以及您的应用程序的具体情况。 一些应用程序可以很好地处理大量的进程,一些有线程,一些有两者结合,一些有gevent协同程序等等。你可以在负载下试验和testing你的应用程序,以确定哪些工作正常。

通常情况下,Python对于进程的执行优于线程,而进程的典型数量是核心数量或者2x + 1。Gevent协同程序只能在一个进程(和核心)内运行,但是没有超出内存需求的限制。