千家信息网

因超多短连接导致的过多TIME_WAIT的处理方案

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,近期,发现WEB服务器netstat -nap时,超多TIME_WAIT 状态的连接,每台WEB超过 2万,峰值超4万;导致服务响应变慢 ;WEB服务器跑的是PHP程序,这些程序需要调用后端的MemC
千家信息网最后更新 2026年10月31日因超多短连接导致的过多TIME_WAIT的处理方案

近期,发现WEB服务器netstat -nap时,超多TIME_WAIT 状态的连接,每台WEB超过 2万,峰值超4万;导致服务响应变慢 ;


WEB服务器跑的是PHP程序,这些程序需要调用后端的MemCache,mysql,Redis,mongodb以及后端的 http接口服务,其中MemCache、http接口服务的调用量相对较大;


根据BAIDU的结果,分析原因为,PHP为CGI方式,一个页面请求可能会有几十次的各种内部调用,程序执行完后,连接就断开了,根据网络协议,断开的连接必然会保持一段时间的TIME_WAIT,默认是保持4分钟;如果4分钟内的请求数过高,如超过3万,本机的TCP端口数必然会不够用(默认情况下,linux临时端口号范围是(32768,61000),本机可用于调用的端口约3万个),进而导致调用后端服务阻塞,页面响应变慢;


处理方式:根据以上分析,对OS系统内核参数做修改,启用TIME_WAIT连接重用,TIME_WAIT连接回收、缩短连接保持时间、增加可用端口数:


#vi /etc/sysctl.conf

net.ipv4.tcp_tw_reuse = 1 #启用连接重用

net.ipv4.tcp_tw_recycle = 1 #启用连接回收

net.ipv4.tcp_fin_timeout = 30 #缩短连接保持时间

net.ipv4.ip_local_port_range=1024 65000 #增加可用端口数,linux默认临时端口号范围是(32768,61000)


#sysctl -p #修改参数生效;


注意:这里有个坑,需要确认 net.ipv4.tcp_timestamps = 1(这是默认值),net.ipv4.tcp_tw_recycle = 1 这个参数才有效;


另外,net.ipv4.tcp_tw_recycle = 1 这个参数如果是在对公网用户提供的服务器,不能启用,如果启用,会导致其它问题;具体参考 (http://blog.sina.com.cn/s/blog_781b0c850100znjd.html)


修改以上参数后,连接数大为降低!!


总结:从以上分析看,主要是内部调用过多,而且又基本上是短连接,导致了大量的TIME_WAIT;

从应用设计上看,应该尽量采用长连接,连接池,KEEPALIVE等技术减少对后端的连接次数,提高连接的效率,这样可以大大减少连接数,问题也就不存在了!


当然,本案例中,前端调用程序为PHP程序,因PHP本身的特性(CGI试,一个页面处理完成后,所有相关连接就断了),导致不太好使用长连接,连接池,KEEPALIVE技术;但仍可以在本页面请求内部使用,也可以一定程度上减少连接次数;


服务 参数 程序 端口 页面 时间 服务器 端的 分析 处理 口号 必然 技术 接口 方式 次数 范围 问题 本机 过多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 伟宏互联网科技 互联网中国科技 科技信息互联网 科技制造互联网公司 广州互联网科技公司 互联网金融与金融科技 西安互联网科技 华中科技大学互联网 西藏七维空间互联网科技有限公司 互联网系的金融科技公司 花神(南京)互联网科技有限公司 互联网科技产业特征 伊宁互联网科技做什么的 广州千川互联网科技有限公司 云南省自由互联网科技有限公司 半导体行业属于互联网高科技类吗 长沙易易互联网科技有限公司 科技互联网专业务虚会材料 瑞安市蟠桃会互联网科技有限公司 互联网科技创业有什么好项目 美国互联网保险保险科技 科技和互联网公司 上海挚品互联网科技 互联网 新科技 西藏七维空间互联网科技有限公司 湖南一路畅行互联网科技 迪庆互联网科技招生 工业互联网等科技实现智能化赋能 互联网科技资金流入 互联网科技自媒体灵感
0