1.磁盘性能测试工具FIO
FIO是常见的磁盘性能测试工具,使用 FIO 时,建议配合使用 libaio 的 I/O 引擎进行测试。
一般使用以下指标衡量硬盘的性能:
IOPS:每秒读/写次数,单位为次(计数)。存储设备的底层驱动类型决定了不同的 IOPS。
吞吐量:每秒的读写数据量,单位为MB/s。
时延:I/O 操作的发送时间到接收确认所经过的时间,单位为秒。
2.测试建议与注意事项
l建议在空闲的、未保存重要数据的硬盘上进行 FIO 测试,并在测试完后重新制作被测硬盘的文件系统。
l测试硬盘性能时,建议直接测试裸数据盘(如 /dev/vdb)。
l测试文件系统性能时,推荐指定具体文件测试(如 /data/file)。
l请不要在系统盘上进行 FIO 测试,避免损坏系统重要文件。
l为避免底层文件系统元数据损坏导致数据损坏,请不要在业务数据盘上进行测试。
参数说明:
参数名 |
说明 |
取值样例 |
bs |
每次请求的块大小。取值包括4k、8k及16k等 |
4k |
ioengine |
I/O 引擎。推荐使用 Linux 的异步 I/O 引擎。 |
libaio |
direct |
指定 direct 模式。 True(1)表示指定 O_DIRECT 标识符,忽略 I/O 缓存,数据直写。 False(0)表示不指定 O_DIRECT 标识符。 默认为 True(1)。 |
1 |
rw |
读写模式。取值包括顺序读(read)、顺序写(write)、随机读 (randread)、随机写(randwrite)、混合随机读写(randrw)和混合 顺序读写(rw,readwrite)。 |
read |
time_based |
指定采用时间模式。无需设置该参数值,只要 FIO 基于时间来运行。 |
N/A |
runtime |
指定测试时长,即 FIO 运行时长 |
600 |
refill_buffers |
FIO 将在每次提交时重新填充 I/O 缓冲区。默认设置是仅在初始时填充并重 用该数据。 |
N/A |
norandommap |
在进行随机 I/O 时,FIO 将覆盖文件的每个块。若给出此参数,则将选择新 的偏移量而不查看 I/O 历史记录。 |
N/A |
randrepeat |
本随机序列是否可重复,True(1)表示随机序列可重复,False(0)表示随 机序列不可重复。默认为 True(1)。 |
0 |
group_reporting |
多个 job 并发时,打印整个 group 的统计值。 |
N/A |
name |
job 的名称。 |
fio-read |
size</ |