Ubuntu vmstat命令详解(虚拟内存统计与系统性能监控入门指南)

来源:这里教程网 时间:2026-03-28 17:31:05 作者:

在 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命令 虽小,却是系统管理员日常 系统性能监控 工具箱中的必备利器。多加练习,你就能像老手一样快速定位问题!

相关推荐

热文推荐