Linux中的backlog通常指网络连接待处理队列,清理方法需根据场景选择,以下是关键操作:
sysctl net.core.somaxconn # 系统最大监听队列长度
sysctl net.ipv4.tcp_max_syn_backlog # SYN队列长度
listen backlog
参数。sudo sysctl -w net.core.somaxconn=1024 # 设置为1024
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=512
/etc/sysctl.conf
,添加或修改参数后执行sudo sysctl -p
生效。sudo systemctl restart networking # Systemd系统
sudo /etc/init.d/networking restart # SysVinit系统
sudo systemctl restart nginx
,清除其监听队列。listen 80 backlog=2048;
,需与系统参数匹配。sudo sysctl -w net.ipv4.tcp_fin_timeout=30 # 缩短TIME_WAIT状态超时时间
sudo sysctl -w net.ipv4.tcp_tw_reuse=1 # 允许重用TIME_WAIT连接
sudo sysctl -w net.ipv4.tcp_syncookies=1 # 启用SYN Cookie防御
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=2048
参考来源: