# vmstat 命令

# 简介

vmstat命令用于报告虚拟内存统计信息,包括进程、内存、分页、块IO、中断和CPU活动的统计数据。

# 语法

vmstat [选项] [延时 [次数]]

# 常用选项

  • -a:显示活跃和非活跃内存
  • -f:显示从系统启动至今的fork数量
  • -m:显示内存管理器信息
  • -n:显示一次头部信息
  • -s:显示内存统计和事件计数器
  • -d:显示磁盘统计信息
  • -p:显示指定分区统计信息
  • -S:使用指定单位显示

# 输出字段说明

  1. Procs(进程)

    • r:运行队列中的进程数
    • b:等待IO的进程数
  2. Memory(内存)

    • swpd:使用的虚拟内存大小
    • free:空闲内存大小
    • buff:用作缓冲的内存大小
    • cache:用作缓存的内存大小
  3. Swap

    • si:每秒从交换区写入内存的大小
    • so:每秒写入交换区的内存大小
  4. IO

    • bi:每秒读取的块数
    • bo:每秒写入的块数
  5. System

    • in:每秒中断数
    • cs:每秒上下文切换数
  6. CPU

    • us:用户进程执行时间
    • sy:系统进程执行时间
    • id:空闲时间
    • wa:等待IO时间

# 使用示例

# 基本使用
vmstat

# 每2秒更新一次,共5次
vmstat 2 5

# 显示内存统计信息
vmstat -s

# 显示磁盘统计信息
vmstat -d

# 显示指定分区统计信息
vmstat -p /dev/sda1

# 显示活跃和非活跃内存
vmstat -a

# 最佳实践

  1. 系统监控

    • 定期检查系统状态
    • 关注异常指标变化
    • 建立基线数据
  2. 性能优化

    • 分析系统瓶颈
    • 优化内存使用
    • 调整系统参数
  3. 故障诊断

    • 收集故障时的统计数据
    • 分析性能问题原因
    • 评估系统健康状况

# 注意事项

  • 理解各项指标的含义
  • 注意数据的单位换算
  • 结合其他工具综合分析
  • 考虑系统负载变化
  • 定期备份基线数据