我的设置包括负载均衡器(haproxy)和两个运行 Django 的 nginx 服务器。服务器 2 工作正常,但有时服务器 1 会开始崩溃并且日志会充满
*** uWSGI listen queue of socket ":8000" (fd: 3) full !!! (101/100) ***
留言。
我该如何解决这个问题?
您的收听队列已满。当你运行 uwsgi 时,传递它
--listen 1024
将队列增加到 1024.
请注意,队列越大,您就越容易受到 DDoS 攻击。
您可能还需要增加
net.core.somaxconn
sysctl -w net.core.somaxconn=65536
实际上,增加队列大小没有多大意义,因为当请求位于 uWSGI 队列中时,它们不会被工作人员处理并且响应时间会增加。要解决 uWSGI 队列溢出的症状,您需要应用程序的垂直或水平扩展(如果可以通过您的基础架构完成)。