最近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 & FIN_WAIT2 解决方案。
挖掘鸡 v7.1:修改close_wait状态,忽略扫描域名无效等问题。是否更新。23:30 2009-10-5 挖掘鸡 v7.0:进一步增大扫描范围,改进扫描算法和效率;自动关键词联想,支持超长时间扫描等。建议更新。20:46 2009-7-30 ...
问题 在Django中使用mysql偶尔会出现数据库连接丢失的情况,错误通常有如下两种 ...如果客户端使用一个连接查询多次数据库,如果连续查询则没有问题,如果查询几次后停顿超过wait_timeout后再次查询就会出
挖掘鸡 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:进一步增大扫描范围,改进扫描算法和效率;自动关键词联想,支持超长时间扫描等。建议更新。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 ...
而且超时后标签页就卡柱了,只能通过 driver.close()关闭 如果你只有一个标签页,关闭就直接退出了,还得重启 自然想到先保留一个备用的标签,原标签超时需要关闭的时候就切换过来,然后再关闭,并打开新标签,保证...
Python Python深拷贝和浅拷贝的区别 Python的内存管理机制(垃圾回收+内存池) ⼀、引用计数 ⼆、垃圾回收 三、内存池机制 ...S 为什么TIME_WAIT状态需要经过OMSL才能返回到CLOSE状态? TCP VS UDP ⼀、TCP/IP网络
修改close_wait状态,忽略扫描域名无效等问题。是否更新。 挖掘鸡 v7.0更新20:46 2009-7-30: 进一步增大扫描范围,改进扫描算法和效率;自动关键词联想,支持超长时间扫描等。建议更新。 挖掘鸡 v.6.9更新...
解决session阻塞问题的办法:在session操作完成后调用session_write_close()即可避免此问题; 案例一: 使用session过程中,在开启session后,同一浏览器,执行同一程序,不同页面会被锁。不同浏览器不会出现这种情况...
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 ...
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的值在正常范围内,从而避免了...
1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,...
这是selenium本身限制的问题,暂时不晓得怎么解决,只要不影响测试就不用管这个警告。 "selenium_blank4795 "这个应该是OpenQA里提给selenium的bug号吧? 28.可以直接在DOS环境下,在打开selenium-server.jar的...
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扩展...
GreenCppC 2008-8-24 ========================================= // I 类,对象,函数重载 //-------- From C to C++ ------------ // A simple C Program! // convert a string to uppercase!...