Linux 性能检测工具Vmstat命令提供了对进程、内存、页面I/O块和CPU等信息的监控,vmstat可以显示检测结果的平均值或者取样值,取样模式可以提供一个取样时间段内不同频率的监测结果。


Linux 性能检测工具Vmstat命令process(procs)
r:等待运行时间的进程数量
b:处在不可中断睡眠状态的进程
w:被交换出去但是仍然可以运行的进程,这个值是计算出来的


·Linux 性能检测工具Vmstat命令memoryswpd:虚拟内存的数量
free:空闲内存的数量
buff:用做缓冲区的内存数量


Linux 性能检测工具Vmstat命令·swap
si:从硬盘交换来的数量
so:交换到硬盘去的数量


Linux 性能检测工具Vmstat命令·IO
bi:向一个块设备输出的块数量
bo:从一个块设备接受的块数量


Linux 性能检测工具Vmstat命令system
in:每秒发生的中断数量, 包括时钟
cs:每秒发生的context switches的数量


·Linux 性能检测工具Vmstat命令cpu(整个cpu运行时间的百分比)
us:非内核代码运行的时间(用户时间,包括nice时间)
sy:内核代码运行的时间(系统时间)
id:空闲时间,在Linux 2.5.41之前的内核版本中,这个值包括I/O等待时间;
wa:等待I/O操作的时间,在Linux 2.5.41之前的内核版本中这个值为0


Vmstat命令提供了大量的附加参数,下面列举几个十分有用的参数:
引用
·m:显示内核的内存利用率
·a:显示内存页面信息,包括活跃和不活跃的内存页面
·n:显示报头行,这个参数在使用取样模式并将命令结果输出到一个文件时非常有用。例如root#vmstat –n 2 10以2秒的频率显示10输出结果
·当使用-p {分区}时,vmstat提供对I/O结果的统计



vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。通常使用vmstat 5 5(代表的意思是每隔5秒钟生成一次数据,一共生成5次数据)命令测试。将得到一个数据汇总他能够反映真正的系统情况。
#vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b   swpd   free   buff cache   si   so    bi    bo   in    cs us sy id wa
1 0 62792   3460   9116 88092    6   30   189    89 1061   569 17 28 54 2
0 0 62792   3400   9124 88092    0    00    14 884   434 4 14 81 0
0 0 62792   3400   9132 88092    0    00    14 877   424 4 15 81 0
1 0 62792   3400   9140 88092    0    00    14 868   418 6 20 74 0
1 0 62792   3400   9148 88092    0    00    15 847   400 9 25 67 0
Linux 内存监控vmstat命令输出分成六个部分:


(1)进程procs: 
r:在运行队列中等待的进程数 。
b:在等待io的进程数 。


(2)Linux 内存监控内存memoy: 
swpd:现时可用的交换内存(单位KB)。 
free:空闲的内存(单位KB)。
buff: 缓冲去中的内存数(单位:KB)。
cache:被用来做为高速缓存的内存数(单位:KB)。


(3) Linux 内存监控swap交换页面 
si: 从磁盘交换到内存的交换页数量,单位:KB/秒。
so: 从内存交换到磁盘的交换页数量,单位:KB/秒。


(4)Linux 内存监控 io块设备:
bi: 发送到块设备的块数,单位:块/秒。
bo: 从块设备接收到的块数,单位:块/秒。


(5)Linux 内存监控system系统: 
in: 每秒的中断数,包括时钟中断。
cs: 每秒的环境(上下文)转换次数。


(6)Linux 内存监控cpu中央处理器:
cs:用户进程使用的时间 。以百分比表示。
sy:系统进程使用的时间。 以百分比表示。
id:中央处理器的空闲时间 。以百分比表示。


假如 r经常大于 4 ,且id经常小于40,表示中央处理器的负荷很重。 假如bi,bo 长期不等于0,表示物理内存容量太小。