阿里云SSD云盘性能评测–SSD云盘真的可以达到25000iops,300MB吞吐吗?
最近站长打算升级一台阿里云服务器磁盘,主要升级到SSD云盘。阿里云对SSD云盘的介绍是极限iops是25000,极限吞吐是300MB。且磁盘性能和容量成线性相关关系,计算公式如下:
- IOPS=min{1800+30*容量, 25000}
- 吞吐量=min{80+0.5*容量, 300}MBps
从以上公式可知,阿里云SSD云盘最小性能为IOPS:1800、吞吐量:80MBps;最高性能为IOPS:25000、吞吐量:300MBps。当我们磁盘容量大于774GB时,IOPS和吞吐将达到最大性能。
测试环境
主机:8核16GB IV计算型 c5
系统:Centos 7.4
测试软件:fio
磁盘:SSD云盘,容量:774GB
测试脚本
- function RunFio
- {
- numjobs=$1 # 实例中的测试线程数,如示例中的 8
- iodepth=$2 # 同时发出I/O数的上限,如示例中的 64
- bs=$3 # 单次I/O的块文件大小,如示例中的 4K
- rw=$4 # 测试时的读写策略,如示例中的 randwrite
- filename=$5 # 指定测试文件的名称,如示例中的 /dev/vdb
- nr_cpus=`cat /proc/cpuinfo |grep "processor" |wc -l`
- if [ $nr_cpus -lt $numjobs ];then
- echo "Numjobs is more than cpu cores, exit!"
- exit -1
- fi
- let nu=$numjobs+1
- cpulist=""
- for ((i=1;i<10;i++))
- do
- list=`cat /sys/block/vdb/mq/*/cpu_list | awk '{if(i<=NF) print $i;}' i="$i" | tr -d ',' | tr 'n' ','`
- if [ -z $list ];then
- break
- fi
- cpulist=${cpulist}${list}
- done
- spincpu=`echo $cpulist | cut -d ',' -f 2-${nu}`
- echo $spincpu
- fio --ioengine=libaio --runtime=30s --numjobs=${numjobs} --iodepth=${iodepth} --bs=${bs} --rw=${rw} --filename=${filename} --time_based=1 --direct=1 --name=test --group_reporting --cpus_allowed=$spincpu --cpus_allowed_policy=split
- }
- echo 2 > /sys/block/vdb/queue/rq_affinity
- sleep 5
- RunFio 8 64 '4k' 'randwrite' '/dev/vdb' #本参数测试随机写,如需测试其他性能,请自行修改参数
测试结果
- 顺序读
IOPS 吞吐量 4K 26.2K 102MiB 32K 9.72K 284MiB - 顺序写
IOPS 吞吐量 4K 22.7K 88.8MiB 32K 8.48K 265MiB - 随机读
IOPS 吞吐量 4K 25.3K 98.7MiB 32K 9.6K 300MiB - 随机写
IOPS 吞吐量 4K 19.3K 75.6MiB 32K 9.59K 300MiB
从以上简单测试结果可知,阿里云SSD云盘性能还是非常不错的,基本没有夸大的情况。如果你有IO密集型应用,建议你直接选购大容量的SSD云盘。