问题描述:高负载下,系统响应变慢,并出现超时或失败情况,TIME_WAIT积压
问题定位:
# netstat -ant | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
TIME_WAIT 4935
CLOSE_WAIT 145
FIN_WAIT2 3
ESTABLISHED 416
也就是说,这条命令可以把当前系统的网络连接状态分类汇总。
如发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决。
命令解析:
先来看看netstat:
netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 123.123.123.123:80 234.234.234.234:12345 TIME_WAIT
你实际执行这条命令的时候,可能会得到成千上万条类似上面的记录,不过我们就拿其中的一条就足够了。
再来看看awk:
/^tcp/
滤出tcp开头的记录,屏蔽udp, socket等无关记录。
state[]相当于定义