sysctl.conf

在优化服务器配置的时候,发现服务器端有大量的TIME_WAIT的连接,这需要优化。

Tomcat 案例

查询tomcat对应端口的tcp链接,发现存在大量TIME_WAIT的链接,还有部分其它状态的连接,总计400+。

TCP连接数以及各个状态的数量

netstat -nat | grep 8980 | wc -l

netstat -an | awk ’/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’

LISTEN 7

SYN_RECV 2

CLOSE_WAIT 2

ESTABLISHED 97

TIME_WAIT 4867

Copy

CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉

优化

添加如下配置

vim /etc/sysctl.conf

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

立即生效

/sbin/sysctl -p

Copy

IP包转发

net.ipv4.ip_forward=1