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