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

vmstat指令介绍

文章目录

    • 1. 功能介绍
    • 2. 语法介绍
    • 3. 应用场景
    • 4. 示例分析

1. 功能介绍

vmstat (virtual memory statistics) 指令可以用来分析进程、内存、交换页、IO块以及CPU的使用情况。

可以使用 man 手册 进行查看大致介绍信息:

-sh-4.4$ man vmstat
# 会显示如下:
NAME
vmstat - 报 告 虚 拟 内 存 的 统 计 信 息总 览
vmstat [-n] [延 时 [次 数 ]]
vmstat [-V]描 述
vmstat 对 系 统 的 进 程 情 况 、 内 存 使 用 情 况 、 交 换 页 和 I/O 块 使 用 情 况 、 中 断 以 及 CPU 使 用 情 况 进 行 统 计 并 报 告 相 应 的 信 息 。 第 一 个 显 示 内 容 指 出 了 计 算 机 自 上 次 重 启 至 今 的 平 均 使 用 情 况 。 后 面 的 每 一 行 信 息 是 按 延 时 定 期 地 显 示 系 统 的 各 部 分 信 息 。 进 程 信 息 和 内 存 信 息 都 是 即 时 产 生 的 。 选 项
-n 开 关 令 第 一 次 的 信 息 只 显 示 一 次 而 不 是 周 期 地 产 生 。 延 时 是 以 秒 为 单 位 的 刷 新 时 间 间 隔 。 如 果 没 有 给 出 此 延 时 时 间 , 则 仅 显 示 系 统 启 动 至 今 的 平 均 值 。 次 数 指 的 是 更 新 的 次 数 。 如 果 没 有 指 定 此 数 而 又 定 义 了 延 时 时 间 , 则 次 数 的 默 认 值 是 无 穷 次 。-V 开 关 可 以 用 来 输 出 该 命 令 的 版 本 信 息 。输 出 信 息 简 介
Procs
r: 等 待 运 行 的 进 程 数
b: 处 在 非 中 断 睡 眠 状 态 的 进 程 数
w: 被 交 换 出 去 的 可 运 行 的 进 程 数 。 此 数 由
linux 计 算 得 出 , 但 linux 并 不 耗 尽 交 换 空 间Memory
swpd: 虚 拟 内 存 使 用 情 况 , 单 位 : KB
free: 空 闲 的 内 存 , 单 位 KB
buff: 被 用 来 做 为 缓 存 的 内 存 数 , 单 位 : KBSwap
si: 从 磁 盘 交 换 到 内 存 的 交 换 页 数 量 , 单 位 : KB/秒
so: 从 内 存 交 换 到 磁 盘 的 交 换 页 数 量 , 单 位 : KB/秒IO
bi: 发 送 到 块 设 备 的 块 数 , 单 位 : 块 /秒
bo: 从 块 设 备 接 收 到 的 块 数 , 单 位 : 块 /秒System
in: 每 秒 的 中 断 数 , 包 括 时 钟 中 断
cs: 每 秒 的 环 境 ( 上 下 文 ) 切 换 次 数CPU 按 CPU 的 总 使 用 百 分 比 来 显 示
us: CPU 使 用 时 间
sy: CPU 系 统 使 用 时 间
id: 闲 置 时 间

ps: 😀最近发现一个可以中文man手册网址,分享给大家: [中文man手册](Linux Manpages Online - man.cx manual pages)

  • 资源监控维度
    1. 内存:物理内存(memory)、虚拟内存(Swap)的使用情况,包括空闲内存(free)、缓存(cache)、缓冲区(buff)等。
    2. 进程:运行队列中的进程数(r)、等待 I/O 的进程数(b)。
    3. CPU:用户态(us)、内核态(sy)、空闲(id)、I/O 等待(wa)的时间占比。
    4. 磁盘 I/O:每秒读写块数(bi/bo)及 Swap 交换速率(si/so)。
    5. 系统中断:每秒中断次数(in)和上下文切换次数(cs)。

2. 语法介绍

  • 使用方法,参见man手册或者help信息:
root@root:/data$ ./vmstat --helpUsage:vmstat [options] [delay [count]]# delay:刷新周期
# count: 刷新次数
  • 选项介绍
