vmstat 5
上面的命令是让它每5秒钟打印出一个报告,刚启动不久,即使采用增量报告,第一行的值还是显示自系统启动以来的平均值,第二行开始展示现在正在发生的情况,接下来的行会显示每5秒的间隔内发生了什么。
procs项中,r这一列显示了多少进程正在等待CPU,b列显示多少进程正在不可中断地休眠(通常意味着它们在等待I/O,例如磁盘、网络、用户输入等)。
memory选项中,swpd列显示多少块被换出到了磁盘(页面交换)。剩下的三个列显示了多少块是空闲的(未被使用)、多少块正在被用作缓冲,以及多少正在被用作操作系统的缓存。
swap选项中,这些列显示页面交换活动:每秒有多少块正在被换入(从磁盘)和换出(到磁盘)。它们比监控swpd列重要多了,大部分时间我们喜欢看到si和so列是0,并且我们很确定不希望看到每秒超过10个块,突发性的高峰一样很糟糕。
io选项中,这些列显示有多少块从块设备读取(bi)和写入(bo),这通常反映了硬盘I/O。
system选项中,这些列显示了每秒中断(in)和上下文切换(cs)的数量。
cpu选项中,这些列显示所有的CPU时间花费在各类操作的百分比,包括执行用户代码(非内核)、执行系统代码(内核)、空闲,以及等待I/O。如果正在使用虚拟化,则第五个列可能是st,显示了从虚拟机中“偷走”的百分比。这关系到那些虚拟机想运行但是系统管理程序转而运行其他的对象的时间。如果虚拟机不希望运行任何对象,但是系统管理程序运行了其他对象,这不算被偷走的CPU时间。
vmstat的输出跟系统有关,所以如果我们看到跟展示的例子不同的输出,应该阅读系统的vmstat(8)手册。
一个重要的提示是:内存,交换区,以及I/O统计是块数而不是字节,在Linux下,块大小通常是1024字节。