Linux 性能检查
参考:https://mp.weixin.qq.com/s/uAmNKeskT-7fLq2HnuM3CA
1.uptime
16:57:49 up 169 days, 4:10, 57 users, load average: 6.35, 6.37, 6.10
1 分钟、5 分钟、15 分钟的指数加权的动态平均值
2.dmesg |tail
查看oom-killer 以及TCP丢包情况
3.vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
5 0 8388604 98446592 697284 804716160 0 0 57 147 0 0 5 2 94 0 0
5 0 8388604 97056576 697328 805800576 0 0 0 60196 37410 52368 4 2 94 0 0
8 1 8388604 96213632 697312 806479808 0 0 20 501920 39355 58327 4 2 94 0 0
r: 处在 runnable 状态的任务,包括正在运行的任务和等待运行的任务。
这个值比平均负载能更好地看出 CPU 是否饱和。
这个值不包含等待 io 相关的任务。当 r 的值比当前 CPU 个数要大的时候,系统就处于饱和状态了。
free:以 KB 计算的空闲内存大小。
si,so:换入换出的内存页。如果这两个值非零,表示内存不够了。
us,sy,id,wa,st:CPU 时间的各项指标(对所有 CPU 取均值),分别表示:
用户态时间,
内核态时间,
空闲时间,
io等待时间,值高,表示磁盘是瓶颈
偷取时间(在虚拟化环境下系统在其它租户上的开销),
4.mpstat -P ALL 1
打印每个CPU的时间,可以看看 CPU 对任务的处理是否均匀
5.iostat -xz 1
r/s,w/s,rkB/s,wkB/s:
系统发往设备的每秒的读次数、
每秒写次数、
每秒读的数据量、
每秒写的数据量。
await:系统发往 IO 设备的请求的平均响应时间。这包括请求排队的时间,以及请求处理的时间。
超过经验值的平均响应时间表明设备处于饱和状态,或者设备有问题。
avgqu-sz:设备请求队列的平均长度。队列长度大于 1 表示设备处于饱和状态。
%util:设备利用率。设备繁忙的程度,表示每一秒之内,设备处理 IO 的时间占比。
大于 60% 的利用率通常会导致性能问题(可以通过 await 看到),但是每种设备也会有有所不同。
接近 100% 的利用率表明磁盘处于饱和状态。
6.sar -n TCP,ETCP 1
09:40:08 AM active/s passive/s iseg/s oseg/s
09:40:09 AM 0.99 1.98 4337.62 3067.33
active/s:每秒本地开启的TCP连接,即使用connect()系统调用次数
passive/s:每秒从源端发起的TCP连接,即使用accept()所接受的连接
retrans/s:每秒钟的TCP重传次数