linuxiostat查看磁盘io利用率

Posted sysu_lluozh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linuxiostat查看磁盘io利用率相关的知识,希望对你有一定的参考价值。

一、概述

  • 作用

iostat是I/O statistics(输入/输出统计)的缩写,主要对系统的磁盘操作活动进行监视

iostat的特点是汇报磁盘活动及CPU使用情况,输出磁盘IO和CPU的统计信息

  • 劣势

iostat有一个弱点,即并不能对某个进程进行深入分析,仅对系统的整体情况进行分析

二、安装

iostat属于sysstat软件包,安装iostat的命令:

yum install -y sysstat

三、语法

iostat --h

3.1 用法

iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]

Options are:
[ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j  ID | LABEL | PATH | UUID | ...  [ <device> [...] | ALL ] ]
[ <device> [...] | ALL ] [ -p [ <device> [,...] | ALL ] ]

3.2 语法

iostat(选项)(参数)
  • 选项

-c:显示CPU使用情况
-d:显示磁盘使用情况
-N:显示磁盘阵列(LVM)信息
-n:显示NFS 使用情况
-k:以 KB 为单位显示
-m:以 M 为单位显示
-t:显示每个报告产生时的时间
-p:显示磁盘和分区的情况
-V:显示版号并退出
-x:显示扩展状态

  • 参数

间隔时间:每次报告的间隔时间(秒)
次数:显示报告的次数

四、示例

4.1 iostat


cpu属性值说明:

  • %user:CPU处在用户模式下的时间百分比
  • %nice:CPU处在带NICE值的用户模式下的时间百分比
  • %system:CPU处在系统模式下的时间百分比
  • %iowait:CPU等待输入输出完成时间的百分比
  • %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
  • %idle:CPU空闲时间百分比

备注:

  • 如果%iowait的值过高,表示硬盘存在I/O瓶颈
  • 如果%idle值高,表示CPU较空闲
  • 如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量
  • 如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU

disk属性值说明:

  • device:磁盘名称
  • tps:每秒钟发送到的I/O请求数
  • kB_read/s:每秒读取的block数
  • kB_wrtn/s:每秒写入的block数
  • kB_read:读入的block总数
  • kB_wrtn:写入的block总数

4.2 间隔刷新

iostat 1 5

间隔1秒,总共显示5次

4.3 指定磁盘信息

显示指定磁盘信息

iostat -d /dev/sda

iostat -d sda

4.4 使用率&响应时间

查看设备使用率(%util)、响应时间(await)

iostat -d -x -k 1 1

  • rrqm/s:每秒进行merge读操作的数量
  • wrqm/s:每秒进行merge写操作的数量
  • r/s:每秒完成读I/O设备的次数
  • w/s:每秒完成写I/O设备的次数
  • rkB/s:每秒读K字节数
  • wkB/s:每秒写K字节数
  • avgrq-sz:平均每次设备I/O操作的数据大小(扇区)
  • avgqu-sz:平均I/O队列长度
  • await:平均每次设备I/O操作的等待时间(毫秒)
  • r_await:每个读操作平均所需的时间
    不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间。
  • w_await:每个写操作平均所需的时间
    不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间
  • svctm: 平均每次设备I/O操作的服务时间(毫秒)
  • %util:一秒中有百分之多少的时间用于I/O操作

备注:

  • 如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈
  • 如果idle小于70%时,IO压力就较大,一般读取速度有较多的wait

4.5 查看cpu状态

查看cpu状态,间隔1秒显示一次,总共显示2次

iostat -c 1 2

以上是关于linuxiostat查看磁盘io利用率的主要内容,如果未能解决你的问题,请参考以下文章

linux 查看CPU内存 网络 流量 磁盘 IO

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

linux查看磁盘io的几种方法

JDB2导致磁盘io使用率高

怎么查看linux的哪个进程占用磁盘io较多