阿里云磁盘性能测试¶
环境配置¶
系统 | 磁盘 | 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 |