一、前言
Aurora Serverless是Amazon Aurora的按需自动扩展配置。Aurora Serverless v2在几分之一秒内将数据库工作负载扩展到数十万个事务。它以细粒度的增量调整容量,为应用程序的需求提供适量的数据库资源。您无需管理数据库容量,只需为应用程序消耗的资源付费。早在2018年Amazon Aurora即提供了Serverless选项。
Amazon Aurora最新提供的Aurora Serverless V2版本相比于上一代V1版本更上一层楼,重点提升部分:资源容量采用原地扩展,使资源容量扩展速度由V1分钟级提升到秒级,v2版本能够在容量调整时做到更细粒度,以0.5 ACU作为扩展单元(V1翻倍扩展),并能够依据多个维度进行容量调整,通过持续的监控和尽可能大的利用缓冲池。Aurora Serverless v2相比V1增加了完整的Amazon Aurora功能,包括多可用区支持、只读副本和全球数据库等,支持跨AZ和跨区域的高可用部署和读取扩展。
Amazon Aurora Serverless v2非常适合各种应用程序。例如,面对业务快速增长场景与海量多租户场景时,当拥有数十万个应用程序的企业,或拥有具有成百上千个数据库的多租户环境的软件即服务(SaaS)供应商,可以使用Amazon Aurora Serverless v2来管理整个SaaS应用中众多数据库的容量,同时还适用于业务吞吐量波动明显的场景,如游戏业务、电商业务、测试环境等,以及无法预估吞吐量的新业务系统。对于大部分时间都处于低谷的业务系统,Amazon Aurora Serverless v2可以有效地为客户节省成本。
作为新一代云原生无服务数据库,Aurora Serverless V2提供了无与伦比弹性伸缩性,动如脱兔;同时也提供了面向企业级应用的坚不可摧的高可用性,静若磐石。
本篇重点会围绕着Aurora Serverless V2的弹性伸缩和高可用特性,展开测试和分析,进一步向您展示Aurora Serverless V2的特点。
二、测试
2.1 扩展性测试
2.1.1 测试目标
● Aurora Serverless V2随负载变化的弹性伸缩能力
● Aurora Serverless V2与V1弹性伸缩能力比较
Aurora Serverless 资源扩展以ACU为单位,关于ACU定义:
● Aurora Capacity Unit(ACU)用于测量Aurora Serverless所分配资源容量
● 1个ACU有2 GiB的内存,同时具有相应的CPU和网络等资源,CPU、网络和内存的配比与预置Aurora实例相同
● Aurora Serverless V2启动容量可以最低设置成0.5 ACU(1 GiB内存),最高ACU支持设置为128
2.1.2 测试结果和分析
模拟负载波峰波谷,采用sysbench读写负载,基于不同线程压测10/100/50/600/10,每轮压测120秒,观测在初始20秒Aurora Serverless V2/V1资源扩展情况:
轮次 |
线程数 |
测试结果观测 (V2/V1 Min ACU:4/Max ACU:32) |
1 |
10 |
V2 随着负载启动 在第12秒开始扩展 ACU (由初始值min ACU:4 扩展至ACU:10) V1 随着负载启动 在第120秒开始扩展ACU V2:V1 ACU随负载变化 V2相比V1按需扩展速度提升10倍 V2 随着负载启动 按需扩展ACU 数据库引擎缓存池(innodb_buffer_pool_size)也随之变化 V2 随着ACU扩展 性能不断攀升 在第53秒趋于平稳 第一轮测试结束 V2 ACU扩展至10/Innodb_buffer_pool_size 扩展至10.21GB/ Max Conne |