news 2026/7/3 3:49:08

Linux内核参数高并发场景优化:net.ipv4.tcp_fin_timeout

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux内核参数高并发场景优化:net.ipv4.tcp_fin_timeout

在高并发场景下,TIME_WAIT状态过多确实是导致“端口耗尽”或内存压力过大的常见原因。

为什么调小tcp_fin_timeout有效?

在 TCP 的四次挥手过程中,发起主动关闭的一方会进入TIME_WAIT状态。

  • 标准定义:按照 RFC 标准,TIME_WAIT的持续时间应该是 2 倍的 MSL(Maximum Segment Size)。在很多 Linux 发行版中,默认值是 60 秒(虽然文档中常提到 240 秒,但内核硬编码通常是 60s)。
  • 配置项:net.ipv4.tcp_fin_timeout实际上控制的是从 FIN_WAIT_2 状态转移到关闭状态的时间,但在 Linux 中,它也会影响到TIME_WAIT的处理逻辑,从而帮助系统更快地回收资源。

如何正确应用该优化?

除了你提到的修改方法,通常建议配合端口复用选项,效果会更加显著。

1. 修改系统配置

编辑/etc/sysctl.conf,添加或修改以下参数:

# 保持在 FIN-WAIT-2 状态的时间net.ipv4.tcp_fin_timeout=30# 开启 TCP 连接复用,允许将 TIME-WAIT sockets 重新用于新的 TCP 连接net.ipv4.tcp_tw_reuse=1# 扩大本地端口范围,增加并发连接上限net.ipv4.ip_local_port_range=102465535
2. 使配置生效

执行以下命令,无需重启服务器:

sysctl -p

进阶建议:区分客户端与服务端

  • 如果是作为服务端(Server):绝大多数情况下,TIME_WAIT是由客户端产生的(因为通常是客户端主动断开连接)。如果服务器出现了大量TIME_WAIT,通常说明你的程序在使用短连接(如未开启 Keep-Alive 的 HTTP)。
  • 如果是作为反向代理(如 Nginx):Nginx 作为代理去连接后端服务器时,它就是“客户端”。在这种高并发代理场景下,调优上述参数是必须的。

监控手段

可以通过以下命令随时观察服务器当前的连接状态分布:

netstat-n|awk'/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 8:39:34

【PostgreSQL】常用SQL

一、数据库操作1. 查询服务器版本-- 1.1 查询详细版本信息 select version();-- 1.2 查看版本信息(简洁版) show server_version;-- 1.3 查看数字版本信息(含小版本号) show server_version_num; -- 或 select current_setting(se…

作者头像 李华
网站建设 2026/6/26 11:15:12

【PostgreSQL】日常总结

一、下载 https://www.enterprisedb.com/downloads/postgres-postgresql-downloadshttps://get.enterprisedb.com/postgresql/postgresql-11.2-1-windows-x64.exe 二、安装 安装完成,服务启动 三、使用 psql.exe -U postgres -p 5432 四、Navicat连接 五、常用SQL …

作者头像 李华
网站建设 2026/6/24 3:02:49

【图像增强】基于波长补偿和去雾水下图像增强附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 🍊个人信条:格物致知,完整Matlab代码获取及仿…

作者头像 李华
网站建设 2026/7/1 6:59:19

VMware技术文章

技术融合背景云原生与VMware的协同价值:探讨传统虚拟化与容器化、微服务的互补性,分析企业混合云场景下的技术需求。核心技术与架构VMware Tanzu产品线解析:包括Tanzu Kubernetes Grid(TKG)、Tanzu Application Servic…

作者头像 李华
网站建设 2026/7/2 22:36:51

解析 React 的 ‘Keyed Fragment’:为什么在 Fragment 上也需要 Key?

各位同学,大家好!今天我们将深入探讨 React 中一个看似简单却蕴含深意的特性——Fragment,尤其是当它与 Key 结合时所展现出的强大能力与必要性。我们将聚焦于一个核心问题:为什么在 Fragment 上也需要 Key?这个问题常…

作者头像 李华
网站建设 2026/7/1 16:14:46

idea多模块项目运行设置

以该项目为例,backend内是后端部分,frontend内是前端部分1.添加后端模块:File → Project Structure → Modules点击 → Import Module选 C:\javacode\audio\backend\pom.xml 或 build.gradle选择 "Create module groups"&#xf…

作者头像 李华