在 Linux 系统管理中,了解系统的资源使用情况至关重要。对于 Ubuntu 用户来说,vmstat 是一个非常实用的命令行工具,用于实时监控系统的虚拟内存统计、CPU 使用率、I/O 活动等关键性能指标。本文将手把手教你如何使用
vmstat命令,即使是 Linux 新手也能轻松掌握。
什么是 vmstat?
vmstat(Virtual Memory Statistics 的缩写)是 Linux 系统内置的一个轻量级监控工具,它能报告关于进程、内存、分页、块 I/O、陷阱和 CPU 活动的信息。通过定期采样,你可以观察系统在一段时间内的运行状态,从而判断是否存在性能瓶颈。
安装 vmstat(通常已预装)
在大多数 Ubuntu 系统中,
vmstat已经包含在
procps软件包中,无需额外安装。但如果你发现系统没有该命令,可以通过以下命令安装:
sudo apt updatesudo apt install procps
基本语法
vmstat的基本用法如下:
vmstat [delay [count]] delay:两次采样之间的间隔时间(秒)。 count:采样的总次数。如果不指定,则持续运行直到手动终止(Ctrl+C)。
示例:实时监控系统状态
下面是一个常见的用法:每 2 秒采集一次数据,共采集 5 次:
vmstat 2 5
执行后,你会看到类似如下的输出:
procs -----------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 78900 234567 0 0 12 20 50 100 5 2 92 1 0 0 0 0 123000 78920 234600 0 0 0 8 48 98 4 1 95 0 0 ...
输出字段详解
理解每一列的含义是使用
vmstat的关键:
1. 进程(procs)
r:等待运行的进程数(就绪队列长度)。 b:处于不可中断睡眠状态的进程数(通常在等待 I/O)。2. 内存(memory)
swpd:使用的虚拟内存(swap)大小(KB)。 free:空闲物理内存(KB)。 buff:用作缓冲区的内存(KB)。 cache:用作缓存的内存(KB)。3. Swap(交换)
si:从磁盘换入内存的数据量(KB/s)。 so:从内存换出到磁盘的数据量(KB/s)。4. I/O(输入/输出)
bi:从块设备读入的数据块数(每秒)。 bo:写入块设备的数据块数(每秒)。5. 系统(system)
in:每秒中断次数。 cs:每秒上下文切换次数。6. CPU(处理器)
us:用户空间占用 CPU 百分比。 sy:内核空间占用 CPU 百分比。 id:CPU 空闲百分比。 wa:等待 I/O 完成的 CPU 时间百分比。 st:被虚拟机偷取的时间(仅在虚拟化环境中显著)。常见使用场景
- 排查高负载问题:如果
r列数值长期大于 CPU 核心数,说明系统过载。
- 检测内存不足:如果
free很小,且
si/so非零,说明系统频繁使用 swap,可能内存不足。
- 识别 I/O 瓶颈:如果
wa(I/O wait)很高,说明 CPU 在等待磁盘响应,可能是磁盘性能瓶颈。
总结
vmstat是 Ubuntu 和其他 Linux 发行版中不可或缺的系统性能监控工具。通过它,你可以快速获取关于Linux内存管理和整体系统健康状况的关键信息。掌握这个命令,不仅能帮助你优化服务器性能,还能在故障排查时提供有力支持。
希望这篇教程能让你对 Ubuntu vmstat命令 和 虚拟内存统计 有清晰的理解。快在你的终端中试试吧!
