iostat命令
- iostat命令是用来勘查磁盘和CPU性能指标的实用工具,通常在Linux和unix系统上使用。他可以提供有关磁盘、CPU和其他I/O设备的实时性能统计信息,可以帮助识别系统瓶颈和性能问题
iostat -c
: 仅显示CPU统计信息,包括用户、系统和空闲时间等。iostat -d
: 显示硬盘统计信息,包括每个磁盘的传输速率、平均响应时间、传输队列长度等。iostat -x
: 显示更详细的硬盘统计信息,包括每个磁盘的读写百分比、平均I/O大小等。iostat -m
: 以MB为单位显示传输速率和大小。iostat -t
: 显示统计信息的时间戳。iostat -p
: 显示每个磁盘和分区的详细统计信息。iostat -y
: 显示TTY统计信息,通常用于终端设备。iostat -V
: 显示iostat
版本信息。
- 常用的参数组合:iostat -dmx 1 10
- 1和10用来控制输出间隔和输出次数
- 显示详细的硬盘统计信息,以MB为单位显示传输速率
- oswatch中记录在oswiostat文件夹中
- dm设备,如何确认具体是哪个设备
- /dev/mapper目录下ll查看对应关系
- 或者在执行iostat的时候加上-N
- 瓶颈判断
- cpu瓶颈:%idle 维持在20%以下,性能瓶颈出现在cpu层面
- 硬盘瓶颈:%iowait比较高,%idle维持在70%以上,性能瓶颈出现在硬盘层面
- 输出结果含义
Device
: 设备的名称,表示硬盘或分区的标识符rrqm/s
: 每秒钟合并的读请求数(QData下无需关注,QPlus使用zfs会涉及到IO合并的需要关注)wrqm/s
: 每秒钟合并的写请求数(QData下无需关注,QPlus使用zfs会涉及到IO合并的需要关注)r/s
: 每秒钟完成的读操作次数w/s
: 每秒钟完成的写操作次数rMB/s
: 每秒钟从磁盘读取到的数据量总和,以MB为单位wMB/s
: 每秒钟写入到磁盘上的数据量总和,以MB为单位avgrq-sz
: 平均I/O请求的大小,也叫平均扇区数- 平均每个I/O请求传输的数据块大小。较大的值表示每次I/O操作传输的数据量较多,而较小的值表示每次操作传输的数据量较少。
- 如果大多数请求的平均大小很小,可能会导致磁盘效率降低,因为磁盘需要处理更多的小请求,增加了磁头寻道的开销。
avgqu-sz
: 平均I/O请求队列长度- 在一段时间内等待处理的I/O请求的平均数量,磁盘I/O请求队列是一个缓冲区,用于存放等待被处理的读写请求。当多个应用程序或进程同时发起大量的磁盘请求时,这些请求会被放入队列中,等待磁盘处理。平均I/O请求队列长度就是这个队列中请求的平均数量。
- 较高的平均队列长度通常意味着磁盘系统正在承受较大的负载。这可能会导致磁盘性能下降,读写操作的响应时间变长。
- 当平均队列长度持续增加时,这可能表明磁盘正在成为系统的瓶颈之一。
await
: 平均I/O操作的等待时间(毫秒)- 较低的值表示操作等待的时间短,而较高的值可能意味着系统的磁盘处理存在延迟。
r_await
: 平均读操作的等待时间(毫秒)- 从提交读请求到读操作完成的平均时间
w_await
: 平均写操作的等待时间(毫秒)- 从提交写请求到写操作完成的平均时间
svctm
: 平均I/O操作的服务时间(毫秒)%util
: 设备的利用率,表示设备正忙的时间占总时间的百分比- 较高的util值表示设备正在高度使用,处于高繁忙状态。