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