vmstat命令也是显示Linux性能指标的方法,它报告了许多信息,理解这些信息有一定难度。

vmstat:报告关于内核进程,虚拟内存,磁盘,cpu的的活动状态的工具 用法:vmstat 间隔 测试数量

输出分为6个类别:进程、内存、交换区、I/O、系统和CPU。与iostat类似,第一个样本是从最近重新启动以来的平均值。以下是一个典型的vmstat输出:

procs ———–memory———- —swap– —–io—- –system– —–cpu——

r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 9652 7269324 9316 11509824 0 0 248 11 1328 591 0 0 100 0 0
0 0 9652 7268952 9316 11509824 0 0 552 4 1640 1056 0 0 99 0 0
0 0 9652 7268620 9316 11509824 0 0 768 3 1880 1377 0 0 99 0 0
1 0 9652 7268244 9320 11509820 0 0 496 13 1628 995 0 0 99 0 0
0 0 9652 7268156 9320 11509824 0 0 576 3 3242 5675 0 1 99 0 0

结果列表示的意义

–r 运行队列中的进程数,在一个稳定的工作量下,应该少于5 (r <5) –b 等待队列中的进程数(等待I/O),通常情况下是接近0的. (b=0) –sy 系统调用中断 –cs 内核进程前后交换中断 cpu–cpu的使用率 –us 用户进程的时间 –sy 系统进程的时间 –id cpu空闲的时间 –wa 等待i/o的时间 一般us+sy 在单用户系统中不大于90,在多用户系统中不大于80. wa时间一般不大于40.

表3-7 vmstat内存字段

字 段 说 明
Swpd 已用的交换空间数量
free 自由RAM数量
buff 缓冲使用的RAM数量
cache 文件系统缓存使用的RAM数量

接下来是交换(swap)指标。交换只是一个古老术 语,但是显然不会消失。交换涉及分页读取或写入磁盘的进程所消耗的所有内存。它将显示系统达到的性能指标水平。而Linux所做的是,以小块方式按照需要 对磁盘空间进行分页操作。因此,我们可能应该停止说交换到磁盘的内存,并开始说分页到磁盘的内存。对于任何一种方法,表3-8解释了相关字段。

表3-8 vmstat交换字段

字 段 说 明
si 从磁盘分页到内存的数量
so 从内存分页到磁盘的数量

在交换之后是两个I/O字段。这部分提供了一个简略介绍以帮助确定Linux是否正忙于完成许多磁盘I/O。vmstat只提供两个字段,显示出入磁盘的数据量(参见表3-9)。

表3-9 vmstat io字段

字 段 说 明
bi 从磁盘读入的块
bo 写入磁盘的块

系统字段提供Linux内核进行进程管理的繁忙程度的摘要。中断和上下文开关参见表3-10。上下文开关指进程移出CPU或者移入CPU。

表3-10 vmstat系统字段

字 段 说 明
in 系统中断
cs 进程上下文开关

最后,CPU状态信息用总CPU时间的百分比来表示,如表3-11所示。

表3-11 vmstat cpu字段

字 段 说 明
us 用户模式
sy 内核模式
wa 等待I/O
id 空闲