调整 TCP 参数、增大缓冲区、优化文件描述符和连接跟踪、启用 BBR 与 TFO,可显著提升 Linux 服务器在高并发、低延迟场景下的网络性能,需结合业务特征使用工具分析并微调。

Linux 服务器如何优化网络性能
在高并发、大数据 传输或低延迟要求的场景中,Linux 服务器的网络性能直接影响系统响应速度和稳定性。通过合理调整内核参数、优化连接处理机制和提升资源利用率,可以显著增强网络吞吐能力。以下是一套完整的调优方案,适用于 Web 服务、数据库集群、实时通信等典型应用环境。
1. 调整 TCP 连接相关参数
TCP 协议是大多数网络服务的基础,合理配置其行为可有效减少延迟并提高并发处理能力。
- 启用 TCP 快速回收与重用:在短连接频繁建立与断开的场景(如 HTTP 服务),开启这两个选项能更快释放 TIME_WAIT 状态的连接。
net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 0 <!-- 建议关闭,NAT 环境下可能引发问题 --> - 减少 TIME_WAIT 等待时间 :适当降低该值有助于 端口 快速回收。
net.ipv4.tcp_fin_timeout = 30 - 开启 SYN Cookie 防护:防止 SYN Flood 攻击导致连接队列耗尽。
net.ipv4.tcp_syncookies = 1 - 增大 SYN 队列长度:应对突发连接请求。
net.ipv4.tcp_max_syn_backlog = 8192
2. 提升网络缓冲区大小
默认的缓冲区设置往往不足以支撑高吞吐场景,需根据带宽和 RTT 进行扩展。
- 增加 TCP 接收 / 发送缓冲区上限:
net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 - 启用窗口缩放(Window Scaling):允许更大的 TCP 窗口,提升长肥管道(Long Fat Network)效率。
net.ipv4.tcp_window_scaling = 1 - 自动调节缓冲区:让内核动态管理内存使用。
net.ipv4.tcp_moderate_rcvbuf = 1
3. 优化连接跟踪与文件描述符限制
大量并发连接会消耗系统资源,需解除瓶颈点。
- 提高最大文件句柄数:每个连接占用一个 fd,需足够支持高峰负载。
fs.file-max = 2097152同时在
/etc/security/limits.conf中设置用户级限制:* soft nofile 65536 * hard nofile 65536 - 调整连接跟踪表大小(针对 iptables/nf_conntrack):
net.netfilter.nf_conntrack_max = 1048576 net.netfilter.nf_conntrack_tcp_timeout_established = 1200
4. 启用高级网络特性
利用现代网络硬件与协议改进进一步压榨性能。
- 开启 TCP Fast Open:允许在 SYN 包中携带数据,减少首次请求延迟。
net.ipv4.tcp_fastopen = 3 <!-- 客户端和服务端均启用 --> - 启用 BBR 拥塞控制算法:相比传统 CUBIC,在高延迟链路下表现更优。
net.ipv4.tcp_congestion_control = bbr可通过
sysctl net.ipv4.tcp_available_congestion_control确认是否支持。 - 关闭不必要的 ACK 延迟:对延迟敏感的服务建议关闭。
net.ipv4.tcp_delack_min = 1
完成上述配置后,将参数写入 /etc/sysctl.conf 并执行 sysctl -p 生效。同时确保应用程序(如 Nginx、MySQL)也做了相应连接池和超时优化。
基本上就这些。实际调优应结合 ss、netstat、tcpdump、iftop 等工具 分析瓶颈,按业务特征微调。不复杂但容易忽略细节。