在 Linux 系统运维和性能调优中,了解系统的资源使用情况至关重要。其中,Ubuntu vmstat命令 是一个轻量级但功能强大的工具,用于实时监控系统的 虚拟内存统计、CPU 使用率、I/O 活动等关键指标。本文将带你从零开始,手把手教你如何使用
vmstat命令,即使是 Linux 新手也能轻松掌握。

什么是 vmstat?
vmstat(Virtual Memory Statistics 的缩写)是 Linux 系统自带的一个命令行工具,用于报告有关进程、内存、分页、块 I/O、陷阱和 CPU 活动的信息。它不需要安装额外软件,在 Ubuntu 及其他主流发行版中默认可用。
通过
vmstat,你可以快速判断系统是否存在内存瓶颈、CPU 过载或磁盘 I/O 延迟等问题,是进行 系统性能监控 的基础工具之一。
基本语法
vmstat的基本用法如下:
vmstat [选项] [延迟 [次数]]延迟:表示每隔多少秒采集一次数据(单位:秒)。 次数:表示总共采集多少次数据。如果不指定次数,则会持续运行直到手动终止(Ctrl+C)。
常用示例
1. 查看当前系统快照
直接运行
vmstat不带参数,会显示自系统启动以来的平均值:
$ vmstatprocs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 123456 78910 234567 0 0 12 20 50 100 5 2 93 0 0
2. 每2秒采集一次,共采集5次
$ vmstat 2 5
这在观察系统在高负载下的行为时非常有用。
输出字段详解
理解
vmstat输出的每一列含义是使用它的关键: procs(进程相关)
r:等待运行的进程数(就绪队列长度)。如果持续大于 CPU 核心数,说明 CPU 可能过载。
b:处于不可中断睡眠状态的进程数(通常在等待 I/O)。 memory(内存使用,单位 KB)
swpd:使用的虚拟内存(swap)大小。
free:空闲物理内存。
buff:用作缓冲区的内存(用于块设备 I/O)。
cache:用作缓存的内存(用于文件系统)。 swap(交换活动)
si:每秒从磁盘换入到内存的数据量(swap in)。
so:每秒从内存换出到磁盘的数据量(swap out)。若
so持续 > 0,说明物理内存不足。 io(块设备 I/O)
bi:每秒从块设备读入的块数。
bo:每秒写入块设备的块数。 system(系统活动)
in:每秒中断次数。
cs:每秒上下文切换次数。 cpu(CPU 时间百分比)
us:用户态 CPU 使用率。
sy:内核态 CPU 使用率。
id:CPU 空闲时间百分比。
wa:等待 I/O 完成的时间(I/O 等待)。若较高,说明磁盘可能是瓶颈。
st:被虚拟机偷走的时间(仅在虚拟化环境中出现)。
实用技巧
结合watch命令实时刷新:
$ watch -n 1 'vmstat 1 2'若想查看更详细的内存信息,可配合
free -h或
top使用。 在排查性能问题时,重点关注
wa(I/O 等待)和
so(swap out),它们往往是系统瓶颈的信号。
总结
vmstat是一个简单却极其有用的工具,特别适合用于快速诊断 Linux内存管理 和整体系统健康状况。通过本文的学习,你应该已经掌握了如何使用
vmstat查看 虚拟内存统计、分析 CPU 和 I/O 负载,并能初步判断系统是否存在性能瓶颈。
记住,Ubuntu vmstat命令 虽小,却是系统管理员日常 系统性能监控 工具箱中的必备利器。多加练习,你就能像老手一样快速定位问题!
