mpstat和vmstat
mpstat
当看到较低的 %idle 数字时,可能出现了 CPU 不足的问题。当看到较高的 %iowait 数字时,可能在当前负载下 I/O 子系统出现了某些问题。
vmstat
# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 60160 610692 0 293948 0 1 1160 399 16 181 2 1 96 0 0
0 0 60160 610544 0 293948 0 0 0 0 78 114 0 0 100 0 0
0 0 60160 610544 0 293948 0 0 0 0 69 106 0 1 99 0 0
0 0 60160 610544 0 293948 0 0 0 0 61 94 0 0 100 0 0
0 0 60160 610544 0 293948 0 0 0 0 68 103 0 0 100 0 0
procs #进程
r(run):表示运行或等待CPU时间片的进程数,如果该值长期大于服务器CPU的个数,则说明CPU资源不足。一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险;
b(block):表示等待资源的进程数,这个资源指的是I/O、内存等。比如,当磁盘读写非常频繁时,写数据就会变得很慢,此时CPU运算很快就结束了,但进程需要把计算的结果写入磁盘,这样进程的任务才算完成,此时这个进程只能慢慢地等待磁盘了,这个进程就是这个b状态。该数值如果长时间大于1,则需要去查找问题;
memory #内存,单位:KB
swpd:虚拟内存(swap空间)已使用的大小,也叫正在使用的大小;
free:空闲的物理内存的大小;
buff:存放目录里面有什么内容,文件的属性以及权限等;
cache:用来记忆我们打开过的文件和程序,做文件缓冲(当程序使用内存时,buff/cache很快就会被使用);
swap #swap空间,单位:KB,内存够用时,si和so值都为0,如果这两个值长期大于0,表示内存不够用了,系统性能会受到影响
si:表示从swap空间写入内存的数据量;
so:表示从内存写入swap空间的数据库;
io #单位:块/秒
bi:每秒读取的块数(读磁盘),现在的Linux版本块的大小为1024bytes;
bo:每秒写入的块数(写磁盘);
system #系统,这两个值越大,会看到由内核消耗的CPU时间会越大
in:每秒CPU的中断次数,包括时间中断;
cs:每秒上下文切换数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进行上下文切换,这个值越小越好;
cpu #以百分比显示
us(user time):用户进程执行时间;
sy(system time):系统进程执行时间;
id:空闲时间(包括IO等待时间);
wa:等待IO时间,wa的值高时,说明IO等待比较严重,这可能由于磁盘大量做随机访问造成的,也有可能是磁盘出现瓶颈;
st:表示被偷走的CPU所占百分比(一般都为0,不用关注);
us + sy + id + wa =100% #这个是只是近似值
原文地址
https://blog.csdn.net/quiet_girl/article/details/50697412
https://blog.csdn.net/yuioplv/article/details/95034590