CentOS backlog 维护与优化指南
一 概念与队列机制
二 关键参数与生效方式
| 参数 | 作用 | 建议起点 | 持久化与生效 |
|---|---|---|---|
| net.core.somaxconn | 全连接队列上限(应用 backlog 的上限) | 2048–4096(高并发可更高) | 写入 /etc/sysctl.conf:net.core.somaxconn = 4096 后执行 sysctl -p |
| net.ipv4.tcp_max_syn_backlog | 半连接队列上限 | 4096–16384 | 写入 /etc/sysctl.conf:net.ipv4.tcp_max_syn_backlog = 16384 后 sysctl -p |
| net.core.netdev_max_backlog | 网卡接收软中断来不及处理时的包队列 | 3000–5000 | 写入 /etc/sysctl.conf:net.core.netdev_max_backlog = 5000 后 sysctl -p |
| net.ipv4.tcp_syncookies | 半连接洪泛时启用 syncookie 保护 | 1(开启) | 写入 /etc/sysctl.conf:net.ipv4.tcp_syncookies = 1 后 sysctl -p |
| net.ipv4.tcp_tw_reuse | 安全复用 TIME_WAIT 连接 | 1(开启) | 写入 /etc/sysctl.conf:net.ipv4.tcp_tw_reuse = 1 后 sysctl -p |
| net.ipv4.tcp_tw_recycle | 快速回收 TIME_WAIT(NAT/负载均衡环境慎用) | 0(关闭) | 写入 /etc/sysctl.conf:net.ipv4.tcp_tw_reraise = 0 后 sysctl -p |
listen ... backlog=4096;,PHP-FPM 的 listen.backlog=4096;。最终全连接队列上限取 min(应用 backlog, net.core.somaxconn)。修改完成后用 sysctl -p 使配置生效。三 监控与排障
netstat -s | egrep 'listen queue|SYNs to LISTEN'ss -lnt | grep :80四 维护清单与常见场景
netstat -s、ss -lnt、关键业务 RTT/成功率,形成可回溯的性能基线。/etc/security/limits.conf 中 nofile 合理上调),避免“句柄耗尽”造成 accept 失败。1024 65000),并优化连接复用与超时策略。五 安全与风险提示