当前位置:首页 > Ubuntu > 正文

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

在 Linux 系统管理中,了解系统的资源使用情况至关重要。对于 Ubuntu 用户来说,vmstat 是一个非常实用的命令行工具,用于实时监控系统的虚拟内存统计、CPU 使用率、I/O 活动等关键性能指标。本文将手把手教你如何使用 vmstat 命令,即使是 Linux 新手也能轻松掌握。

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

什么是 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命令虚拟内存统计 有清晰的理解。快在你的终端中试试吧!