iostat 命令用于监控系统磁盘 I/O 性能,不同的选项会使输出包含不同的列,下面分别介绍常用选项下各列数据的含义。
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.50 4.00 8.00 4000 8000
- Device:磁盘设备的名称,如
sda、sdb 等,代表不同的磁盘或磁盘分区。
- tps:每秒的 I/O 传输次数(Transactions Per Second),这里的一次传输是指一次 I/O 请求,包括读和写操作。
- kB_read/s:每秒从磁盘读取的数据量,单位是千字节(KB)。
- kB_wrtn/s:每秒写入磁盘的数据量,单位是千字节(KB)。
- kB_read:从系统启动到当前时刻,从磁盘读取的总数据量,单位是千字节(KB)。
- kB_wrtn:从系统启动到当前时刻,写入磁盘的总数据量,单位是千字节(KB)。
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 0.50 0.50 4.00 4.00 0.00 0.00 0.00 0.00 2.00 2.00 0.01 8.00 8.00 1.00 0.10
- Device:同基本输出,磁盘设备的名称。
- r/s:每秒的读操作次数,即每秒向磁盘发起的读请求数量。
- w/s:每秒的写操作次数,即每秒向磁盘发起的写请求数量。
- rkB/s:每秒从磁盘读取的数据量,单位是千字节(KB)。
- wkB/s:每秒写入磁盘的数据量,单位是千字节(KB)。
- rrqm/s:每秒进行读合并的次数。操作系统为了提高性能,会将相邻的小读请求合并成一个大读请求,该列表示每秒进行这种合并操作的次数。
- wrqm/s:每秒进行写合并的次数,原理与读合并类似,是将相邻的小写请求合并成一个大写请求。
- %rrqm:读合并操作的百分比,即
rrqm/s 占总读操作次数(r/s + rrqm/s)的比例。
- %wrqm:写合并操作的百分比,即
wrqm/s 占总写操作次数(w/s + wrqm/s)的比例。
- r_await:读操作的平均等待时间,单位是毫秒(ms)。它包括请求在队列中等待的时间和实际执行读操作的时间。
- w_await:写操作的平均等待时间,单位是毫秒(ms),含义与
r_await 类似,针对写操作。
- aqu-sz:平均请求队列长度,指的是在统计周期内,磁盘请求队列中的平均请求数量。该值越大,说明磁盘的负载越高。
- rareq-sz:平均读请求大小,单位是扇区(通常一个扇区为 512 字节),表示每次读请求平均读取的数据量。
- wareq-sz:平均写请求大小,单位是扇区,含义与
rareq-sz 类似,针对写请求。
- svctm:平均服务时间,单位是毫秒(ms),表示处理一次 I/O 请求所需的平均时间,不包括请求在队列中等待的时间。
- %util:磁盘的利用率,是磁盘忙于处理 I/O 请求的时间占统计周期总时间的百分比。该值接近 100% 表示磁盘处于繁忙状态,可能会成为系统的性能瓶颈。