用netstat -ant|grep TIME_WAIT|wc -l查看发现有700多的等待请求,原来是TCP/IP 栈引起的。

对于多数人来说,配置 TCP/IP 栈是邪恶的魔术,但是如果您运行高负载的 Web 服务器,那么有选择地更改 Red Hat 的一些缺省值能明显提高系统响应速度。TCP/IP 配置值被存储在 /proc/sys/net/ipv4 目录中,通常可以是某个值或用“0”(关)和“1”(开)来分别表示禁用和启用。linux缺省值如下:

tcp_fin_timeout 180 

tcp_keepalive_time 7200 

tcp_window_scaling 1 

tcp_sack 1 

tcp_timestamps 1

在下面的设置中,更改某些值能增加服务器可处理的 TCP/IP 连接的数量,缩短服务器在终止失效连接前的等待时间,禁用一些不必要的 IP 扩展。把这些设置添加到 /etc/sysctl.conf 文件,然后重新启动网络守护程序( /etc/rc.d/init.d/network restart )。

# Decrease the time default value for tcp_fin_timeout connection 

net.ipv4.tcp_fin_timeout = 30 

# Decrease the time default value for tcp_keepalive_time connection 

net.ipv4.tcp_keepalive_time = 1800 

# Turn off tcp_window_scaling 

net.ipv4.tcp_window_scaling = 0 

# Turn off the tcp_sack 

net.ipv4.tcp_sack = 0 

#Turn off tcp_timestamps 

net.ipv4.tcp_timestamps = 0

加到/etc/rc.local

代码:

echo "30">/proc/sys/net/ipv4/tcp_fin_timeout

echo "1800">/proc/sys/net/ipv4/tcp_keepalive_time 

echo "0">/proc/sys/net/ipv4/tcp_window_scaling

echo "0">/proc/sys/net/ipv4/tcp_sack 

echo "0">/proc/sys/net/ipv4/tcp_timestamps

通过以上修改,TIME_WAIT明显减少!