常用I/O性能分析工具
- iostat:可以汇报所有在线磁盘的统计信息。
例如:
# 详细显示磁盘信息,以KB为单位显示,以100秒为周期统计(命令本身不会主动停止,需要执行Ctrl+C手动停止)
iostat -d -k -x 100
# 详细显示磁盘信息,以KB为单位显示,以1秒为周期统计,总共统计100s
iostat -d -k -x 1 100
在命令的输出信息中,各字段所代表的含义如下:
字段 | 含义 |
---|---|
Device | 监测设备名称。 |
r/s | 设备每秒完成的读取请求数(合并后)。 |
rKB/s | 每秒从磁盘读取KB数。 |
rrqm/s | 每秒合并放入请求队列的读操作数。 |
%rrqm | 读取请求在发送到设备之前合并在一起的百分比。 |
r_await | 每个读请求耗费的平均时间。 |
rareq-sz | 向设备发出的读取请求的平均大小(以KB为单位)。 |
w/s | 设备每秒完成的写入请求数(合并后)。 |
wKB/s | 每秒写入磁盘KB数。 |
wrqm/s | 每秒合并放入请求队列的写操作数。 |
%wrqm | 写入请求在发送到设备之前合并在一起的百分比。 |
w_await | 每个写请求耗费的平均时间。 |
wareq-sz | 向设备发出的写入请求的平均大小(以KB为单位)。 |
d/s | 设备每秒完成的丢弃请求数。 |
dKB/s | 每秒为设备丢弃的扇区(KB)数。 |
drqm/s | 每秒合并到设备排队的丢弃请求数。 |
%drqm | 丢弃请求在发送到设备之前合并在一起的百分比。 |
d_await | 向要服务的设备发出丢弃请求的平均时间。 |
dareq-sz | 向设备发出的丢弃请求的平均大小(以KB为单位)。 |
f/s | 设备每秒完成的刷新请求数(合并后)。 |
f_await | 向要服务的设备发出的刷新请求的平均时间。 |
aqu-sz | 向设备发出的请求的平均队列长度。 |
%util | 用于I/O操作时间的百分比,即使用率。 |
- sar:可用于查看系统磁盘的读写性能。
例如:
# 显示系统所有硬盘设备在采样时间内的使用状态,每3秒统计一次,统计5次
sar -d 3 5
在命令的输出信息中,各字段所代表的含义如下:
标识 | 含义 |
---|---|
tps | 每秒向物理设备发出的传输总数。 |
rKB/s | 每秒从设备读取的KB数。 |
wKB/s | 每秒写入设备的KB数。 |
dKB/s | 设备每秒丢弃的KB数。 |
areq-sz | 向设备发出的I/O请求的平均大小(KB)。 |
aqu-sz | 向设备发出的请求的平均队列长度。 |
await | 向要服务的设备发出的I/O请求的平均时间。 |
%util | 向设备发出I/O请求的已用时间百分比(设备的带宽利用率)。 |
- vmstat
# 使用vmstat进行监测,报告磁盘相关统计信息
vmstat -d
在命令的输出信息中,各字段所代表的含义如下:
字段 | 含义 |
---|---|
reads | -total:已成功完成的读取总数。-merged:分组读取(导致一次I/O)。-sectors:扇区读取成功。-ms:读取花费的毫秒数。 |
writes | -total:已成功完成的写入总数。-merged:分组写入(导致一次I/O)。-sectors:写入成功的扇区。-ms:写入所花费的毫秒数。 |
IO | 磁盘读/写信息字段。-bi:从块设备中读入的数据的总量,单位是块。-bo:写到块设备的数据的总量,单位是块。 |