Linux大量的TIME_WAIT处理

发布: 2008-01-22 16:07

Linux版本:RedHat AS4



socket编程关闭连接后端口并不是立即释放,默认时间是60秒后释放。



用命令netstat -an查看可以发现存在大量的TIME_WAIT



如果连接频繁的话会导致端口用尽。



解决方法:



# vi /etc/sysctl.conf

添加如下内容

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_syncookies=1

保存退出后执行

# sysctl -p



说明



net.ipv4.tcp_syncookies=1 打开TIME-WAIT套接字重用功能,对于存在大量连接的Web服务器非常有效。

net.ipv4.tcp_tw_recyle=1

net.ipv4.tcp_tw_reuse=1 减少处于FIN-WAIT-2连接状态的时间,使系统可以处理更多的连接。

net.ipv4.tcp_fin_timeout=30 减少TCP KeepAlive连接侦测的时间,使系统可以处理更多的连接。 

net.ipv4.tcp_keepalive_time=1800 增加TCP SYN队列长度,使系统可以处理更多的并发连接。 

net.ipv4.tcp_max_syn_backlog=8192

 




AS5默认已经设置,所以不出现大量的TIME_WAIT

 



原文: http://qtchina.tk/?q=node/117

Powered by zexport