top命令:
Cpu(s): 14.8%us, 0.8%sy, 0.0%ni, 60.3%id, 83.8%wa, 0.1%hi, 0.2%si, 0.0%st
如果磁盘IO是瓶颈之一的话,那么%wa的值就会很高,那么这个时候就要分析磁盘IO了。其他字段这里就不再解释了
$ iostat -x 1
Linux 4.4.0-108-generic (www) 03/08/2018 _x86_64_ (32 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.02 0.00 0.01 0.00 0.00 99.97
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 1.12 0.01 0.79 0.19 13.85 35.18 0.00 0.11 3.11 0.08 0.04 0.00
dm-0 0.00 0.00 0.01 1.89 0.15 13.76 14.64 0.00 0.12 3.45 0.11 0.01 0.00
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 32.81 0.00 6.30 6.30 0.00 6.02 0.00
主要字段含义如下:
r/s 每秒读操作数。
w/s 每秒写操作数。
rsec/s 每秒从设备读取的扇区数量。
wsec/s 每秒向设备写入的扇区数量。
avgrq-sz I/O 请求的平均扇区数。
avgqu-sz I/O 请求的平均队列长度。
await I/O 请求的平均等待时间,单位为毫秒。
svctm I/O 请求的平均服务时间,单位为毫秒。
%util 处理 I/O 请求所占用的时间的百分比,即设备利用率。
检查是否达到瓶颈,在Linux下使用以下命令即可分组查看各种连接状态:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}‘
解释:
返回结果示例:
LAST_ACK 5 (正在等待处理的请求数)
SYN_RECV 30
ESTABLISHED 1597 (正常数据传输状态)
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057 (处理完毕,等待超时结束的请求数)
状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉
使用这上面的命令是可以查看服务器的各种连接状态,其中ESTABLISHED 就是并发连接状态数。如果你不想查看到这么多连接状态,而仅仅只是想查看并发连接数,可以简化一下命令,即:
netstat -nat|grep ESTABLISHED|wc -l
2089
这个返回的数字就是当前并发的连接数的了。
原文地址:http://blog.51cto.com/12880687/2084088