iostat性能分析

Posted lovelyanimal

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iostat性能分析相关的知识,希望对你有一定的参考价值。

直接运行iostat

[[email protected] ~]# iostat
Linux 3.10.0-514.26.2.el7.x86_64 (izwz9crzcri3d6dcev194kz)   01/26/2019   _x86_64_  (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.23    0.00    0.12    0.01    0.00   99.63

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.31         0.13         2.11     378581    5975072

以上输出中,包含三部分:

第一行 最上面指示系统版本、主机名和当前日期
avg-cpu 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值
Device 各磁盘设备的IO统计信息

 

 

 

 

avg-cpu中各列参数含义如下:

%user CPU在用户态执行进程的时间百分比。
%nice CPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比
%system CPU处在内核态执行进程的时间百分比
%iowait CPU用于等待I/O操作占用CPU总时间的百分比
%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比
%idle CPU空闲时间百分比

 

 

 

 

 

 

 

 

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

Device中各列参数含义如下:

Device 设备名称
tps 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。
kB_read/s  
每秒完成的读 I/O 设备次数
kB_wrtn/s 每秒完成的写 I/O 设备次数
kB_read 取样时间间隔内读扇区总数量
kB_wrtn 取样时间间隔内写扇区总数量

 

 

 

 

 

 

 

 

 

指定采样时间间隔

iostat 2 3    # 两秒采集一次,总共采集3次

指定单位显示读取信息

iostat -m    # 显示的数据单位为M

更详细的io统计信息(-x选项)

[[email protected] ~]# iostat -x
Linux 3.10.0-514.26.2.el7.x86_64 (izwz9crzcri3d6dcev194kz)      01/26/2019      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.23    0.00    0.12    0.01    0.00   99.63

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.10    0.00    0.31     0.13     2.11    14.54     0.00    3.86    7.66    3.81   0.64   0.02
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队列非空的时间比率



以上是关于iostat性能分析的主要内容,如果未能解决你的问题,请参考以下文章

性能测试分析_iostat

iostat性能分析

iostat命令

Linux的IO性能监控工具iostat详解

Linux的IO性能监控工具iostat详解

vmstat和iostat命令进行Linux性能监控