指令 iostat

iostat一般体系不会默许装置,需求装置sysstat才干运用,在ubuntu下sudo apt install sysstat即可。

功能

iostat用于陈述CPU以及各个设备及分区IO的计算信息

用法

# interval表明打印的距离,count表明打印的次数,如果只要interval,则无限打印下去
iostat [option] [interval] [count] 

# 每隔一秒打印一次,打印3次
# -h表明 以更容易看的方式打印,特别是屏幕宽度不够时,会自动分行打印
# -x表明打印扩展信息
iostat -xh 1 3 
# 直接用,打印一次,目标较少点
iostat

以下截图运用:iostat -xh 1 1 产生

[Linux] iostat 分析磁盘瓶颈

接下来一一介绍里面的各项目标含义,只要体系了解下各个目标,才干用好这个东西

上面的目标能够分为两类,榜首类就是cpu相关,即榜首行;第二类就是设备相关,即结尾是Device的行。

CPU目标

对于多处理器体系,CPU值是一切处理器之间的大局均匀值。且以下目标加起来和为1

  • %user: 显现在用户等级执行时出现的CPU利用率百分比(应用程序)。
  • %nice: 显现具有用户优先级的在用户等级执行时产生的CPU利用率百分比。
  • %system: 显现在体系等级(内核)执行时产生的CPU利用率百分比。
  • %iowait: 显现在体系有未完结的磁盘I/O恳求期间,CPU闲暇(等待IO,不干正活)的时刻百分比,越快的CPU这个值也会越高。可是这个目标还是需求重视
  • %steal: 显现在管理程序为另一个虚拟处理器提供服务时,一个或多个虚拟CPU在非自愿等待中花费的时刻百分比。
  • %idle: 显现CPU闲暇且体系没有未完结的磁盘I/O恳求的时刻百分比。

设备运用目标

设备陈述提供了基于每个物理设备或分区的计算信息。 能够在指令行上输入要显现其计算信息的块设备和分区。 如果未输入设备或分区,则将显现体系运用的每个设备的计算信息,并提供内核保护的计算信息。 如果在指令行上指定了ALL关键字,则将显现体系界说的每个设备的计算信息,包含从未运用过的设备。 除非设置了环境变量POSIXLY_CORRECT(在这种情况下运用512字节的块),不然默许情况下传输速率以1K块显现。 该陈述或许会显现以下字段,具体取决于运用的标志

读目标

写和扔掉目标与读差不多,了解一个就行了。

  • r/s:每秒设备完结的读取恳求数(兼并后)。这个大或许阐明许多随机IO
  • rkB/s:从设备中每秒读的kB数量
  • rrqm/s: 每秒排队到设备中的兼并读取恳求的数量
  • %rrqm: 读取恳求在发送到设备之前已兼并在一起的百分比。
  • r_await: 宣布要服务的设备的读取恳求的均匀时刻(以毫秒为单位)。 这包含行列中的恳求所花费的时刻以及为恳求服务所花费的时刻。要点重视,对于HDD,高于20ms或许就恳求太多,导致排队了,因为正常一次寻道也就10ms。
  • rareq-sz: 宣布给设备的读取恳求的均匀巨细(以千字节为单位)。

写目标

  • w/s:每秒设备完结的写入恳求数(兼并后)。
  • wkB/s:从设备中每秒写入的kB数量
  • wrqm/s: 每秒排队到设备中的兼并写入恳求的数量
  • %wrqm: 写入恳求在发送到设备之前已兼并在一起的百分比。
  • w_await: 宣布要服务的设备的写入恳求的均匀时刻(以毫秒为单位)。 这包含行列中的恳求所花费的时刻以及为恳求服务所花费的时刻。要点重视,对于HDD,高于20ms或许就恳求太多,导致排队了,因为正常一次寻道也就10ms。
  • wareq-sz: 宣布给设备的写入恳求的均匀巨细(以千字节为单位)。

扔掉目标

  • d/s:每秒设备完结的扔掉恳求数(兼并后)。
  • dkB/s:从设备中每秒扔掉的kB数量
  • drqm/s: 每秒排队到设备中的兼并扔掉恳求的数量
  • %drqm:扔掉恳求在发送到设备之前已兼并在一起的百分比。
  • d_await: 宣布要服务的设备的扔掉恳求的均匀时刻(以毫秒为单位)。 这包含行列中的恳求所花费的时刻以及为恳求服务所花费的时刻。
  • dareq-sz: 宣布给设备的扔掉恳求的均匀巨细(以千字节为单位)。

其它

aqu-sz: 宣布到设备的恳求的均匀行列长度。 注意:在曾经的版别中,此字段称为avgqu-sz。这个目标高需求要点重视,或许IO太多,需求等待 %util: 向设备宣布I/O恳求的通过时刻百分比(设备的带宽利用率)。 当串行服务恳求的设备的该值挨近100%时,将产生设备饱和。 可是对于并行处理恳求的设备(例如RAID阵列和现代SSD),此数字并不反映其性能约束。这个目标高阐明IO基本上就到瓶颈了,可是低也不一定IO就不是瓶颈。 Device :设备名

上面各项目标基本能大致判别IO出现瓶颈,然后如果体系上没有iostat指令,又来不及装置的话,也能够通过top指令大致判别:

[Linux] iostat 分析磁盘瓶颈
如果wa目标比较高的话,很或许CPU在等IO