Nginx 性能分析怎么通过内核调优减少 TIME_WAIT 连接堆积

大丽酱_2505

大丽酱_2505

2026-09-25

814人浏览

原创

核心思路是让系统稳住、复用time_wait而非消灭它;需协同调优tcp_max_tw_buckets、tcp_tw_reuse、tcp_timestamps、ip_local_port_range四项内核参数,并配合upstream keepalive与http/1.1配置。

nginx 性能分析怎么通过内核调优减少 time_wait 连接堆积

核心思路不是“消灭 TIME_WAIT”,而是让系统能稳住它、复用它、不被它卡死。Nginx 作为反向代理,每秒发起大量 outbound 连接,短连接场景下极易在本机堆积数万 TIME_WAIT,直接导致“Cannot assign requested address”或偶发 502/504,而 CPU 和内存却看起来一切正常。

先确认是不是真问题

别一看到 TIME_WAIT 多就急着改参数。先看内核有没有真的“扛不住”:

  • 运行 netstat -s | grep -i "time.*wait.*bucket\|pruned",如果持续出现 time wait bucket table overflow,说明已触顶,tcp_max_tw_buckets 不够用了
  • 用 ss -tan state time-wait | wc -l 多次采样(比如每 10 秒一次,持续 2 分钟),取 95 分位值——这才是你真实需要应对的峰值,不是瞬时最大值
  • 同时查 ss -s 输出里的 fin-wait-2 和 time-wait 行,对比调优前后趋势,才能判断效果

必须协同生效的四项关键内核参数

单独调任何一个都收效甚微,四者缺一不可:

Nginx Config Linter
Nginx Config Linter

对 Nginx 配置文件进行语法检查、验证和安全、性能审计。

下载
  • net.ipv4.tcp_max_tw_buckets:设为实测峰值的 1.8–2 倍。例如采样得 95 分位是 12 万,建议设为 262144(256K);高并发网关可设到 524288 或 100 万,但前提是端口池够大
  • net.ipv4.tcp_tw_reuse = 1:允许 Nginx 主动发起新请求时,复用处于 TIME_WAIT 的本地端口。这是缓解堆积最直接有效的机制
  • net.ipv4.tcp_timestamps = 1:tcp_tw_reuse 的硬性前提,用于防止旧包混淆。现代内核默认开启,但建议显式写入配置
  • net.ipv4.ip_local_port_range = 1024 65535:把可用临时端口从默认的约 28K 扩到近 64K,否则再大的 tcp_max_tw_buckets 也无端口可用

配合 fin_timeout 缩短“悬停”时间

tcp_fin_timeout 不影响 TIME_WAIT 本身(那是 2MSL 决定的),但它控制 Nginx 作为客户端时,在 FIN_WAIT_2 状态最多等多久。这个状态卡住也会占 socket 和 fd:

  • 默认 60 秒太保守,建议设为 30(兼顾稳定性与释放速度)
  • 不推荐低于 15 秒,弱网或后端响应慢时易误杀连接
  • 注意:它只对 Nginx 主动关闭的连接生效(即 upstream 调用),对客户端断连无效

别忘了上层配套:Nginx 自身的 keepalive 配置

内核调优是兜底,真正减少 TIME_WAIT 生成,靠的是少建连、少断连:

  • upstream 块中加 keepalive 128(按后端单实例并发 × 0.7 设置),并配 keepalive_timeout 30s
  • 务必启用 proxy_http_version 1.1 和 proxy_set_header Connection '',否则 keepalive 不生效
  • 客户端侧也别忽略:适当调高 keepalive_timeout 和 keepalive_requests,减少前端频繁重连

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

nginx

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

840

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2432

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

816

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

729

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2196

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4032

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

647

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习