Linux性能监控利器:vmstat命令详解及使用指南

vmstat 是 Linux 系统管理员和开发人员必备的性能监控命令之一,它可以实时显示系统的各种资源使用情况,帮助我们快速诊断性能瓶颈。

一、vmstat 命令基础

1.1 功能简介

vmstat 命令用于监控系统的虚拟内存、进程、CPU 和 I/O 等方面的性能指标,可以实时显示系统的运行状态,帮助我们识别潜在的性能问题。

1.2 语法格式

vmstat [选项] [延迟时间] [次数]
  • 选项: 用于指定输出内容和格式,例如 -a 显示所有指标,-s 显示系统统计信息等。
  • 延迟时间: 两次输出之间的时间间隔,单位为秒。
  • 次数: 输出的次数,默认情况下只输出一次。

1.3 常用选项

| 选项 | 说明 | |---|---| | -a | 显示所有指标,包括内存、进程、CPU 和 I/O 等 | | -f | 显示 fork 和 vfork 的次数 | | -m | 显示内存使用情况,包括 slab 分 allocator 的使用情况| | -n | 指定输出次数 | | -s | 显示系统统计信息,例如中断次数、上下文切换次数等 | | -t | 显示时间戳 |

二、vmstat 输出结果解读

vmstat 命令的输出结果包含多个部分,每个部分都显示了不同的性能指标。

2.1 输出示例

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 128884 298660 75264 1828760 0    0     1     3    8    5  1  0 99  0  0

2.2 指标解读

| 部分 | 指标 | 说明 | |---|---|---| | procs | r | 运行队列中的进程数 | | | b | 阻塞的进程数 | | | w | 等待 I/O 的进程数 | | memory | swpd | 使用的交换分区大小 | | | free | 空闲内存大小 | | | buff | 用作缓存的内存大小 | | | cache | 用作文件缓存的内存大小 | | swap | si | 每秒从磁盘读入交换分区的大小 | | | so | 每秒写入磁盘的交换分区大小 | | io | bi | 每秒读取的块数 | | | bo | 每秒写入的块数 | | system | in | 每秒中断数 | | | cs | 每秒上下文切换数 | | cpu | us | 用户空间占用 CPU 时间的百分比 | | | sy | 内核空间占用 CPU 时间的百分比 | | | id | 空闲 CPU 时间的百分比 | | | wa | 等待 I/O 的 CPU 时间的百分比 | | | st | 被虚拟机占用的CPU时间百分比 |

三、 vmstat 命令实战

3.1 实时监控 CPU 使用率

vmstat 1

该命令会每秒输出一次系统的 CPU 使用情况,包括用户空间、内核空间、空闲以及等待 I/O 的 CPU 时间占比,方便我们实时监控 CPU 的负载情况。

3.2 分析内存使用情况

vmstat -a 2

该命令每 2 秒输出一次系统的内存使用情况,包括物理内存、缓存、交换分区等信息,可以帮助我们分析内存的使用情况,例如是否存在内存泄漏、缓存是否充足等。

3.3 排查 I/O 瓶颈

vmstat -d 5

该命令每 5 秒输出一次系统的磁盘 I/O 情况,包括每秒读取和写入的块数,可以帮助我们判断系统是否存在 I/O 瓶颈。

四、总结

vmstat 命令是 Linux 性能监控的重要工具,熟练掌握 vmstat 命令的使用方法,能够帮助我们快速诊断系统性能问题,提升系统运行效率。

Linux性能监控利器:vmstat命令详解及使用指南

原文地址: https://www.cveoy.top/t/topic/jua5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录