如何理解工人如何在枪支中被用尽

时间:2016-08-12 12:20:19

标签: python linux nginx flask gunicorn

我基本上想知道枪手的工作方式。我有一台服务器,机器上有4个工作人员,4GB RAM,2个CPU,并且nginx作为前端服务请求和反向代理。我有同时发送到服务器的请求。

  1. 我想知道工人是如何被用尽的,如果他们是四个请求,他们是否在四个工人之间进行负载平衡,如果1个请求每个工人?

  2. 此外,如何检查每个工作人员使用了多少内存?我已将最大请求数设置为100.因此使用这100个最大请求。即使1名工人达到100个请求,它是否会重新加载整个4名工人。

  3. 如何更深入地了解工人以及工人如何记忆以及当前每个工人的请求。

1 个答案:

答案 0 :(得分:2)

简短回答:取决于工人类型和枪支配置。

答案很长:

  1. 是的,只要有工人可用。当gunicorn启动时,-w选项配置工作器的数量,其实现因工作者类型而异。某些工作类型使用线程,其他工作类型使用事件循环并且是异步性能因类型而异 - 通常情况下,异步通过事件循环是首选,因为它在资源上更轻,性能更高。
  2. 每个工人都是从主炮兵过程中分出来的。使用ps线程输出可以看到内存使用,例如ps -fL -p <gunicorn pid>。每个工作者的最大连接数来自文档,因此只会重新加载达到100个连接的工作者。
  3. a stats collecting library for gunicorn虽然我自己没有使用过它。