早上看到服务器告警通知,TCP连接数比较高,达到5000多,我设置的阈值是5000,正常TCP连接不会这么高,这样的一个阈值我可以提前知道有问题早点解决,不至于后面引起一系列问题,甚至拖垮服务器。
排查
登陆服务器,查看TCP连接数,如下
[root@app01]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
SYN_RECV 1
ESTABLISHED 8591
FIN_WAIT2 36
SYN_SENT 2
TIME_WAIT 85
netstat有关详细命令,前面有篇转载过一篇文章很详细,这里不介绍。TCP当时连接数是5000多,这里是后面连接数增加上去截的图。
接着想知道这些连接数是什么服务创建的呢?通过tcp socket建立的连接端口就能看到,截取部分如下
[root@app01]# netstat -antlp
tcp 0 0 iZbp147cv:afs3-prserver iZbp147cvofre8yt7:47204 ESTABLISHED 6541/./redis-server
tcp 0 0 iZbp147cv:afs3-callback iZbp147cvofre8yt7:46618 ESTABLISHED 6540/./redis-server
tcp 0 0 iZbp147cvofre8yt7:42628 iZbp147cv:afs3-callback ESTABLISHED 27325/java
tcp 0 0 iZbp147cv:afs3-callback iZbp14