linux内核网络参数优化核心是提升高并发下的连接建立效率、传输性能、资源复用与抗压能力;需调优全连接队列(somaxconn)、半连接队列(tcp_max_syn_backlog)、time_wait复用(tcp_tw_reuse)、端口范围(ip_local_port_range)、缓冲区(tcp_rmem/wmem)及拥塞算法(如bbr)。

Linux 内核网络参数优化,核心是围绕 TCP 连接建立、传输效率、资源复用和抗压能力这四点展开。默认值为通用场景设计,高并发 Web 服务、API 网关、实时通信或微服务集群中,不调优容易出现连接拒绝、端口耗尽、响应延迟高、吞吐上不去等问题。
重点调 TCP 连接队列长度
连接请求进来后,先排队再被应用 accept,队列满了就会丢包或超时重传。
- net.core.somaxconn:全连接队列上限,建议设为 65535(原默认常为 128 或 1024)
- net.ipv4.tcp_max_syn_backlog:SYN 半连接队列长度,也建议同步设为 65535
- 若使用 Nginx 或 HAProxy,还需检查其
listen指令的backlog值是否 ≥ somaxconn,否则实际生效值会被截断
加快连接回收与端口复用
短连接服务(如 HTTP/1.1、gRPC)大量 TIME-WAIT 状态会占满本地端口,导致“Cannot assign requested address”错误。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- net.ipv4.tcp_fin_timeout:从默认 60 秒降至 30 或 15,加速 FIN-WAIT-2 资源释放
-
net.ipv4.tcp_tw_reuse:设为 1,允许处于 TIME-WAIT 的套接字在安全条件下复用(需确保
tcp_timestamps=1,现代内核默认开启) - net.ipv4.tcp_tw_recycle:保持 0(已废弃,NAT 环境下会导致连接失败)
扩大可用端口与缓冲区
出站连接多(如服务间调用、上游代理)、带宽高或延迟大时,缓冲区小或端口少会成为瓶颈。
- net.ipv4.ip_local_port_range:改为 "1024 65535",把可用临时端口从约 2.8 万扩到近 6.4 万
- net.core.rmem_max / wmem_max:设为 16777216(16MB),避免大流量下接收/发送缓冲区溢出丢包
- net.ipv4.tcp_rmem / tcp_wmem:设为 "4096 65536 16777216",让内核根据带宽自动调节,兼顾低延迟与高吞吐
选对拥塞控制算法
不同网络环境适合不同算法,影响吞吐和延迟表现。
- 查当前算法:
sysctl net.ipv4.tcp_congestion_control - 推荐:bbr(适合高带宽、有丢包的公网;需内核 ≥ 4.9)或 cubic(内网稳定环境)
- 启用 bbr:
echo 'net.ipv4.tcp_congestion_control = bbr' >> /etc/sysctl.conf,再sysctl -p










