netstat -n | awk '/^tcp/ {++S[$NF]} END{for(a in S) print a, S[a]}'
  
  LAST_ACK 1
  SYN_RECV 15
  CLOSE_WAIT7729 
  ESTABLISHED 471
  FIN_WAIT1 3
  FIN_WAIT2 52
  SYN_SENT 1
  TIME_WAIT 725

从结果可以看到有大量的连接处于CLOSE_WAIT状态。

要解决这个问题的可以修改系统的参数,系统默认超时时间的是7200秒,也就是2小时。

默认如下:

tcp_keepalive_time = 7200 seconds (2 hours)
tcp_keepalive_probes = 9
tcp_keepalive_intvl = 75 seconds

意思是如果某个TCP连接在idle 2个小时后,内核才发起probe.如果probe9次(每次75秒)不成功,内核才彻底放弃,认为该连接已失效

修改后

sysctl -w net.ipv4.tcp_keepalive_time=30
sysctl -w net.ipv4.tcp_keepalive_probes=2
sysctl -w net.ipv4.tcp_keepalive_intvl=2

经过这个修改后,服务器会在短时间里回收没有关闭的tcp连接。

解决webserver tcp连接大量CLOSE_WAIT 问题相关推荐

  1. php closewait,Linux网络tcp连接大量CLOSE_WAIT和TIME_WAIT状态的出现和解决方法

    关于CLOSE_WAIT和TIME_WAIT状态,服务器端都有可能出现,TIME_WAIT出现应该是短连接较多,需要通过修改内核参数解决,CLOSE_WAIT状态则是服务器程序可能有问题,服务器需要主 ...

  2. TCP连接大量CLOSE_WAIT状态问题排查

    CLOSE_WAIT产生原因 close_wait是被动关闭连接是形成的,根据TCP状态机,服务器端收到客户端发送的FIN,TCP协议栈会自动发送ACK,链接进入close_wait状态.但如果服务器 ...

  3. 【案例分析】Linux和Windows在TCP数据包上的差异+网闸兼容问题引发的TCP连接失败故障分析

    1.前言 出于项目保密原因,本文所提及的IP地址并非真实IP地址,其余技术细节均与案例实际环境相同,供学习交流参考. 2.案例背景 我们前段时间接到项目现场工程师电话,对方称他们新上架了一台Linux ...

  4. TCP连接状态详解及TIME_WAIT过多的解决方法

    TCP建立连接的三次握手过程,以及关闭连接的四次握手过程. TCP建立连接的三次握手过程,以及关闭连接的四次握手过程. 1.建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务 ...

  5. 【Linux网络编程笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—实践篇

    1. 查看系统网络配置和当前TCP状态         在定位并处理应用程序出现的网络问题时,了解系统默认网络配置是非常必要的.以x86_64平台Linux kernelversion 2.6.9的机 ...

  6. TCP连接(Time_Wait、Close_Wait)说明

    修改Time_Wait和CLOSE_WAIT时间 修改Time_Wait参数的方法 (在服务端修改) Windows下在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControl ...

  7. 【Tcp】TCP连接中存在大量TIME_WAIT、CLOSE_WAIT的原因【转】

    TCP连接中存在大量TIME_WAIT.CLOSE_WAIT的原因 TCP通信图 TIME_WAIT CLOSE_WAIT TCP通信图 TIME_WAIT 表示客户端主动关闭socket. 原因: ...

  8. Tcp连接出现大量ESTABLISHED连接解决方法

    TCP状态转移要点 TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不 会被释放.网络服务器程序要同时管理 ...

  9. 服务器tomcat网络不稳定,tomcat服务器tcp连接出现大量ESTABLISHED连接导致前端访问502解决方法...

    tomcat服务器tcp连接出现大量ESTABLISHED连接导致前端访问502解决方法 1.1 TCP状态转移要点 TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺 ...

最新文章

  1. Java、JavaEE、JavaSE、JavaME、JavaWEB之间有什么区别?
  2. SCVMM 2012 R2运维管理十三之:将资源添加到VMM库
  3. php获取信息,PHP文件信息获取函数
  4. Python 基础学习 4 ——字典
  5. 部署腾讯云(CentOS6.6版本,jdk1.7+tomcat8+mysql)
  6. 安卓Toast显示提示消息(自定义view,根据子线程消息显示提示)
  7. iOS6中旋转的略微改变
  8. android log4j日志管理的使用
  9. 第四届“传智杯”全国大学生IT技能大赛(决赛B组)
  10. java修改头像代码_用户修改头像功能
  11. 《博弈论全家桶》(ACM / OI)(超全的博弈论 / 组合游戏大合集)
  12. 带你用最简单的方式获得小米完整root权限(无需刷第三方rom)
  13. Windows7 换XP 字体 (QQ字体,桌面字体) 为宋体
  14. java中valueof_JAVA中intValue()和ValueOf()什么意思,还有Value什么意思
  15. java 多线程发送邮件_多线程实现发送邮件功能
  16. limits.conf文件_Limits.conf文件限制用户,在Linux中通过示例进行处理
  17. pg之使用pg_upgrade进行大版本升级
  18. python如何实现图像中特定颜色的种类识别及特定颜色的占比代码
  19. 最新边信息推荐系统综述Research Commentary on Recommendations with Side Information: A Survey and Research Direc
  20. Java 以任意数量空格分割字符串方式

热门文章

  1. flash 编程技巧应用 原创
  2. ProfessionalDotNetNuke 第一章(摘录)
  3. 安装java环境linux和windows
  4. easyGUI 用法介绍
  5. DROP TABLE、TRUNCATE TABLE和DELETE的区别
  6. java获取URL参数(get方式,并且你不知道他末尾有什么参数名)
  7. fastweixin v1.3.0 发布,极速微信公众号开发框架
  8. syntax error: unexpected end of file
  9. ADO的几种数据库连接方式
  10. 【Java线程】线程协作