为什么gunicorn不会使用所有的资源,而是提供缓慢的页面

时间:2018-01-15 21:18:01

标签: django nginx gunicorn jelastic

我设置了以下内容:

  • 具有自动垂直缩放的Jelastic(PaaS)
  • Nginx作为SSL / TLS端点+反向代理(在docker内)
  • Gunicorn服务于Django应用程序(在docker内)
  • Postgres(在码头工人内部)

当交通量很大时#34; (100 r / s),页面传递速度很慢,即使所有容器都不是很常用(cpu 40%在Idle上应用程序容器,只使用2gb的8个RAM使用 - 其他容器大于或小于0% CPU使用率)。

我已经将Gunicorn工作人员设置为16,我已经检查了linux限制(fd,socket),一切似乎都没问题,为什么它不能扩展?

nginx.conf(键值)

/etc/modules

Gunicorn开始:

ifconfig usb0

1 个答案:

答案 0 :(得分:1)

  

为什么它不能扩大规模?

如果worker_processes设置为auto,那就更好了。这意味着Nginx根据可用于该进程的物理内核数量自行分配工作程序。通过这种方式,当可以更改核心数时,Jelastic会在垂直资源扩展期间自动控制工作人员。 例如,如果您有4个内核(内核数量取决于最新Jelastic版本中的cloudlet数量),那么设置很多工作人员就没有任何意义,因为它们将处于空闲状态并且无法获得利用率控制。实际上,CPU在这里可能不是问题。即使你拥有那些工作者,CPU也可能负载不足,瓶颈可能出现在网络/ RAM /磁盘等中。因此,CPU可能无法加载到足以触发扩展过程。

  

我已经将Gunicorn工作人员设置为16

通常,工人数量=核心数量。设置如此高价值的唯一原因可能是核心数量相同,但容器中不可能有16个核心。

简而言之,如果您向我们提供托管服务提供商和环境名称,我们将能够近距离观察。