Linux之iostat命令详解

来源:互联网 发布:程序员刚入职很闲 编辑:程序博客网 时间:2024/05/16 17:46

功能

  查看磁盘IO情况,只能查看系统整体的IO消耗,无法查看每个进程的IO消耗(iotop命令);

语法

  iostat [选项][参数]

常用选项:

  1. -k:显示状态以千字节每秒为单位,而不使用块每秒;
  2. -m:显示状态以兆字节每秒为单位;
  3. -d:显示扩展参数;

参数:

  1. 间隔时间:每次报告的间隔时间(秒);
  2. 次数:显示报告的次数;

IO详情

  rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并;
  wrqm/s: 每秒对该设备的写请求被合并次数;
  r/s: 每秒完成的读次数;
  w/s: 每秒完成的写次数;
  rkB/s: 每秒读数据量(kB为单位);
  wkB/s: 每秒写数据量(kB为单位);
  avgrq-sz:平均每次IO操作的数据量(扇区数为单位);
  avgqu-sz: 平均等待处理的IO请求队列长度;
  await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位);
  svctm: 平均每次IO请求的处理时间(毫秒为单位);
  %util: 一个周期内用于IO操作的时间比率,即IO队列非空的时间比率;

问题分析

  1. 如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈;
  2. 如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;
  3. 如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化;
  4. 如果avgqu-sz比较大,也表示有当量io在等待;

磁盘性能

  指标1: IOPS=r/s+w/s,即每秒读写次数;
  指标2: 吞吐量=rkB/s+wkB/s,即每秒读写数据量;

原创粉丝点击