1、概要
- Virtual Meomory Statistics,报告虚拟内存统计信息
- 会统计进程信息、内存、交换区、IO、磁盘、CPU 等数据
2、vmstat主要能看什么性能指标
- 均是 Linux 系统级别
- 运行状态、不可中断睡眠状态的进程数量
- 内存、交换区、I/O、CPU 信息
- 上下文切换次数、中断次数
- 磁盘 I/O 的详细信息和概要信息
3、语法格式
vmstat [options] [delay [count]]
options:命令行参数,可选 delay:间隔多久统计一次数据,可选 count:统计一次,可选 注意:若只传了 delay,则统计次数是无限次,结束统计后会打印本次所有数据的平均值
命令行参数
-a:显示活跃和非活跃内存 -f:显示从系统启动至今的fork数量 。 -m:显示slabinfo -n:只在开始时显示一次各字段名称。 -s:显示内存相关统计信息及多种系统活动数量。 delay:刷新时间间隔。如果不指定,只显示一条结果。 count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。 -d:显示磁盘相关统计信息。
-D:获取磁盘的一些摘要信息 -p:显示指定磁盘分区统计信息 -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
-t:加一列显示当前时间 -V:显示vmstat版本信息。
-h:帮助文档
4、统计数据的字段说明
类别 |
项目 |
含义 |
说明 |
Procs |
r |
等待执行的进程数量 |
展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了 |
|
b |
处于不可中断睡眠状态的进程数量 |
|
Memory |
swpd |
正在使用的swap大小单位K |
|
|
free |
空闲的内存空间 |
|
|
buff |
已使用的buff大小,对块设备的读写进行缓冲 |
|
|
cache |
已使用的cache大小,文件系统的cache |
|
|
inact |
非活跃内存大小(当使用-a选项时显示) |
|
|
active |
活跃的内存大小(当使用-a选项时显示) |
|
Swap |
si |
交换内存使用,由磁盘调入内存 |
|
|
so |
交换内存使用,由内存调入磁盘 |
|
IO |
bi |
从块设备读入的数据总量(读磁盘) (KB/s), |
|
|
bo |
写入到块设备的数据总理(写磁盘) (KB/s) |
|
System |
in |
每秒产生的中断次数 |
|
|
cs |
每秒产生的上下文切换次数 |
上面这2个值越大,会看到由内核消耗的CPU时间会越多 |
CPU |
us |
用户进程消耗的CPU时间百分比 |
us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了 |
|
sy |
内核进程消耗的CPU时间百分比 |
sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。 |
|
id |
空闲 |
|
|
wa |
IO等待消耗的CPU时间百分比 |
wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。 |
5、数据来源说明
主要来自如下文件:
/proc/meminfo
/proc/stat
/proc/*/stat
1)这些信息主要来自 /proc/stat
2)这些信息的分别来自于 /proc/meminfo 、 /proc/stat 和 /proc/vmstat
3)这些信息主要来自于 /proc/diskstats
这些信息的分别来自于 、 和