一聚教程网:一个值得你收藏的教程网站

热门教程

CentOS 服务器 TCP 调优如何配

时间:2026-08-13 08:23:49 编辑:袖梨 来源:一聚教程网

CentOS TCP调优围绕连接建立、数据传输、资源回收三环节,通过调整SYN队列、缓冲区、TIME-WAIT等参数提升高并发性能,需配套文件句柄与拥塞控制优化,并写入sysctl.conf后执行sysctl -p生效。

CentOS 服务器 TCP 调优不是堆参数,而是围绕连接建立、数据传输、资源回收三个环节做针对性调整。核心是让内核更高效地处理高并发短连接或长连接场景,避免队列溢出、缓冲区瓶颈和 TIME-WAIT 占用过多端口。

TCP 连接容量调优

重点解决“连不上”问题,比如 SYN 队列满、监听队列打满导致连接被丢弃:

  1. net.core.somaxconn = 65535:应用 listen() 的 backlog 上限,必须 ≥ 应用设置(如 Nginx 的 listen ... backlog=65535
  2. net.ipv4.tcp_max_syn_backlog = 65535:SYN 半连接队列长度,防止 SYN Flood 或突发建连压垮队列
  3. net.core.netdev_max_backlog = 65535:网卡软中断收包队列,配合多队列网卡使用,避免包在驱动层就被丢

TCP 缓冲区与吞吐调优

影响带宽利用率和延迟,尤其对千兆以上网络或跨公网链路:

  1. net.ipv4.tcp_rmem = "4096 262144 8388608":接收缓冲区最小/默认/最大值(单位字节),最大设为 8MB 可支撑高带宽低延迟场景
  2. net.ipv4.tcp_wmem = "4096 262144 8388608":发送缓冲区同理,避免因窗口小限制发包速率
  3. net.core.rmem_max = 8388608net.core.wmem_max = 8388608:全局上限,确保应用可 setsockopt 修改
  4. net.ipv4.tcp_window_scaling = 1:必须开启,否则 TCP 窗口无法突破 64KB,高延迟网络(如跨地域)会严重降速

TIME-WAIT 与连接复用优化

解决“端口耗尽”问题,常见于大量短连接(如 HTTP、RPC):

  1. net.ipv4.tcp_tw_reuse = 1:允许把处于 TIME-WAIT 的 socket 用于新连接(需时间戳开启,安全且推荐)
  2. net.ipv4.tcp_fin_timeout = 30:主动关闭方 FIN_WAIT_2 超时时间,缩短连接释放周期
  3. net.ipv4.tcp_max_tw_buckets = 6000:限制系统中 TIME-WAIT 套接字总数,防内存耗尽(不建议设为 0)

    ⚠️ 注意:tcp_tw_recycle 在 NAT 环境下会导致连接失败,已废弃,务必禁用或不设置

其他关键配套项

单点调优无效,需同步调整:

  1. fs.file-max = 1000000:系统级最大文件句柄数,配合 ulimit 使用
  2. /etc/security/limits.conf 中配置:
    * soft nofile 65535* hard nofile 65535
  3. 拥塞控制算法:net.ipv4.tcp_congestion_control = bbr(内核 ≥ 4.9),比 cubic 更适合高带宽、有丢包的公网环境
  4. 启用时间戳:net.ipv4.tcp_timestamps = 1tcp_tw_reuse 依赖它,且有助于 RTT 估算)

所有参数写入 /etc/sysctl.conf 后执行 sysctl -p 生效。生产环境修改前先备份原文件,并在低峰期验证效果。

热门栏目