1. 简介
iostat用于监控统计系统输入输出设备和CPU的使用情况,英文I/O statistics的缩写。iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
iostat属于软件包,所以使用前需要先安装sysstat。
2. 语法
iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ]
iostat [参数] [间隔时间] [报告次数]
间隔时间:每次报告的间隔时间(秒)
报告次数:显示报告的次数
3. 常用参数
- -c 显示cpu使用情况
- -d 显示磁盘使用情况
- -k 以kb为单位
- -m 以mb为单位
- -N 显示磁盘阵列(LVM)信息
- -n 显示NFS使用情况
- -p 显示磁盘和分区的情况
- -t 显示中断和cpu的信息
- -x 显示详细信息
- -v 显示版本信息
更多参数和说明,可用man iostat查看
4. 常见用法
iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盘读写速度单位为KB)
iostat -d -m 2 #查看TPS和吞吐量信息(磁盘读写速度单位为MB)
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10 #查看cpu状态
iostat -d -k 2
参数-d 表示磁盘使用状态,-k表示以KB为单位显示IO,2表示数据显示间隔2秒刷新一次。
iostat -d -k 2
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.00 0.00 0.00 0 0
sdh 27.00 0.00 21528.00 0 21528
sdi 94.00 2008.00 54312.00 2008 54312
sdj 67.00 1068.00 18472.00 1068 18472
输出信息的含义:
tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device),一次传输就是一次IO请求,多个逻辑请求可能会被合并成为一次IO请求。一次传输的大小是未知的。
kB_read/s:每秒读取的数据量
kB_wrtn/s:每秒写入的数据量
kB_read:总读取数量
kB_wrtn:总写入数量
指定磁盘名称为sdi和sdj,该命名与上面的的区别是仅是监控指定的硬盘
iostat -d sdi sdj -k 2
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sdi 9.54 232.29 3557.56 142644268 2184645536
sdj 9.42 230.36 3530.45 141459108 2167998556
-x 参数用于显示详细信息,显示和IO相关的扩展数据
iostat -d -x -k 1
iostat -d -x -k 1
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.18 0.64 2.12 1.78 36.16 27.43 0.01 2.47 0.24 3.15 0.56 0.16
sdh 0.04 0.02 5.16 4.33 232.57 3510.83 788.66 0.35 37.13 8.74 70.98 12.50 11.87
sdi 0.04 0.02 5.15 4.39 232.31 3556.81 794.25 0.36 37.23 8.95 70.46 12.39 11.82
sdj 0.04 0.02 5.07 4.35 230.38 3529.71 798.19 0.36 37.81 9.83 70.42 12.52 11.79
Device | 监测设备名称 |
rrqm/s | 每秒需要读取需求的数量 |
wrqm/s | 每秒需要写入需求的数量 |
r/s | 每秒实际读取需求的数量 |
w/s | 每秒实际写入需求的数量 |
rkB/s | 每秒实际读取的大小,单位为 KB |
wkB/s | 每秒实际写入的大小,单位为 KB |
avgrq-sz | 需求的平均大小区段 |
avgqu-sz | 需求的平均队列长度 |
await | 等待 I/O 平均的时间(milliseconds) |
r_await | 等待读 I/O 平均的时间(milliseconds) |
w_await | 等待写 I/O 平均的时间(milliseconds) |
svctm | I/O 需求完成的平均时间 |
%util | 被 I/O 需求消耗的 CPU 百分比 |
-c 参数
iostat 还可以用来监控cpu部分状态
iostat -c
avg-cpu: %user %nice %system %iowait %steal %idle
0.41 0.00 0.99 2.25 0.00 96.35