跳转至

阿里云磁盘性能测试

环境配置

系统 磁盘 cpu 内存 实例类型 测试时长
rockylinux9 高效云盘 4 8 ecs.c5.xlarge 3min
rockylinux9 ESSD 4 8 ecs.c5.xlarge 3min

安装工具

dnf install fio -y

磁盘性能测试

使用fio命令对磁盘进行测试,常用测试场景:

  • 测试延迟

队列深度为1,bs设置为4k,也就是模拟单个队列读写的延迟测试

  • 吞吐

队列深度为32,bs设置为128k,测试最大能力去跑满整个磁盘带宽

  • iops

队列深度为32,bs设置为4k,要在最短的时间内多去读磁盘

小文件通常测试随机读写,大文件通常测试顺序读写。

#测试顺序读iops 
fio -name=Seq_Read_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=read -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=4k -size=10G -numjobs=1 -runtime=180 -filename=/dev/vda   
#顺序测试写iops 
fio -name=Seq_Write_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=write -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=4k -size=10G -numjobs=1 -runtime=180 -filename=/dev/vda   
#随机写iops 
fio -name=Rand_Write_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=4k -size=10G -numjobs=1 -runtime=180 -filename=/dev/vda   
#随机读iops 
fio -name=Rand_Read_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=4k -size=10G -numjobs=1 -runtime=180 -filename=/dev/vda   
#混合读写 
fio -name=Read_Write_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=randrw -rwmixread=70 -refill_buffers -norandommap -randrepeat=0 -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=180 -filename=/dev/vda   
#写吞吐量 
fio -name=Write_BandWidth_Test -group_reporting -direct=1 -iodepth=32 -rw=write -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=1024k -size=10G -numjobs=1 -runtime=180 -filename=/dev/vda   
#读吞吐量 
fio -name=Read_BandWidth_Test -group_reporting -direct=1 -iodepth=32 -rw=read -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=1024k -size=10G -numjobs=1 -runtime=180 -filename=/dev/vda

使用挂载文件夹来进行测试随机读写

#测试顺序读iops 
fio -name=Seq_Read_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=read -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=4k -size=10G -numjobs=1 -runtime=180 -directory=/data   
#顺序测试写iops 
fio -name=Seq_Write_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=write -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=4k -size=10G -numjobs=1 -runtime=180 -directory=/data   
#随机写iops 
fio -name=Rand_Write_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=4k -size=10G -numjobs=1 -runtime=180 -directory=/data    
#随机读iops 
fio -name=Rand_Read_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=4k -size=10G -numjobs=1 -runtime=180 -directory=/data    
#混合读写 
fio -name=Read_Write_IOPS_Test -group_reporting -direct=1 -iodepth=128 -rw=randrw -rwmixread=70 -refill_buffers -norandommap -randrepeat=0 -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=180 -directory=/data    
#写吞吐量 
fio -name=Write_BandWidth_Test -group_reporting -direct=1 -iodepth=32 -rw=write -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=1024k -size=10G -numjobs=1 -runtime=180 -directory=/data    
#读吞吐量 
fio -name=Read_BandWidth_Test -group_reporting -direct=1 -iodepth=32 -rw=read -ioengine=libaio -refill_buffers -norandommap -randrepeat=0 -bs=1024k -size=10G -numjobs=1 -runtime=180 -directory=/data  

结果分析

高效云盘

测试类型 IOPS-min max avg
测试顺序读iops 3260 5556 4372.60
顺序测试写iops 3398 8078 5536.50
随机写iops 2530 3162 2628.87
随机读iops 2572 3280 2629.23
混合读写 610 2358 719.51
写吞吐量 54 362 114.07
读吞吐量 110 360 114.45

ESSD

测试类型 IOPS-min max avg
测试顺序读iops 2944 9435 3019.80
顺序测试写iops 2940 9454 3019.68
随机写iops 2928 9454 3019.52
随机读iops 2954 9454 3019.83
混合读写 804 2856 906.22
写吞吐量 122 394 126.75
读吞吐量 122 390 126.72