iostat工具使用

文章目录

    • iostat命令简介
      • iostat命令参数
    • iostat输出信息
      • CPU利用率输出信息
      • 磁盘利用率输出信息
      • 更详细的磁盘利用率输出信息
    • iostat命令使用示例
      • iostat -kdx 1
    • iostat数据来源
    • 相关参考

iostat命令简介

iostat工具可用于CPU使用统计信息和设备的输入输出统计信息。iostat能支持显示的CPU使用统计信息比较简单,更广泛的用途是用于查看系统中磁盘的使用情况。
iostat工具使用_第1张图片

iostat命令参数

iostat基本命令参数如下:

-c: 显示CPU使用情况
-d: 显示磁盘使用情况
-N: 显示磁盘阵列(LVM) 信息
-n: 显示NFS 使用情况
-k: 以 KB 为单位显示
-m: 以 M 为单位显示
-t: 报告每秒向终端读取和写入的字符数和CPU的信息
-V: 显示版本信息
-x: 显示详细信息
-p:[磁盘] 显示磁盘和分区的情况

iostat输出信息

iostat支持输出的信息包括两部分:CPU利用率统计和磁盘利用率统计信息。

CPU利用率输出信息

iostat -c会输出系统CPU利用率信息如下:
在这里插入图片描述

输出字段说明:

  • %user:显示在用户级别执行时发生的CPU利用率百分比;
  • %nice:用nice显示在用户级别执行时发生的CPU利用率百分比优先事项;
  • %system:显示在系统级别(内核)执行时发生的CPU利用率百分比;
  • %iowait:显示一个或多个CPU空闲的时间百分比,在此期间系统有一个外站正在处理磁盘I/O请求;
  • %score:显示虚拟CPU在hypervisor正在为另一个虚拟处理器提供服务;
  • %idle:显示CPU空闲且系统没有外站的时间百分比正在处理磁盘I/O请求。

磁盘利用率输出信息

iostat -d会输出系统磁盘利用率信息如下:
iostat工具使用_第2张图片

输出字段说明:

  • tps:表示每秒发送到设备的传输次数;
  • Blk_read/s(kB_read/s,MB_read/s):从设备读取的数据量,以每秒块数(KB、MB)表示。块相当于扇区,通常大小为512字节。
  • Blk_wrtn/s(kB_wrtn/s,MB_wrtn/s):写入设备的数据量,以每秒块数(KB、MB)表示;
  • Blk_dcd/s(kB_dscd/s,MB_dscd/s):设备丢弃的数据量,以每秒块数(KB、MB)表示;
  • Blk_w+d/s(kB_w+d/s,MB_w+d/s):为设备写入或丢弃的数据量,以每秒块数(KB、MB)表示;
  • Blk_read(kB_read,MB_read):读取的总块数(KB、MB);
  • Blk_wrtn(kB_wrtn,MB_wrtn):写入的总块数(KB、MB);
  • Blk_dscd(kB_dscd,MB_dscd):丢弃的块总数(KB、MB);
  • Blk_w+d(kB_w+d,MB_w+d):写入或丢弃的块总数(KB、MB)。

更详细的磁盘利用率输出信息

iostat -dx会输出更为详细的系统磁盘利用率信息:
在这里插入图片描述

读请求相关字段:

  • r/s:设备每秒完成的读取请求数(合并后);
  • rsec/s(rkB/s,rMB/s):每秒从设备读取的扇区数或数据量(KB、MB);
  • rrqm/s :每秒合并到设备队列中的读取请求数;
  • %rrqm:在发送到设备之前合并在一起的读取请求的百分比;
  • r_await:向要服务的设备发出读取请求到完成的平均等待时间(MS),包括队列等待时间与服务时间;
  • rareq-sz:向设备发出的读取请求的平均大小(KB);

写请求相关字段:

  • w/s:设备每秒完成的写入请求数(合并后);
  • wsec/s(wkB/s,wMB/s):每秒写入设备的扇区数或数据量(KB、MB);
  • wrqm/s:每秒合并到设备队列中的写入请求数;
  • %wrqm:写入请求在发送到设备之前合并在一起的百分比;
  • w_await:向要服务的设备发出写入请求到完成的平均时间(MS),包括队列等待时间与服务时间;
  • wareq sz:向设备发出的写入请求的平均大小(KB);

丢弃请求相关字段:

  • d/s:设备每秒完成的丢弃请求数(合并后);
  • dsec/s(dkB/s,dMB/s):每秒为设备丢弃的扇区数(或数据量,KB、MB);
  • drqm/s:每秒合并到设备队列中的丢弃请求数;
  • %drqm:在发送到设备之前合并在一起的丢弃请求的百分比;
  • d_await:向要服务的设备发出丢弃请求到完成的平均等待时间(MS),包括队列等待时间与服务时间;
  • dareq sz:向设备发出的丢弃请求的平均大小(KB);

刷新请求相关字段:

  • f/s:设备每秒完成的刷新请求数(合并后);
  • f_await:向要服务的设备发出刷新请求的平均时间(MS);

其它类型字段:

  • sec/s(kB/s,MB/s):每个从设备读取、写入或丢弃的扇区数(或数据量,KB、MB);
  • aqu-sz:向设备发出的请求的平均队列长度。注:在以前的版本中,此字段被称为avgqu sz;
  • rqm/s:每秒合并到设备队列中的I/O请求数;
  • await:向要服务的设备发出I/O请求到完成的平均等待时间(MS),包括队列等待时间与服务时间;
  • %util:向设备发出I/O请求的运行时间百分比(带宽利用率设备的操作)。对于服务的设备,当该值接近100%时,会出现设备饱和连续请求。但对于并行服务请求的设备,如RAID阵列和现代SSD,此数字并不反映其性能限制;
  • svctm:平均每次设备I/O请求的服务时间 (ms)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长。目前该字段已被废弃。

iostat命令使用示例

iostat -kdx 1

iostat -kdx 1会每隔1s刷新显示设备的统计信息,适合用于持续观察系统磁盘的使用情况。

iostat数据来源

/proc/stat contains system statistics.
   /proc/uptime contains system uptime.
   /proc/diskstats contains disks statistics.
   /sys contains statistics for block devices.
   /proc/self/mountstats contains statistics for network filesystems.
   /dev/disk contains persistent device names.

相关参考

  • iostat命令man手册

你可能感兴趣的:(系统性能分析,linux,unix)