uWSGI listen queue of socket "127.0.0.1:9001" (fd: 3) full !!!

出现问题的环境

Django 项目使用 uWSGI + Nginx 部署,出现如题问题。

 

可能导致的原因

1. 防火墙配置问题,限制了服务器外发。

2. 并发量剧增。

 

对于第2个,因为每个监听的 socket,在没有 accept 之前,等待处理的 socket 队列长度,Linux (至少在 CentOS 7 中) 默认是 128,故考虑调整 socket 队列长度。

修改系统参数,打开 /etc/sysctl.conf ,添加如下内容,

# 对于一个经常处理新连接的高负载 web 服务环境来说,默认的 128 太小了
net.core.somaxconn = 262144
​# 表示 SYN 队列的长度,默认为 1024,加大队列长度为 8192,可以容纳更多等待连接的网络连接数
net.ipv4.tcp_max_syn_backlog = 8192
# 网卡设备将请求放入队列的长度
net.core.netdev_max_backlog = 65536

修改完,重新加载参数,

$ sudo sysctl -p

调整 uwsgi.ini 配置文件,添加,

listen=1024

重启应用。

 

(完)

 

参考网友博客:https://blog.csdn.net/orangleliu/article/details/48531759

 

posted @ 2021-03-26 16:40  Anonymous596  阅读(480)  评论(0编辑  收藏  举报