CentOS Backlog 管理指南
一 概念与排查路径
ss -lnt(关注 Recv-Q/Accept 队列使用情况)。ss -s | grep SYN(观察 SYN-RECV 数量)。sudo auditctl -s(关注 backlog_limit、lost 等字段)。二 网络监听队列管理
net.core.somaxconn:全系统允许的监听队列上限(上限值)。net.ipv4.tcp_max_syn_backlog:半连接(SYN)队列长度。net.core.netdev_max_backlog:网卡设备层输入包的队列上限。net.ipv4.tcp_syncookies:在半连接队列溢出时启用 SYN Cookie 抵御 SYN Flood。echo 4096 > /proc/sys/net/core/somaxconnecho 8192 > /proc/sys/net/ipv4/tcp_max_syn_backlogecho 16384 > /proc/sys/net/core/netdev_max_backlogecho 1 > /proc/sys/net/ipv4/tcp_syncookies/etc/sysctl.conf 或 /etc/sysctl.d/99-backlog.conf,加入:
net.core.somaxconn = 4096net.ipv4.tcp_max_syn_backlog = 8192net.core.netdev_max_backlog = 16384net.ipv4.tcp_syncookies = 1sysctl -plisten 80 default_server backlog 1024;acceptCount="500"(在 Connector 中设置)somaxconn 匹配。三 审计 backlog 管理
sudo auditctl -s(记录 backlog_limit、lost 等)。sudo auditctl -b 8192(示例值,按需调整)。/etc/audit/audit.rules,在文件首部加入 -b 8192(或所需值),然后重启 auditd:sudo service auditd restart。四 监控与优化建议
ss -lnt、ss -s | grep SYN、netstat -napt | grep LISTEN(观察 Recv-Q、SYN-RECV、LISTEN 队列是否持续增长)。sudo auditctl -s(关注 backlog_limit、lost 的增长趋势)。somaxconn、tcp_max_syn_backlog、netdev_max_backlog,并启用 tcp_syncookies 抵御小流量 SYN Flood。ip_local_port_range,并结合业务场景调整 tcp_tw_reuse、tcp_fin_timeout 等,减少端口与状态占用(需充分测试)。