信心源于数据~使用FIO压测华为云“云硬盘”性能指标

举报
云计算那些事儿 发表于 2019/07/13 09:48:45 2019/07/13
【摘要】 经常会遇到客户反馈说数据库跑在ECS上性能不佳的情况,其中云硬盘的性能是主要的参考指标之一,衡量云硬盘性能最主要的指标有二个:下载印象笔记经常会遇到客户反馈说数据库跑在ECS上性能不佳的情况,其中云硬盘的性能是主要的参考指标之一,衡量云硬盘性能最主要的指标有二个:经常会遇到客户反馈说数据库跑在ECS上性能不佳的情况,其中云硬盘的性能是主要的参考指标之一,衡量云硬盘性能最主要的指标有二个:指标...


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


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

01 云硬盘性能测量工具

FIO是测试磁盘性能的一个非常好的工具,用来对硬件进行压力测试和验证。建议使用libaio的I/O引擎进行测试,

02 基于ECS安装FIO

在华为云上开通1c1g的ECS,系统盘选用SATA盘,操作系统选用centos7.3。
直接采用yum方式安装,

yum install libaio-devel fio

安装成功后,会提示安装的fio的版本号。

Installed:
  fio.x86_64 0:3.1-2.el7          
  libaio-devel.x86_64 0:0.3.109-13.el7

03 测试方法

硬盘的读写方式对性能指标应很大,考察硬盘的性能,可以从以下五个场景来测试:

  1. 连续读

  2. 随机读

  3. 顺序写

  4. 随机写

  5. 混合读写

通常连续读写要比随机读写表现更好,随机读写又比混合读写表现更好。

下面分别列出了五个场景的命令行:

连续读

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/vdb -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/vdb -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 参数说明

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

05 华为云性能测试结果

ECS挂载盘如下:
1、系统盘0 SATA 40G vda
2、数据盘1 SAS 40G vdb
3、数据盘2 SAS 40G vdc

选择不同的挂载盘进行测试,测试结果如下:

连续读

SATA
IOPS=5864, BW=96.1MB/s
SAS
IOPS=10.9k, BW=179MB/s
SSD
IOPS=20.2k, BW=330MB/s

随机读

SATA
IOPS=2209, BW=36.2MB/s
SAS
IOPS=5019, BW=82.2MB/s
SSD
IOPS=16.0k, BW=263MB/s
IOPS=16.1k, BW=264MB/s (第二次)

顺序写

SATA
IOPS=5818, BW=95.3MB/s
SAS
IOPS=9992, BW=164MB/s
SSD
IOPS=19.5k, BW=319MB/s

随机写

SATA
IOPS=2228, BW=36.5MB/s
SAS
IOPS=5017, BW=82.2MB/s
SSD
IOPS=14.8k, BW=242MB/s

混合读写

SATA
read: IOPS=1545, BW=25.3MB/s
write: IOPS=662, BW=10.9MB/s

SAS
read: IOPS=3526, BW=57.8MB/s
write: IOPS=1513, BW=24.8MB/s

SSD
read: IOPS=11.2k, BW=184MB/s
write: IOPS=4817, BW=78.9MB/s

read: IOPS=11.2k, BW=184MB/s
write: IOPS=4810, BW=78.8MB/s

06 测试结果解读

官方给的性能参考指标如下:

参数普通 IO(SATA)高 IO (SAS)超高 IO(SSD)
最大 IOPS1000300020000
最大吞吐量90MBps150MBps350MBps
  1. SATA盘的最大IOPS为1000,实测在混合读写模式下,混合写的IOPS最低662,其他场景均超过了1000,在连续读的情况下,最大能达到5864.

  2. SATA盘的吞吐量最大为90MB/S,这个指标只有在连续读和顺序写的场景下,才能达到。在混合读写的场景下,混合写的吞吐量最低,只能达到10.9MB/s。

  3. SAS盘最大IOPS为3000,实测在混合读写的场景下,混合写的IOPS最低,只能达到1513,其他场景均接近或高于3000。

  4. SAS盘吞吐量最大为150MBps,实测只有在连续读和顺序写的场景下,才能达到并略有超过,在混合读写的场景下,混合写的吞吐量最低,只能达到24.8MB/s.

  5. SSD盘最大IOPS为20000,实测只有在连续读和顺序写的场景下,才能达到; 在混合读写的场景下,混合写的IOPS最低,只能达到4817,

  6. SSD盘吞吐量最大为350MBps,实测只有在连续读的场景下,才能接近最大值,在混合读写的场景下,混合写的吞吐量最低,只能达到78.9MB/s。

综上所述,在混合读写的场景下,SSD的最低iops和bw均高于SATA盘数倍,SAS居中,客户根据自己的实际应用场景选择不同的硬盘类型。

SAS
50f8262a0a3ff70dd2cf000969f0a06f-142271

SSD
22f10abdc63622e1712d95c6776ac050-114972

保存到我的笔记

举报


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。