当前位置:首页 > 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 活动的信息。它不需要安装额外软件,在 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 -htop 使用。
  • 在排查性能问题时,重点关注 wa(I/O 等待)和 so(swap out),它们往往是系统瓶颈的信号。

总结

vmstat 是一个简单却极其有用的工具,特别适合用于快速诊断 Linux内存管理 和整体系统健康状况。通过本文的学习,你应该已经掌握了如何使用 vmstat 查看 虚拟内存统计、分析 CPU 和 I/O 负载,并能初步判断系统是否存在性能瓶颈。

记住,Ubuntu vmstat命令 虽小,却是系统管理员日常 系统性能监控 工具箱中的必备利器。多加练习,你就能像老手一样快速定位问题!