选项功能描述示例命令
-a显示活跃(active)与非活跃(inact)内存状态vmstat -a
-d输出磁盘 I/O 统计(读写速率、操作次数)vmstat -d
-s以表格形式汇总内存使用历史数据(如总内存、交换分区使用量)vmstat -s
-m显示 Slab 内存分配器的详细信息(内核对象缓存)vmstat -m
-p监控指定磁盘分区的 I/O 活动(需指定设备名如 /dev/sda1vmstat -p /dev/sda1
-S M指定内存单位(K=KB, M=MB),便于直观查看数据vmstat -S M
-t在输出中添加时间戳,便于记录监控时间点vmstat -t

3. 应用场景

  • CPU 瓶颈分析

    • 高负载:若 r(运行队列进程数)持续大于 CPU 逻辑核心数,说明 CPU 资源不足。

    • 用户态/内核态压力:us 或 sy 长期超过 50%,需优化程序或排查内核调用。

    • I/O 等待:wa 值高(如 >20%)表明磁盘或网络 I/O 成为瓶颈。

      vmstat 2  # 每2秒刷新一次,观察CPU列变化
      

  • 内存不足排查

    • Swap 频繁交换:si(换入)和 so(换出)持续**非零**,说明物理内存不足。

    • 缓存/缓冲异常:cache 骤降可能触发磁盘频繁读,需检查内存泄漏。

      vmstat -s  # 查看内存历史使用汇总
      
  • 磁盘 I/O 性能监控

    • 高读写压力:bi(读块数)和 bo(写块数)持续高位,需优化存储或升级硬件。

    • 磁盘分区瓶颈:结合 -d 或 -p 定位具体磁盘的负载。

      vmstat -d 2 5  # 监控磁盘,每2秒输出,共5次
      

小技巧:

与 iostat 联动分析磁盘性能,或 top 定位高负载进程。

使用 watch vmstat 1 动态刷新数据

4. 示例分析

vmstat 1 3  # 每秒刷新,共3次
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  0      0 123456  10240 256000    0    0    10     5   50  120 10  5 85  0  01  0      0 122000  10240 256100    0    0     0     0  200  300 15 10 75  0  03  1      0 120000  10240 256200    0    0   500   200  300  500 20 15 65  0  0
  • CPU 分析:第三次采样时,us(用户态)达 20%,sy(内核态)15%,id(空闲)65%,表明 CPU 负载较高但未饱和。
  • I/O 分析:第三次 bi(读块数)突增至 500,可能触发磁盘高负载,需结合 wa 确认是否存在等待。
  • 进程队列:r 值偶尔超过 CPU 核心数,需长期监控判断是否需扩容
http://www.xdnf.cn/news/1218.html

相关文章:

  • 自动化测试实现容器化部署
  • C#内存管理深度解析:值类型与引用类型全解析
  • Linux命令-pidstat
  • Python简介与入门
  • 使用若依二次开发商城系统-4:商品属性
  • 无价值的劳动与暴力威胁是否会导致人性逆转?-来自DeepSeek
  • WP快主题
  • 激光SLAM算法综述
  • 滚动的足球-第16届蓝桥第4次STEMA测评Scratch真题第3题
  • Android Studio调试中的坑二
  • C++与C
  • 1.微服务拆分与通信模式
  • NLP高频面试题(五十一)——LSTM详解
  • 【机器学习】决策树算法中的 “黄金指标”:基尼系数深度剖析
  • MCP Server架构设计详解:一文掌握框架核心
  • PowerBi中REMOVEFILTERS怎么使用?
  • 虚无隧穿产生宇宙(true nothing tunneling) 是谁提出的
  • 【Spring Boot】MyBatis多表查询的操作:注解和XML实现SQL语句
  • 权限管理降维打击:AI自动生成分布式系统鉴权代码(含JWT刷新策略)
  • 如何通过证书认证安全登录堡垒机、防火墙和VPN?安当KSP密钥管理系统助力企业实现零信任身份验证
  • 【中级软件设计师】程序设计语言基础成分
  • 3.1.2 materialDesign:Card 的使用介绍
  • VUE篇之,实现锚点定位,滚动与导航联动
  • 黑盒测试——等价类划分法实验
  • 虚拟机超详细Ubuntu安装教程
  • 测试基础笔记第九天
  • Idea创建项目的搭建
  • Git入门
  • 从 0 到 1 打通 AI 工作流:Dify+Zapier 实现工具自动化调用实战
  • 进阶篇 第 3 篇:经典永不落幕 - ARIMA 模型详解与实践