硬盘性能指标(信心源于数据~使用FIO压测天翼云“云硬盘”性能指标)

硬盘性能指标

    经常会遇到省里反馈说数据库跑在ECS上性能不佳的情况,其中云硬盘的性能是主要的参考指标之一,衡量云硬盘性能最主要的指标有二个:

指标BW
说明 单位
IOPS 每秒读/写次数,存储设备的底层驱动类型决定了不同的 IOPS。 次/s
吞吐量,即每秒的读写数据量 MB/s

01 云硬盘性能测量工具FIO是测试磁盘性能的一个非常好的工具,用来对硬件进行压力测试和验证。建议使用libaio的I/O引擎进行测试,
02 基于ECS安装FIO在天翼云/华为云上开通1c1g的ECS,系统盘选用SATA盘,操作系统选用centos7.3。
yum install libaio-devel fio
安装成功后,会提示安装的fio的版本号。
Installed:fio.x86_64 0:3.1-2.el7libaio-devel.x86_64 0:0.3.109-13.el703 测试方法硬盘的读写方式对性能指标应很大,考察硬盘的性能,可以从以下五个场景来测试:
连续读
随机读
顺序写
随机写
混合读写
通常连续读写要比随机读写表现更好,随机读写又比混合读写表现更好。
下面分别列出了五个场景的命令行:
#连续读fio -filename=/dev/vda -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=120 -group_reporting -name=mytest#随机读fio -filename=/dev/vda -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=120 -group_reporting -name=mytest#顺序写fio -filename=/dev/vda -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=60 -group_reporting -name=mytest#随机写fio -filename=/dev/vda -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=20G -numjobs=10 -runtime=60 -group_reporting -name=mytest#混合读写fio -filename=/dev/vda -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
04 参数说明

参数direct=1rw=randwritebs=16ksize=20Gnumjobs=30runtimeioengine=psyncgroup_reporting
说明
filename=/dev/vda 挂载的硬盘设备
测试过程绕过机器自带的buffer。使测试结果更真实。
测试场景选择
单次io的块文件大小
本次的测试文件大小为5g,以每次4k的io进行测试。
测试线程数
测试时间选择,如果不选,则一直将参数szie指定大小的文件分4k每次写完为止。
io引擎使用pync方式
关于显示结果的,汇总每个进程的信息

05 天翼云性能测试结果ECS挂载盘如下:
2、数据盘1 SAS 40G vdb
选择不同的挂载盘进行测试,测试结果如下:
1、连续读SATA   IOPS=5864, BW=96.1MB/s
SAS      IOPS=10.9k, BW=179MB/s
SSD      IOPS=20.2k, BW=330MB/s
2、随机读SATA    IOPS=2209, BW=36.2MB/s
SAS      IOPS=5019, BW=82.2MB/s
SSD      IOPS=16.0k, BW=263MB/s
3、顺序写SATA    IOPS=5818, BW=95.3MB/s
SAS      IOPS=9992, BW=164MB/s
SSD      IOPS=19.5k, BW=319MB/s
4、随机写SATA   IOPS=2228, BW=36.5MB/s
SAS      IOPS=5017, BW=82.2MB/s
SSD      IOPS=14.8k, BW=242MB/s
5、混合读写SATA
write:  IOPS=662, BW=10.9MB/s
SAS
write:  IOPS=1513, BW=24.8MB/s
SSD
write:  IOPS=4817, BW=78.9MB/s
06 测试结果解读官方给的性能参考指标如下:

参数最大吞吐量
普通 IO(SATA) 高 IO (SAS) 超高 IO(SSD)
最大 IOPS 1000 3000 20000
90MBps 150MBps 350MBps

SATA盘的最大IOPS为1000,实测在混合读写模式下,混合写的IOPS最低662,其他场景均超过了1000,在连续读的情况下,最大能达到5864.
SATA盘的吞吐量最大为90MB/S,这个指标只有在连续读和顺序写的场景下,才能达到。在混合读写的场景下,混合写的吞吐量最低,只能达到10.9MB/s。
SAS盘最大IOPS为3000,实测在混合读写的场景下,混合写的IOPS最低,只能达到1513,其他场景均接近或高于3000。
SAS盘吞吐量最大为150MBps,实测只有在连续读和顺序写的场景下,才能达到并略有超过,在混合读写的场景下,混合写的吞吐量最低,只能达到24.8MB/s.
SSD盘最大IOPS为20000,实测只有在连续读和顺序写的场景下,才能达到; 在混合读写的场景下,混合写的IOPS最低,只能达到4817,
SSD盘吞吐量最大为350MBps,实测只有在连续读的场景下,才能接近最大值,在混合读写的场景下,混合写的吞吐量最低,只能达到78.9MB/s。
综上所述,在混合读写的场景下,SSD的最低IOPS和BW均高于SATA盘数倍,SAS居中,客户根据自己的实际应用场景选择不同的硬盘类型。
另外:实测了华为云的SAS盘,性能与天翼云的接近。
作者:老刘论道
介绍:二十年IT从业经验,资深培训师/项目管理师/云计算架构师/数据库达人
单位:中国电信云计算公司

公众号:云计算那点事儿

硬盘性能指标相关文章