Linux:vmstat命令
本文只总结一些常用的用法,更详细的说明见
man vmstat
和vmstat --help
。
[toc]
vmstat命令
vmstat是Virtual Meomory Statistics(虚拟内存统计)缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
语法格式
1 | vmstat [options] [delay [count]] |
delay
:刷新时间间隔。如果不指定,只显示一条结果。
count
:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
不加任何参数:
1 | [root@test ~]# vmstat |
参数说明
参数 | 说明 |
---|---|
-a | 显示活跃和非活跃内存 |
-f | 显示从系统启动至今的fork数量 |
-m | 显示slabinfo |
-n | 只在开始时显示一次各字段名称 |
-s | 显示内存相关统计信息及多种系统活动数量 |
-d | 显示磁盘相关统计信息 |
-p | 显示指定磁盘分区统计信息 |
-S | 使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes) |
-V | 显示vmstat版本信息 |
输出信息说明
类别:
- procs:进程
- memory:内存
- swap:虚拟内存
- io:磁盘io
- system:系统内核
- cpu:CPU时间百分比
procs
项目 | 说明 |
---|---|
r | 等待执行的任务数,当这个值超过了CPU数目,就会出现CPU瓶颈了 |
b | 处在非中断睡眠状态的进程数,大于0表示进程阻塞 |
memory
项目 | 说明 |
---|---|
swpd | 正在使用的swap大小单位K,如果大于0,表示物理内存不足 |
free | 空闲的物理内存空间 |
buff | 已使用的buff大小,对块设备的读写进行缓冲 |
cache | 已使用的cache大小,文件系统的cache |
inact | 非活跃内存大小 |
active | 活跃的内存大小 |
swap
项目 | 说明 |
---|---|
si | 交换内存使用,由磁盘调入内存 |
so | 交换内存使用,由内存调入磁盘 |
io
项目 | 说明 |
---|---|
bi | 从块设备读入的数据总量(读磁盘) (KB/s),如果这个值大于0,表示物理内存不够用或者内存泄露了 |
bo | 写入到块设备的数据总理(写磁盘) (KB/s) ,如果这个值大于0,表示物理内存不够用或者内存泄露了 |
system
这2个值越大,会看到由内核消耗的CPU时间会越多。
项目 | 说明 |
---|---|
in | 每秒产生的中断次数 |
cs | 每秒产生的上下文切换次数 |
cpu
项目 | 说明 |
---|---|
us | 用户进程消耗的CPU时间百分比。us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么就该考虑优化程序算法或者进行加速了 |
sy | 内核进程消耗的CPU时间百分比。sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因 |
id | 空闲 |
wa | IO等待消耗的CPU时间百分比。wa的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 时间之旅!
评论