vmstat是virtual memory statistics的缩写,它能实时输出系统的各种资源的使用情况,比如进程信息、内存使用、CPU使用率以及I/O使用情况。
vmstat命令常用的选项和参数包括:
-f:显示系统自启动以来执行的fork次数
-s: 显示内存相关的统计信息以及多种系统活动的数量(比如CPU上下文切换次数)。
-d: 显示磁盘相关的统计信息
-p: 显示指定磁盘分区的统计信息
-S:使用指定的单位来显示。 参数k、K、m、M分别代表1000、1024、1024、1000000和1048576字节
delay # 采用间隔(单位是s),即每隔delay的时间输出一次统计信息
count # 采样次数,即共输出count次统计信息。
# 上图:第一行输出是自系统启动以来的平均结果,而后面的输出则是采样间隔内的平均结果。vmstat的每条输出都包含6个字段,它们的含义分别是:
procs:进程信息。”r"表示等待运行的进程数目;“b"表示处于不可中断睡眠状态的进程数目。
memory:内存信息,各项的单位都是千字节(KB)。“swpd“表示虚拟内存的使用数量。”free“表示空闲内存的数量。”buff"表示作为“buff cache”的内存数量。从磁盘读入的数据可能被保持在“buffer cache”中,以便下一次快速访问。“cahe"表示作为”page cache“的内存数量。待写入磁盘的数据将首先放到”page cache“中,然后由磁盘中断程序写入磁盘。
swap:交换分区(虚拟内存)的使用信息,各项的单位都是KB/s。"si"表示数据由磁盘交换至内存的速率;”so“表示数据由内存交换至磁盘的速率。如果这两个值经常发生变化,说明内存不足。
io:块设备的使用信息,单位是block/s,”bi“表示从块设备读入块的速率;”bo“表示向块设备写入块的速率
system:系统信息。“in”表示每秒发生的中断次数;“cs“表示每秒发生的上下文切换(进程切换)次数
cpu:CPU使用信息。”us”表示系统所有进程运行在用户空间的时间占CPU总运行时间的比例;“sy'表示系统所有进程运行在内核空间的时间占CPU总运行时间的比例;”id”表示CPU处于空闲状态的时间占CPU总运行时间的比例;“wa“表示CPU等待I/O事件的时间占CPU总运行时间的比例。
iostat --获取磁盘使用情况的更多信息
mpstat -- 获得CPU使用情况的更多信息