`

解决CLOSE_WAIT 问题

阅读更多

最近web服务器在大流量情况下经常出现假死现象,后台log报 too many open files 的错误,加大linux系统的文件打开数是可以解决部分问题,但是时间长了同样出问题,通过查询网络连接发现是tcp连接不关闭造成的。如下:
  netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
 
  LAST_ACK 1
  SYN_RECV 15
 
CLOSE_WAIT 7729
  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.如果probe 9次(每次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连接。

 

 

 

参考:http://waringid.blog.51cto.com/65148/183496

         http://iceskysl.1sters.com/?action=show&id=234






 

分享到:
评论

相关推荐

    CLOSE_WAIT网络连接无法释放问题解决

    关于系统端口出现CLOSE_WAIT状态的解决方案,讲解明确清晰,值得参考

    Close_Wait问题相关资料

    解决Close_Wait问题的相关资料。

    TCP状态迁移,CLOSE_WAIT & FIN_WAIT2 的问题解决

    对于服务器挂起中的CLOSE_WAIT & FIN_WAIT2 解决方案。

    挖掘鸡_V7.1官方无壳版.zip

    挖掘鸡 v7.1:修改close_wait状态,忽略扫描域名无效等问题。是否更新。23:30 2009-10-5 挖掘鸡 v7.0:进一步增大扫描范围,改进扫描算法和效率;自动关键词联想,支持超长时间扫描等。建议更新。20:46 2009-7-30 ...

    Django数据库连接丢失问题的解决方法

    问题 在Django中使用mysql偶尔会出现数据库连接丢失的情况,错误通常有如下两种 ...如果客户端使用一个连接查询多次数据库,如果连续查询则没有问题,如果查询几次后停顿超过wait_timeout后再次查询就会出

    挖掘鸡2013

    挖掘鸡 v7.1:修改close_wait状态,忽略扫描域名无效等问题。是否更新。23:30 2009-10-5 挖掘鸡 v7.0:进一步增大扫描范围,改进扫描算法和效率;自动关键词联想,支持超长时间扫描等。建议更新。20:46 2009-7-30 ...

    挖掘鸡2013v8.0.0.1

    挖掘鸡 v7.1:修改close_wait状态,忽略扫描域名无效等问题。是否更新。23:30 2009-10-5 挖掘鸡 v7.0:进一步增大扫描范围,改进扫描算法和效率;自动关键词联想,支持超长时间扫描等。建议更新。20:46 2009-7-30 ...

    挖掘鸡,蝙蝠侠

    挖掘鸡 v7.1:改掉close_wait状态。忽略扫描域名无效等问题。是否更新。23说明:30 2009-10-5 挖掘鸡 v7.0:进一步增大扫描范围。改进扫描算法和效率;这个软件这个软件这个软件工具你本人关键词联想。非常肯定超长...

    挖掘鸡最新版

    挖掘鸡 v7.1:修改close_wait状态,忽略扫描域名无效等问题。是否更新。23:30 2009-10-5 挖掘鸡 v7.0:进一步增大扫描范围,改进扫描算法和效率;自动关键词联想,支持超长时间扫描等。建议更新。20:46 2009-7-30 ...

    selenium切换标签页解决get超时问题的完整代码

    而且超时后标签页就卡柱了,只能通过 driver.close()关闭 如果你只有一个标签页,关闭就直接退出了,还得重启 自然想到先保留一个备用的标签,原标签超时需要关闭的时候就切换过来,然后再关闭,并打开新标签,保证...

    python基础超强总结

    Python Python深拷贝和浅拷贝的区别 Python的内存管理机制(垃圾回收+内存池) ⼀、引用计数 ⼆、垃圾回收 三、内存池机制 ...S 为什么TIME_WAIT状态需要经过OMSL才能返回到CLOSE状态? TCP VS UDP ⼀、TCP/IP网络

    挖掘鸡3.0豪华版

     修改close_wait状态,忽略扫描域名无效等问题。是否更新。  挖掘鸡 v7.0更新20:46 2009-7-30:  进一步增大扫描范围,改进扫描算法和效率;自动关键词联想,支持超长时间扫描等。建议更新。  挖掘鸡 v.6.9更新...

    PHP中Session引起的脚本阻塞问题解决办法

    解决session阻塞问题的办法:在session操作完成后调用session_write_close()即可避免此问题; 案例一: 使用session过程中,在开启session后,同一浏览器,执行同一程序,不同页面会被锁。不同浏览器不会出现这种情况...

    【最新】单片机读写U盘汇编程序-pb375

    wait_1ms: //延时 b0mov z,#0f7h b0mov y,#0e3h ;稳定oscillator,40ms delay_ms_02: b0bset fwdrst nop nop incms z jmp delay_ms_02 nop incms y jmp delay_ms_02 b0mov rbank,#1 decms trytime jmp check_status ...

    MySQL Sleep连接过多问题解决方法

    2.客户端sleep的时间在wait_timeout或interactive_timeout规定的秒内没有发出任何请求到服务器. [类似常连,类似于不完整的tcp ip协议构造,服务端一直认为客户端仍然存在(有可能客户端已经断掉了)] 3.客户端程序...

    华为编程开发规范与案例

    上面的问题解决起来很容易,只需在第一行代码中增加一个判断条件即可,如下:  for(i=0; i<pSysHead->dbf_coun && i < MAX_DB_NUM; i++) // MAX_DB_NUM=127 这样就保证了循环变量i的值在正常范围内,从而避免了...

    net学习笔记及其他代码应用

    1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,...

    selenium怎样在多窗口中运行程序 (1)

    这是selenium本身限制的问题,暂时不晓得怎么解决,只要不影响测试就不用管这个警告。 "selenium_blank4795 "这个应该是OpenQA里提给selenium的bug号吧? 28.可以直接在DOS环境下,在打开selenium-server.jar的...

    精通SQL 结构化查询语言详解

    17.2.2 使用OPEN/CLOSE语句打开/关闭游标  17.2.3 使用FETCH语句检索数据  17.2.4 基于游标的定位DELETE语句  17.2.5 基于游标的定位UPDATE语句 17.3 SQL Server中游标的扩展  17.3.1 Transact_SQL扩展...

    From C to C++

    GreenCppC 2008-8-24 ========================================= // I 类,对象,函数重载 //-------- From C to C++ ------------ // A simple C Program! // convert a string to uppercase!...

Global site tag (gtag.js) - Google Analytics