连接数状态获取:netstat在4W以上连接数下工作性能很差。
先看看ss命令:
ss -t -a #统计所有的TCP连接
ss -u -a #统计所有的UDP连接
ss还具有过滤功能,下面列一下常用的功能:
ss state ESTABLISHED #列出所有ESTABLISHED状态的连接
ss -t -a -o excl ESTABLISHED #排除所有ESTABLISHED状态的连接
ss state ESTABLISHED sport eq :80 #列出所有在80端口上状态为ESTABLISHED状态的连接
ss state ESTABLISHED sport eq :80 and not dst 127.0.0.1 #列出所有在80端口上状态为ESTABLISHED状态和目的地址不为127.0.0.1的连接
ss命令来自iproute包。
ss -s会列出一些基本的统计信息:
TCP:?43770?(estab 43069,?closed 32,?orphaned 646,?synrecv 0,?timewait 24/0),?ports 285
这行是什么含义呢,只能去源码里找了:
仔细核对了下,estab和传统的ESTABLISHED统计结果一致,其他几个字段均对不上号,尤其这里的synrecv也不是SYN_RECV的统计,来自slabstat统计。
这条路不能完美的满足我的需求,待续
ss -tn state CLOSE-WAIT
先看看ss命令:
ss -t -a #统计所有的TCP连接
ss -u -a #统计所有的UDP连接
ss还具有过滤功能,下面列一下常用的功能:
ss state ESTABLISHED #列出所有ESTABLISHED状态的连接
ss -t -a -o excl ESTABLISHED #排除所有ESTABLISHED状态的连接
ss state ESTABLISHED sport eq :80 #列出所有在80端口上状态为ESTABLISHED状态的连接
ss state ESTABLISHED sport eq :80 and not dst 127.0.0.1 #列出所有在80端口上状态为ESTABLISHED状态和目的地址不为127.0.0.1的连接
ss命令来自iproute包。
ss -s会列出一些基本的统计信息:
点击(此处)折叠或打开
- #ss -s
- Total: 43160 (kernel 43254)
- TCP: 43770 (estab 43069, closed 32, orphaned 646, synrecv 0, timewait 24/0), ports 285
- Transport Total IP IPv6
- * 43254 - -
- RAW 0 0 0
- UDP 13 10 3
- TCP 43738 43535 203
- INET 43751 43545 206
- FRAG 0 0 0
点击(此处)折叠或打开
- ...
- printf("TCP: %d (estab %d, closed %d, orphaned %d, synrecv %d, timewait %d/%d), ports %d\n",
- s.tcp_total + slabstat.tcp_syns + s.tcp_tws,
- sn.tcp_estab,
- s.tcp_total - (s.tcp4_hashed+s.tcp6_hashed-s.tcp_tws),
- s.tcp_orphans,
- slabstat.tcp_syns,
- s.tcp_tws, slabstat.tcp_tws,
- slabstat.tcp_ports
- );
这条路不能完美的满足我的需求,待续
ss -tn state CLOSE-WAIT