输出项的解释例如以下:
procs
* r列表示执行和等待cpu时间片段的进程数,这个值假设长期大约系统cpu个数。说明cpu不足
* b列表示在等待资源的进程数。比方正在等待IO或者内存交换等等
memory
* swap列表示切换到交换区的内存大小(KB为单位),假设swap的值不为0或者比較大,仅仅要si和so长期为0。一般不是性能问题
* free列表示当前空暇的物理内存数量(以KB为单位)
* buff列表示buffers cache的内存数量,一般对块设备的读写才须要缓冲
* cache列表示page cached的内存数量,一般作为文件系统进行缓存。频繁訪问的文件都会被缓存。
假设cache值较大,说明缓存文件较多,假设此时io中的bi比較小。说明文件系统效率比較好。
swap
* si列表示由磁盘调入内存,也就是由内存进入内存交换区的内存大小,单位KB/秒
* so列表示由内存调入磁盘,也就是由内存交换区进入内存的大小,单位KB/秒。
在普通情况下,si、so的值都为0。假设si、so值长期不为0。则表示系统内存不足。须要添加系统内存。
io
io项显示磁盘读写情况
bi列表示从块设备读入数据的总量(即读磁盘)(kb/s)
bo列表示写到块设备的数据总量(即写磁盘)(kb/s)
bi+bo的參考值为1000。假设超过1000。并且wa值较大,则表示系统磁盘IO有问题。应该考虑提高磁盘的读写性能。
system
显示採集间隔内发生的中断数
in列表示在某一时间间隔内观測到的每秒设备中断数
cs列表示每秒产生的上下文切换次数
上面的两个值越大,由内核消耗的CPU时间越多。
CPU
显示了CPU的使用状态,此列是关注的重点。
us列显示了用户进程消耗的CPU时间百分比。
us的值比較高时,说明用户进程消耗的CPU时间多,可是假设长期大约50%。就须要考虑优化算法或程序。
sy列显示了内核进程消耗的CPU时间百分比。sy的值较高时,说明内核消耗的CPU资源非常多。
依据经验,us+sy的參考值为80%,假设us+sy大约80%。说明可能存在CPU资源不足。
id列显示了CPU处在空暇时间的时间百分比。
wa列显示了IO等待所占用的CPU时间百分比。wa值越高,说明IO等待越严重。依据经验,wa的參考值为20%,假设wa超过20%,说明IO等待严重,引起IO等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或者磁盘控制器的带宽瓶颈(主要是块操作)造成的。
综上所述,在对CPU的评估中,须要重点注意procs项中r列的值和CPU项中us、sy和id列的值。