用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明显减少!