目录
1 命令概述
vmstat 命令是 Linux/Unix 系统下的一个性能分析工具,用于监测系统的 CPU、内存、I/O 等性能指标。通过使用 vmstat 命令,用户可以快速获取到当前系统的负载情况,帮助进行系统性能调优、故障排查等操作。
vmstat 命令的输出结果可以帮助用户完成以下任务:
1、监测系统的整体负载情况,了解系统的 CPU、内存、磁盘、网络等性能指标,以及进程数量和状态等信息。
2、分析系统性能问题,通过观察系统的 CPU 使用率、内存占用、磁盘 I/O 等指标,可以快速定位系统的性能瓶颈,找到导致系统负载过高、响应变慢等问题的原因。
3、监测系统的稳定性,通过连续监测系统的负载情况,可以识别出系统的周期性波动,以及系统负载变化的规律,从而更好地管理系统资源,保证系统的稳定性。
我们可以在操作系统上输入vmstat命令来系统的各项指标。
2 参数详解
以下是 vmstat 命令输出中各字段的含义:
procs
r:表示处于运行队列中(正在运行或等待运行)的进程数。
b:表示处于不可中断睡眠状态的进程数。
memory
swpd:表示被换出到交换空间的内存大小(单位:KB)。
free:表示空闲内存大小(单位:KB)。
buff:表示用作缓冲区的内存大小(单位:KB)。
cache:表示用作缓存的内存大小(单位:KB)。
swap
si:表示每秒从磁盘读入交换区的数据量(单位:KB)。
so:表示每秒写入到磁盘的交换区数据量(单位:KB)。
I/O
bi:表示每秒从块设备读入的数据量(单位:块,一般为 512 字节)。
bo:表示每秒向块设备写入的数据量(单位:块,一般为 512 字节)。
system
in:表示每秒产生的中断数。
cs:表示每秒上下文切换的次数。
CPU
us:表示用户空间占用 CPU 时间的百分比。
sy:表示内核空间占用 CPU 时间的百分比。
id:表示空闲 CPU 时间的百分比。
wa:表示等待 I/O 的 CPU 时间百分比。
st:表示被虚拟机偷走的 CPU 时间的百分比。
3 常用参数以及基本用法
vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f] vmstat [-V]
参数含义
-a 显示活跃和非活跃内存
-f 显示从系统启动至今的fork数量
-m 显示slabinfo
-n 只在开始时显示一次各字段名称。
-s 显示内存相关统计信息及多种系统活动数量 delay 刷新时间间隔。如果不指定,只显示一条结果
count 刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷
-d 显示磁盘相关统计信息
-p 显示指定磁盘分区统计信息
-S 使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
-V 显示vmstat版本信息。
4 常用命令
①做定时任务,监控系统状态
vmstat 1 20 >> vmstat.log (每秒输出一次,共输出20次)
②vmstat -s:使用 vmstat 命令的 -s 选项,可以显示系统的各种统计信息,包括内存总量、内存使用情况、磁盘 I/O 等信息。
③vmstat -p [device]:使用 vmstat 命令的 -p 选项,可以显示指定设备的 I/O 统计信息,例如 vmstat -p /dev/sda1 可以查看 sda1 设备的 I/O 情况。