根据IO性能划分云硬盘的磁盘类型,各种类型的云硬盘具体介绍如下。不同类型云硬盘的性能和价格有所不同,您可根据应用程序要求选择您所需的云硬盘。
云硬盘性能
云硬盘性能的主要指标包括:
IOPS:云硬盘每秒进行读写的操作次数。
吞吐量:云硬盘每秒成功传送的数据量,即读取和写入的数据量。
IO读写时延:云硬盘连续两次进行读写操作所需要的最小时间间隔。
不同类型云硬盘的单队列访问时延如下:
普通IO:5 ms ~ 10 ms
高IO:1 ms ~ 3 ms
通用型SSD:1 ms
超高IO:1 ms
极速型SSD:亚毫秒级
说明
- 云硬盘的性能指标除了受到其本身的规格限制,还会受到挂载实例的存储QoS限制。
- 云硬盘性能相关的最大IOPS、最大吞吐量、IOPS突发上限三个指标受所挂载的实例规格、负载情况、网络环境及数据块大小等因素影响,无服务等级协议(SLA)承诺,建议用户结合业务场景进行实测验证。
云硬盘性能数据表
| 参数 | 普通IO | 高IO | 通用型SSD | 超高IO | 极速型SSD |
|---|---|---|---|---|---|
| 每GB云硬盘的IOPS | 2 | 6 | 8 | 50 | 50 |
| 单个云硬盘的最大IOPS | 2200 | 5000 | 20000 | 50000 | 128000 |
| 单个云硬盘的基线IOPS | 500 | 1200 | 1500 | 1500 | 1800 |
| 单个云硬盘IOPS上限 | min (2200, 500 +2 × 容量) | min (5000, 1800 + 8 × 容量) | min (20000, 1800 + 12 × 容量) | min (33000, 1800 + 50 × 容量) | min (128000, 1800 + 50 × 容量) |
| 单个云硬盘的IOPS突发上限 | 2200 | 5000 | 8000 | 16000 | 64000 |
| 云硬盘吞吐量性能计算公式 | 50 MB/s | min (150, 100 + 0.15 × 容量) MB/s | min (250, 100 + 0.5 × 容量) MB/s | min (350, 120 + 0.5 × 容量) MB/s | min (1000, 120 + 0.5 × 容量) MB/s |
| 最大吞吐量 | 50 MB/s | 150 MB/s | 250 MB/s | 350 MB/s | 1000 MB/s |
API名称 说明
| SATA | SAS | GPSSD | SSD | ESSD |
| 典型应用场景 | 适用于大容量、读写速率中等、事务性处理较少的应用场景,例如企业的日常办公应用或者小型测试等。 | 一般工作负载的应用场景。 普通开发测试 | 各种主流的高性能、低延迟交互应用场景。
| 适用于超高IO,超大带宽的读写密集型应用场景,例如高性能计算应用场景,用来部署分布式文件系统,或者I/O密集型应用场景,用来部署各类NoSQL/关系型数据库。典型的数据库有MongoDB、Oracle、SQL Server、MySQL 和PostgreSQL等。 | 数据库
|
| 如果应用需要更高的IO性能,建议您选择超高IO或高IO云硬盘。 | |||||
| 单队列访问时延 | 5 ms ~ 10 ms | 1 ms ~ 3 ms | 1 ms | 1 ms | 亚毫秒级 |
说明
a:最大IOPS、最大吞吐量、IOPS突发上限三个参数的值均为读写总和。比如最大IOPS=IOPS读+IOPS写。
b:以单块超高IO云硬盘吞吐量性能计算公式为例说明:起步120 MiB/s,每GiB增加0.5 MiB/s,上限为350 MiB/s。
c:以单块超高IO云硬盘IOPS性能计算公式为例说明:起步1800,每GiB增加50,上限为50000。
d:单队列指队列深度为1,即并发度为1。单队列访问时延是所有IO请求串行处理时IO的时延,表格中数据是4KiB数据块能达到的时延。
e:API名称代表云硬盘API接口中“volume_type”参数的取值,不代表底层存储设备的硬件类型。
f:高IO(专属分布式存储高IO除外)云硬盘由普通硬盘(HDD)提供支持,适合一般工作负载的应用场景,提供的性能中,基准吞吐量为每TiB 40MiB/s,最大吞吐量为每块云硬盘150MiB/s;对于负载较高的应用,建议使用更高规格的云硬盘,它们由固态硬盘(SSD)提供支持。
云硬盘的性能与数据块大小密切相关:
同一数据块大小,当最大IOPS或最大吞吐量中有一项指标达到最大值时,此时云硬盘性能达到最大,另一项指标无法再继续上升。
不同数据块大小,云硬盘性能达到最大的指标可能不同。
对于小数据块,例如4KiB和8KiB,性能可达到最大IOPS。
对于≥ 16 KiB的大数据块,性能可达到最大吞吐量。
云硬盘IOPS上限计算方法
云硬盘IOPS上限计算方法为:取“单个云硬盘的最大IOPS”与“单个云硬盘的基线IOPS + 每GB云硬盘的IOPS × 云硬盘容量”的最小值。
以超高IO云硬盘为例,单个超高IO云硬盘的最大IOPS为33000。
假如云硬盘容量为100 GB,则该云硬盘IOPS上限 = min (33000, 1500 + 50 × 100 ),取33000与6500中的最小值,即该云硬盘IOPS上限为6500。
假如云硬盘容量为1000 GB,则该云硬盘IOPS上限 = min (33000, 1500 + 50 × 1000 ),取33000与51500中的最小值,即该云硬盘IOPS上限为33000。
云硬盘突发能力及原理
突发能力是指小容量云硬盘可以在一定时间内达到IOPS突发上限,超过IOPS上限的能力。
突发能力适用于云主机启动场景,一般系统盘容量较小,以50 GB的超高IO云硬盘为例,如果没有突发能力,云硬盘IOPS上限只能达到4000(1500 + 50 × 50),但使用突发能力后,IOPS可高达16000,从而提升云主机的启动速度。
以超高IO云硬盘为例,单个超高IO云硬盘的IOPS突发上限为16000。
容量为100 GB的云硬盘,其IOPS上限为6500,IOPS突发上限为16000,因此在一定时间内该云硬盘的最大IOPS可达到16000。
容量为1000 GB的云硬盘,其IOPS上限为33000,但是IOPS突发上限仅为16000,云硬盘的IOPS上限已经超过了突发IOPS,因此该云硬盘无需突发能力。
以下介绍云硬盘突发IOPS的消耗原理和储蓄原理。
突发的实现基于令牌桶,令牌桶中的初始令牌数量 = 突发时间 × IOPS突发上限,此处突发时间固定为1800 s。
以100 GB的超高IO云硬盘为例,令牌桶容量为28800000个令牌(1800 s × 16000 )。
令牌的生成速度:该桶以6500个/s的速度生成令牌,其中6500为该云硬盘的IOPS上限。
令牌的消耗速度:根据实际IO使用情况而定,每个IO会消耗一个令牌,最大消耗速度为16000个/s,此处取突发IOPS上限和云硬盘IOPS上限的较大值。
消耗原理
当令牌消耗速度大于令牌的生成速度时,令牌数量会逐渐减少,最后IOPS会维持跟桶生成令牌的速度一致,即云硬盘的IOPS上限。本示例中,可以维持突发IOPS的时间为3032 s ≈ 28800000 / (16000 - 6500) 。
储蓄原理
当令牌的消耗速度小于令牌的生成速度时,桶中的令牌会逐渐增加,之后又可以拥有突发能力。本示例中,如果云硬盘暂停使用4431 s ≈ 28800000 / 6500,令牌桶就可以存满。
说明
- 桶中的令牌数量只要大于零,云硬盘就具有突发能力。本示例中令牌的消耗和储蓄原理如下图所示。蓝色柱状表示云硬盘IOPS的使用情况,绿色虚线为IOPS上限,红色虚线为IOPS突发上限,黑色曲线表示令牌数量的变化趋势。
- 当令牌数量大于零时,IOPS可以突破6500,即具有达到IOPS突发上限16000的能力
- 当令牌数为零时,此时不具备突发能力,IOPS最大为6500。
- 当实际IOPS小于6500时,令牌数量开始增加,可以恢复突发能力。
图 突发能力示意图
