Linux vmstat命令实际操作介绍
发布日期:2021-05-18 08:56:56 浏览次数:16 分类:精选文章

本文共 2551 字,大约阅读时间需要 8 分钟。

Linux 系统性能监控中,vmstat(Virtual Memory Statistics,虚拟内存统计)是一款强大的工具,用于实时监控系统的虚拟内存、进程、CPU活动等多方面信息。它能够快速提供系统整体运行状态,但无法对单个进程进行深入分析。以下将从 vmstat 的用法、功能、选项参数以及实例展示等方面详细介绍。

vmstat 的用法

vmstat 的基本用法非常简单,用户可以通过以下方式使用:

vmstat [选项参数] [参数]
  • 无参数:默认显示虚拟内存及相关统计信息。
  • 带时间参数:如 vmstat 2,表示每 2 秒更新一次信息;vmstat 5 表示每 5 秒更新一次。

vmstat 的功能

vmstat 主要功能包括系统性能监控、内存使用情况查看、磁盘 I/O 统计等。它提供了以下关键信息:

  • 进程信息:如运行任务数(r)、等待 I/O 的进程数(b)。
  • 内存信息:包括物理内存使用情况(free、buff、cache)、交换区使用情况(si、so)。
  • 磁盘 I/O:显示磁盘读写操作次数及相关统计信息。
  • 系统活动:包括中断数(in)、上下文切换次数(cs)。
  • CPU 使用情况:以百分比显示用户空间和内核空间的 CPU 负载(us、sy、id、wa)。

vmstat 的选项参数

为了满足不同的监控需求,vmstat 提供多种选项参数:

  • -d:显示磁盘相关的统计信息,包括读写区块数和总用量。
  • -a:显示活跃内存(active)和非活跃内存(inactive)占比。
  • -f:显示系统启动以来 fork 次数。
  • -p:指定特定磁盘分区的统计信息。
  • -s:显示内存及系统活动统计信息,默认作为 vmstat 的常规输出。
  • -m:显示 slabinfo。
  • vmstat 的实例

    以下通过实例展示 vmstat 的常用命令及输出解读:

    1. vmstat 显示虚拟内存使用情况

    vmstat

    输出示例:

    procs: 3, 0, 0
    memory: 0, 506, 15264
    swap: 0, 0
    io: 74, 29, 53
    system: 139, 1, 99, 0
    cpu: 0.23 us, 0.17 sy, 0.02 ni, 99.58 id, 0.23 wa, 0.00 hi, 0.00 si, 0.00 us, 0.00 ni, 0.00sy on 4 cores
    • procs:当前进程数量。
    • memory:物理内存使用情况,包括 swap、free、buff、cache。
    • swap:交换区使用情况。
    • io:磁盘读写操作频率。
    • system:系统活动指标。
    • cpu:CPU 使用情况及等待 I/O 的比例。

    2. vmstat 每 2 秒更新一次

    vmstat 2

    输出示例:

    procs: 3, 0, 0
    memory: 0, 506, 15264
    swap: 0, 0
    io: 74, 29, 53
    system: 139, 1, 99, 0
    cpu: 0.23 us, 0.17 sy, 0.02 ni, 99.58 id, 0.23 wa, 0.00 hi, 0.00 si, 0.00 us, 0.00 ni, 0.00sy on 4 cores

    输出间隔更新,但统计信息保持一致。

    3. 显示磁盘统计信息

    vmstat -d

    输出示例:

    --磁盘读--    --磁盘写--    --磁盘 I/O--
    mergerd 43 0 676 447 0 0 0 0 mergerd 38 0 226 450
    mergerd 54 0 2124 998 0 0 0 0 mergerd 42 0 674 695
    mergerd 37 0 664 117 0 0 0 0 mergerd 44 0 678 549
    mergerd 44 0 678 549 0 0 0 0 mergerd 40 0 670 567
    mergerd 92 0 2162 2091 0 0 0 0 mergerd 62 0 2140 846
    mergerd 39 0 668 579 0 0 0 0 mergerd 47 0 2132 871
    sda: 23949 3166 1621538 221257 9490 10847 654856 221706
    sr0: 35 0 2132 64
    • merged:读写合并操作次数。
    • reads:磁盘读扇区次数。
    • writes:磁盘写扇区次数。
    • total_sector:总扇区使用情况。
    • loop:关于磁盘分区的读写次数统计。

    4. 显示活跃内存与非活跃内存

    vmstat -a

    输出示例:

    procs: 3, 0, 0
    memory:
    r b active inactive
    0 0 0 0
    memory: 0, 506, 9490
    swap: 0, 0
    io: 74, 29, 53
    system: 139, 1, 99, 0
    cpu: 0.23 us, 0.17 sy, 0.02 ni, 99.58 id, 0.23 wa, 0.00 hi, 0.00 si, 0.00 us, 0.00 ni, 0.00sy on 4 cores
    • active:当前活跃的内存大小。
    • inactive:当前非活跃的内存大小。

    5. 查看系统已被 fork 的次数

    vmstat -f

    输出示例:

    5100 forks
    • 代表系统启动以来总共发生了 5100 次 fork 调用。

    vmstat 的注意事项

    • 物理内存不足:only when free,-buffer,swap 加起来小于 50%,才可能影响性能。
    • swap 不断:si 和 so 都为 0 时,可能意味着交换分区压力较大。
    • 磁盘 I/O 优化:bi 和 bo 的值较高时,建议检查磁盘性能或文件 IO 优化。

    vmstat 是系统管理员和开发人员日常监控服务器性能的重要工具。通过不同选项,可以对系统的内存、磁盘、进程和 CPU 等多个维度进行全面监控。

    上一篇:浅谈教你如何掌握Linux系统
    下一篇:Vlock用于有多个用户访问控制台的共享 Linux 系统

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年04月14日 05时08分59秒