Linux backlog优化与稳定性提升
一 核心概念与影响
二 关键参数与推荐起点
| 参数 | 作用 | 建议起点 | 备注 |
|---|---|---|---|
| net.core.somaxconn | 全连接队列上限 | 4096 | 应用层 listen(backlog) 不得大于此值 |
| net.ipv4.tcp_max_syn_backlog | 半连接队列上限 | 8192 | 高并发或受SYN Flood影响时优先上调 |
| net.core.netdev_max_backlog | 网卡接收队列上限 | 16384 | 应对突发流量、NIC中断合并不足 |
| net.ipv4.tcp_syncookies | 抵御SYN Flood | 1 | 队列满时启用,避免丢SYN |
| net.ipv4.tcp_fin_timeout | FIN-WAIT-2回收 | 30 | 加速回收关闭连接 |
| net.ipv4.tcp_keepalive_time / intvl / probes | 保活探测 | 60 / 75 / 9 | 更快清理僵死连接 |
| net.ipv4.tcp_syn_retries / tcp_synack_retries | 建连重试 | 5 / 5 | 减少失败建连的阻塞时间 |
| net.ipv4.tcp_rmem / tcp_wmem | TCP缓冲范围 | 4096 87380 16777216 | 视带宽时延调大上限 |
| net.core.rmem_max / wmem_max | 套接字缓冲上限 | 16777216 | 与上面配套设置 |
| net.ipv4.tcp_congestion_control | 拥塞控制算法 | bbr | 高带宽时延积场景优先 |
三 应用与系统联动配置
四 监控定位与容量规划
五 常见误区与注意事项