本地磁盘I/O性能测试

注意:此文档仅为IO性能的基准值测试,由于本地磁盘为共享磁盘,其IO会有一定波动,使性能达不到文档中测试出的水准。若您希望更稳定的IO,建议您选择云盘。

硬盘性能指标

顺序读写 (吞吐量,常用单位为MB/s):文件在硬盘上存储位置是连续的。

适用场景:大文件拷贝(比如视频音乐)。速度即使很高,对数据库性能也没有参考价值。

4K随机读写 (IOPS,常用单位为次):在硬盘上随机位置读写数据,每次4KB。

适用场景:操作系统运行、软件运行、数据库。

以下是使用通用I/O测试工具“fio”,并在指定数据块大小“4K、512K”、队列深度为“128”的条件下,对“UHost标准版机型”以及“UHost高性能SSD机型”这两种机型磁盘进行的I/O基准性能测试所得出的测试数据。

测试结果

测试1. 顺序读/写512K

image

(本地普通盘与本地SSD磁盘对比)

测试2. 随机读/写 4K

image

(本地普通盘与本地SSD磁盘对比)

测试详情

工具:fio
官方网站:
<http://freecode.com/projects/fio>
<http://brick.kernel.dk/snaps/>

注意: 性能测试建议直接通过写裸盘的方式进行测试,会得到较为真实的数据。但直接测试裸盘会破坏文件系统结构,导致数据丢失,请在测试前确认磁盘中数据已备份。

块大小:4kb / 512kb

队列深度:128

fio.conf配置:

[global]
ioengine=libaio
iodepth=128
time_based
direct=1
thread=1
group_reporting
randrepeat=0
norandommap
numjobs=32
timeout=6000
runtime=120

[randread-4k]
rw=randread
bs=4k
filename=/dev/sdb   注:/dev/sdb是目标测试磁盘的设备名称
rwmixread=100
stonewall

[randwrite-4k]
rw=randwrite
bs=4k
filename=/dev/sdb
stonewall

[read-512k]
rw=read
bs=512k
filename=/dev/sdb
stonewall

[write-512k]
rw=write
bs=512k
filename=/dev/sdb
stonewall

使用方法:shell$> fio fio.conf