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性能分析的主要内容,如果未能解决你的问题,请参考以下文章