You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#显示本地打开的所有端口
ss -l
#显示每个进程具体打开的socket
ss -pl
#显示所有tcp socket
ss -t -a
#显示所有的UDP Socekt
ss -u -a
#显示所有已建立的SMTP连接
ss -o state established '( dport = :smtp or sport = :smtp )'
#显示所有已建立的HTTP连接
ss -o state established '( dport = :http or sport = :http )'
找出所有连接X服务器的进程
ss -x src /tmp/.X11-unix/*
列出当前socket统计信息
ss -s
解释:netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多
netstat
#输出每个ip的连接数,以及总的各个状态的连接数
netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'
#统计所有连接状态,
#CLOSED:无连接是活动的或正在进行
#LISTEN:服务器在等待进入呼叫
#SYN_RECV:一个连接请求已经到达,等待确认
#SYN_SENT:应用已经开始,打开一个连接
#ESTABLISHED:正常数据传输状态
#FIN_WAIT1:应用说它已经完成
#FIN_WAIT2:另一边已同意释放
#ITMED_WAIT:等待所有分组死掉
#CLOSING:两边同时尝试关闭
#TIME_WAIT:主动关闭连接一端还没有等到另一端反馈期间的状态
#LAST_ACK:等待所有分组死掉
netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
#查找较多time_wait连接
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
监控linux性能命令
top
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序, 然后回车。而大写的 R 键可以将当前的排序倒转
#sar命令在这里可以查看网络设备的吞吐率。在排查性能问题时,可以通过网络设备的吞吐量,判断网络设备是否已经饱和
sar -n DEV 1
#
#sar命令在这里用于查看TCP连接状态,其中包括:
#active/s:每秒本地发起的TCP连接数,既通过connect调用创建的TCP连接;
#passive/s:每秒远程发起的TCP连接数,即通过accept调用创建的TCP连接;
#retrans/s:每秒TCP重传数量;
#TCP连接数可以用来判断性能问题是否由于建立了过多的连接,进一步可以判断是主动发起的连接,还是被动接受的连接。TCP重传可能是因为网络环境恶劣,或者服务器压力过大导致丢包
sar -n TCP,ETCP 1
vmstat, 给定时间监控CPU使用率, 内存使用, 虚拟内存交互, IO读写
#2表示每2秒采集一次状态信息, 1表示只采集一次(忽略既是一直采集)
vmstat 2 1
eg:
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 3499840 315836 3819660 0 0 0 1 2 0 0 0 100 0
0 0 0 3499584 315836 3819660 0 0 0 0 88 158 0 0 100 0
0 0 0 3499708 315836 3819660 0 0 0 2 86 162 0 0 100 0
0 0 0 3499708 315836 3819660 0 0 0 10 81 151 0 0 100 0
1 0 0 3499732 315836 3819660 0 0 0 2 83 154 0 0 100 0
r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。