硬盘性能指标(硬盘性能指标主要有哪些)

经常会遇到客户反馈说数据库跑在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.el7libaio-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=psync

io引擎使用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)

最大 IOPS

1000

3000

20000

最大吞吐量

90MBps

150MBps

350MBps

  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

硬盘性能指标(硬盘性能指标主要有哪些)

SSD

硬盘性能指标(硬盘性能指标主要有哪些)

原创文章,作者:悟思必得,如若转载,请注明出处:https://www.jx027.com/106534.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注