本文描述了块存储性能的重要指标、不同块存储类型的性能、性能测试方式和结果解读。
衡量指标
衡量块存储产品的性能指标主要包括:IOPS、吞吐量和访问时延。
IOPSIOPS是Input/Output Operations per Second,即每秒能处理的I/O个数,用于表示块存储处理读写(输出/输入)的能力。如果要部署事务密集型应用,典型场景比如数据库类业务应用,需要关注IOPS性能。
最普遍的IOPS性能指标是顺序操作和随机操作,如下表所示。
IOPS性能指标 | 描述 | |
---|---|---|
总 IOPS | 每秒执行的I/O操作总次数。 | |
随机读IOPS | 每秒执行的随机读I/O操作的平均次数 | 对硬盘存储位置的不连续访问。 |
随机写IOPS | 每秒执行的随机写I/O操作的平均次数 | |
顺序读IOPS | 每秒执行的顺序读I/O操作的平均次数 | 对硬盘存储位置的连续访问。 |
顺序写IOPS | 每秒执行的顺序写I/O操作的平均次数 |
吞吐量
吞吐量是指单位时间内可以成功传输的数据数量。
如果要部署大量顺序读写的应用,典型场景比如Hadoop离线计算型业务,需要关注吞吐量。
访问时延是指块存储处理一个I/O需要的时间。
如果您的应用对时延比较敏感,比如数据库(过高的时延会导致应用性能下降或报错),建议您使用ESSD云盘、SSD云盘、SSD共享块存储或本地SSD盘类产品。
如果您的应用更偏重存储吞吐能力,对时延相对不太敏感,比如Hadoop离线计算等吞吐密集型应用,建议您使用本地HDD盘类产品,如d1或d1ne大数据型实例。
性能
以下是不同块存储产品的性能对比表。
云盘性能四种云盘的性能对比如下表所示。
参数 | ESSD云盘 | SSD云盘 | 高效云盘 | 普通云盘 |
单盘最大容量 | 32768 GiB | 32768 GiB | 32768 GiB | 2000 GiB |
最大IOPS | 1000000 | 25000* | 5000 | 数百 |
最大吞吐量 | 4000 MBps | 300 MBps* | 140 MBps | 30−40 MBps |
单盘性能计算公式** | IOPS = min{1800 + 50 * 容量, 1000000} | IOPS = min{1800 + 30 * 容量, 25000} | IOPS = min{1800 + 8 * 容量, 5000} | 无 |
吞吐量 = min{120 + 0.5 * 容量, 4000} MBps | 吞吐量 = min{120 + 0.5 * 容量, 300} MBps | 吞吐量 = min{100+ 0.15 * 容量, 140} MBps | 无 | |
数据可靠性 | 100.00% | 100.00% | 100.00% | 100.00% |
API名称 | cloud_essd | cloud_ssd | cloud_efficiency | cloud |
典型应用场景 | OLTP数据库:如MySQL、PostgreSQL、Oracle、SQL Server等关系型数据库 | PostgreSQL、MySQL、Oracle、SQL Server等中大型关系数据库应用 | MySQL、SQL Server、PostgreSQL等中小型关系数据库应用 | 数据不被经常访问或者低I/O负载的应用场景(如果应用需要更高的I/O性能,建议使用SSD云盘) |
NoSQL数据库:如MongoDB、HBase、Cassandra等非关系型数据库 | 对数据可靠性要求高的中大型开发测试环境 | 对数据可靠性要求高、中度性能要求的中大型开发测试应用 | 需要低成本并且有随机读写I/O的应用环境 | |
ElasticSearch分布式日志:ELK(Elasticsearch、Logstash和Kibana)日志分析等 |
* SSD云盘的性能因数据块大小而异,数据块越小,吞吐量越小,IOPS越高,如下表所示。只有挂载到I/O优化的实例时,SSD云盘才能获得期望的IOPS性能。挂载到非I/O优化的实例时,SSD云盘无法获得期望的IOPS性能。
数据块大小 | IOPS最大值 | 吞吐量 |
---|---|---|
4 KiB | 约25000 | 很小,远低于300 MBps |
16 KiB | 约17200 | 将近300 MBps |
32 KiB | 约9600 | |
64 KiB | 约4800 |
** 单盘性能计算公式说明:
- 以单块SSD云盘最大IOPS计算公式为例说明:起步1800 IOPS,每GiB增加30 IOPS,最高25000 IOPS。
- 以单块SSD云盘最大吞吐量计算公式为例说明:起步120 MBps,每GiB增加0.5 MBps,上限为 300 MBps的吞吐量。
不同云盘的单路随机写访问时延如下:
- ESSD云盘:0.1−0.2 ms
- SSD云盘:0.5−2 ms
- 高效云盘:1−3 ms
- 普通云盘:5−10 ms
共享块存储性能
2种共享块存储的性能对比如下表所示。
参数 | SSD共享块存储 | 高效共享块存储 |
---|---|---|
最大容量 |
|
|
最大随机读写IOPS* | 30000 | 5000 |
最大顺序读写吞吐量* | 512 MBps | 160 MBps |
单盘性能计算公式** | IOPS = min{1600 + 40 * 容量, 30000} | IOPS = min{1000 + 6 * 容量, 5000} |
吞吐量 = min{100 + 0.5 * 容量, 512} MBps | 吞吐量 = min{50 + 0.15 * 容量, 160} MBps | |
典型应用场景 |
|
|
* 最大IOPS和吞吐量是在2个或2个以上实例同时压测裸设备能达到的性能数值。
** 单盘性能计算公式说明:
- 以单块SSD共享块存储最大IOPS计算公式为例:起步1600 IOPS,每GiB增加40 IOPS,最高30000 IOPS。
- 以单块SSD共享块存储最大吞吐量计算公式为例:起步100 MBps,每GiB增加0.5 MBps,上限为512 MBps的吞吐量。
不同共享块存储的单路访问时延如下:
- SSD共享块存储:0.5−2 ms
- 高效共享块存储:1−3 ms
- 综上所述我们能看出来SSD云盘更好一些!