【问题标题】:How many gunicorn workers in a loadbalanced dockerized Flask app?负载平衡的 dockerized Flask 应用程序中有多少个 gunicorn 工作人员?
【发布时间】:2016-05-29 20:10:21
【问题描述】:
我将 gunicorn 用于我的烧瓶应用程序。到目前为止,我一直遵循该指南,以便每台机器的 gunicorn 工人数量为 (2 x $num_cores) + 1(它们位于负载平衡器后面)。我正在对应用程序进行 docker 化,我的问题是:我是否应该在每个容器中运行一个 gunicorn 工作者(同样,dockerised 是负载平衡的)?或者每个 docker 容器运行多个 gunicorn 工人有什么意义?
【问题讨论】:
标签:
flask
docker
gunicorn
【解决方案1】:
这完全取决于您使用的工作人员类型以及您的应用程序的具体情况。有些应用程序可以很好地与大量进程一起工作,有些应用程序可以使用线程,有些可以同时使用两者,有些应用程序可以使用 gevent 协程等。您需要在负载下试验和测试您的应用程序,以确定哪些应用程序运行良好。
通常情况下,Python 处理进程比线程执行得更好,进程的典型数量是核心数量或 2x + 1。Gevent 协程仅在一个进程(和核心)内运行,但没有超出的限制内存要求。