全部博文(512)
分类: LINUX
2008-04-16 09:51:06
Linux下高并发的Squid服务器,TCP TIME_WAIT套接字数量经常达到两、三万,服务器很容易被拖死。通过修改Linux内核参数,可以减少服务器的IME_WAIT套接字数量。 |
chinaunix网友2008-06-04 11:38:34
新一篇: [翻译]JConsole手册 写过TCP服务器的人都知道,要解决主动关闭后的TIME_WAIT状态是件很麻烦的事情,如果服务器设置Linger生效且延迟为0秒,则服务器发送给Client的最后一个数据包极可能丢失。Server端TIME_WAIT过多会导致服务器效率急剧下降,Client端TIME_WAIT过多会导致connect to server失败(报WSAEADDRINUSE错误,休息一段时间让部分处于TIME_WAIT状态的句柄超时后又能connect成功到服务器)。 几乎翻遍互联网也没找到比较好的解决方案,其中有老外提出修改TCP/IP协议栈的方案(前几天我也在考虑这个方案的可行性)。 下面给出我的关于解决TIME_WAIT的方案。 首先分析下从ESTABLISHED状态到关闭状态的过程: 只有两种方式: 1,主动关闭socket连接。 2,被动关闭socket连接。 我们知道主动关闭至少会经过TIME_WAIT_1--->TIME_WAIT(2MSL timeout)--->CLOSED 而被动关闭会经
chinaunix网友2008-04-16 09:52:28
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'