Vmstat
procs———–memory———-—swap–—–io—-–system–—-cpu—-
rbswpdfreebuffcachesisobiboincsussyidwa
00100152243697200289740013445993300990
procs
r列
表示运行和等待cpu
时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
b列表示在等待资源的进程数,比如正在等待I/O、或者
内存交换等。
cpu表示cpu的使用状态
us列显示了用户方式下所花费CPU时间的
百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
sy列显示了内核进程所花费的cpu时间的百分比。这里us+sy的参考值为80%,如果us+sy大于80%说明可能存在CPU不足。
wa列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是
磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
id列显示了cpu处在空闲状态的时间百分比
system显示采集间隔内发生的中断数
in列表示在某一时间间隔中观测到的每秒设备中断数。
cs列表示每秒产生的上下文切换次数,如当cs比磁盘I/O和网络信息包速率高得多,都应进行进一步调查。
memory
swpd切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
free当前的空闲页面列表中内存数量(k表示)
buff作为buffercache的内存数量,一般对块设备的读写才需要缓冲。
cache:作为pagecache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。
swap
si由内存进入内存交换区数量。
so由内存交换区进入内存数量。
IO
bi从块设备读入数据的总量(读磁盘)(每秒kb)。
bo块设备写入数据的总量(写磁盘)(每秒kb)
这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。
vmstat命令输出分成六个部分:
(1)进程procs:
r:在运行队列中等待的进程数。
b:在等待io的进程数。
(2)内存memoy:
swpd:现时可用的交换内存(单位KB)。
free:空闲的内存(单位KB)。
buff:缓冲去中的内存数(单位:KB)。
cache:被用来做为高速缓存的内存数(单位:KB)。
(3)swap交换页面
si:从磁盘交换到内存的交换页数量,单位:KB/秒。
so:从内存交换到磁盘的交换页数量,单位:KB/秒。
(4)io块设备:
bi:发送到块设备的块数,单位:块/秒。
bo:从块设备接收到的块数,单位:块/秒。
(5)system系统:
in:每秒的中断数,包括时钟中断。
cs:每秒的环境(上下文)切换次数。
(6)cpu中央处理器:
cs:用户进程使用的时间。以百分比表示。
sy:系统进程使用的时间。以百分比表示。
id:中央处理器的空闲时间。以百分比表示。
如果r经常大于4,且id经常小于40,表示中央处理器的负荷很重。如果bi,bo长期不等于0,表示物理内存容量太小。