前言

三个命令的作用分别是:

  • vmstat: 查看系统整体运行状态(ubuntu下由procps包提供)
  • iostat: 监视系统输入输出设备和CPU的使用情况(ubuntu下由sysstat包提供)
  • pidstat: 查看系统进程信息(ubuntu下由sysstat包提供)

vmstat

  1. # 简单使用
  2. # 每秒输出一组数据
  3. vmstat 1
  4. # 输出2秒内数据,打印3次
  5. vmstat 2 3
  6. # 其它选项
  7. # -w: 输出结果显示更宽
  8. # -t: 输出结果显示时间戳

结果解释

  1. vmstat -w 2 3
  2. procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
  3. r b swpd free buff cache si so bi bo in cs us sy id wa st
  4. 1 0 0 2431504 196680 1189312 0 0 32 45 72 76 0 0 99 0 0
  5. 0 0 0 2431540 196680 1189312 0 0 0 0 175 204 0 0 100 0 0
  6. 0 0 0 2431540 196680 1189312 0 0 0 0 258 240 0 0 100 0 0
  • procs
    • r:正在运行和正在等待运行的进程数
    • b:不可中断的睡眠
  • memory
    • swpd:虚拟内存使用量
    • free:空闲内存量
    • buff:被用作buffer的内存使用量
    • cache:被用作cache的内存使用量
  • swap:
    • si:从硬盘写到swap的量
    • so:从swap写到硬盘的量
  • IO:
    • bi:
    • bo:
  • system:
    • in:每秒中断次数
    • cs:每秒上下文切换次数
  • cpu:
    • us:用户态占用时间
    • sy:内核态占用时间
    • id:空闲时间
    • wd:等待io时间
    • st:被其它虚拟机“偷走“的占用时间

iostat

命令选项

  1. -d: 输出设备利用率
  2. -c:输出CPU利用率
  3. -t:输出时间戳
  4. -x: 显示拓展统计信息
  5. -m: 显示状态以兆字节每秒
  6. # 常用命令组合
  7. iostat -d -x -m sda 2 3

结果解释

  • tps: 每秒钟发送到的I/O请求数
  • r/s: 每秒完成的读IO次数
  • rrqm/s: 每秒合并到设备队列中的读IO请求数
  • r_await: 每个读请求平均所需时间
  • rareq-sz: 发送到设备的读请求平均大小
  • %util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

pidstat

命令选项

  1. -u: 显示各个进程的cpu使用统计
  2. -r: 显示各个进程的内存使用统计
  3. -d: 显示各个进程的IO使用统计
  4. -p <pid>: 指定进程号
  5. -w: 显示进程的上下文切换情况
  6. -t: 显示线程状态
  7. # 常用命令组合
  8. pidstat -u -p ALL
  9. pidstat -p 1234

结果解释

  • minflt/s: 任务每秒发生的次要错误,不需要从磁盘中加载页
  • majflt/s: 任务每秒发生的主要错误,需要从磁盘中加载页
  • VSZ: 虚拟地址大小,虚拟内存的使用KB
  • RSS: 常驻集合大小,非交换区内存使用KB