PolarDB MySQL 版 Serverless全方位压测实验测评报告

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: PolarDB MySQL 版 Serverless全方位压测实验测评报告

PolarDB MySQL 版 Serverless全方位压测实验测评报告

一、测评前言

之前就一直在用polarDB,现在出了PolarDB MySQL Serverless,对我来说是相当兴奋的,这代表着我们国产的云数据库又向前迈进了一大步,我先看了一下相关的介绍,其实和原来版本变化不大,只是现在兼容了mysql8,并且把serverless融进来了,这样让用户不用太关注升降配的问题,自动调控

image.png

阿里云的PolarDB MySQL版云原生数据库,这款产品是一款完全由阿里云自主研发的数据库,百分之百兼容MySQL,提供了强大的多主多写、多活容灾和HTAP等功能,具备多项令人印象深刻的特性。首先,它的交易性能比开源数据库高出六倍,分析性能更是高达四百倍之多。这意味着它可以显著提高应用程序的速度和效率,对于那些依赖于数据库的企业而言,这款产品可以带来惊人的竞争优势。

image.png

这款产品的TCO(总持有成本)比传统自建数据库降低了五十个百分点。这意味着企业在维护成本上的投入将大幅度减少,而能获得的服务质量却远超预期。这无疑是对企业投资回报的一个巨大福音。PolarDB MySQL版还提供了良好的兼容性。它支持多种MySQL版本,包括MySQL 5.6MySQL 5.7MySQL 8.0,这对于使用旧版本或者升级到最新版本的用户而言都是非常实用的。需要强调一下PolarDB MySQL版的企业级特性,它采用了创新的云原生架构、计算存储分离、软硬件一体化的设计,为企业提供超高弹性和性能、高可用和高可靠保障。作为一个企业,您能够享受安全可靠的数据库服务,而这正是业务正常运营的基础。

image.png

详细的可以点链接进行查看云原生数据库 PolarDB-阿里云帮助中心 (aliyun.com)

一、全方位测评

点击立即试用,选择默认交换机,随机创建,把集群名称维护好我们就可以0元获取三个月的使用机会了。

image.png

选择试用,绑定好资源后输入网址https://polardb.console.aliyun.com/,这里我们可以看到瑶池数据库

image.png

在集群列表页面顶部菜单栏中,切换资源所在地域。

image.png

在集群列表页面,找到您的PolarDB实例,单击实例ID

image.png

在基本信息页面的数据库节点区域中,单击右上角的Serverless配置。

image.png

在设置Serverless配置参数对话框中,参考如下说明配置参数,单击确定。

参数说明:

单节点资源弹性上限为:32 PCU

单节点资源弹性下限为:1 PCU

只读节点个数扩展上限:0

只读节点个数扩展下限:0

是否开启无活动暂停:关闭。

定时执行:立即执行

image.png

1PCU的性能约等于12GB规格的PolarDB计算节点性能。

客户端对PolarDB发起写请求,验证主节点的Serverless智能弹性能力。通过Sysbench脚本访问集群地址进行压测,PolarDB主节点的规格能够根据负载进行自动伸缩与自动配置,达到Serverless的能力。

在我们的ecs里进行256并发读写混合压测将mysql-host参数修改为您的PolarDB实例的集群私网地址。PolarDB实例的集群私网地址如下。

image.png

根据上述信息输入如下命令模拟压测环境

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=pc-uf69e5l2iwrr4u5je.rwlb.rds.aliyuncs.com --mysql-port=3306 --mysql-user=test_user --mysql-password=Password123 --mysql-db=sbtest --tables=128 --table-size=1000000 --report-interval=1 --range_selects=1 --db-ps-mode=disable --rand-type=uniform --threads=256 --time=12000 prepare

image.png

根据Sysbench输出可以直接观察到,随着时间的推移,在同样的并发数下,tps逐渐上升,延迟(lat)逐渐下降,最终到达一个稳定值,这说明PolarDB的处理能力借助Serverless弹性获得提升。

在左侧导航栏中,单击性能监控,在监控页上,单击计算节点,选择压测的时间段。

image.png


随着主节点PCU CPU使用率的不断提升,PCU数量从1分钟内从1 PCU弹升到最大上限32 PCU

在我们的ecs里执行Ctrl+C,停止压测脚本。

image.png

当压测请求完全停止后,主节点PCU CPU使用率会立即下降,而PCU数量随后也会逐步自动缩小至1 PCU

image.png

PolarDB发起读请求,验证只读节点的Serverless智能弹性能力。PolarDB for MySQL Serverless集群除了支持主节点自动弹性伸缩之外,还支持创建只读节点分摊主节点的读请求。当使用集群地址时,PolarDB for MySQL Serverless可以基于读负载的比例,智能地调整只读节点的个数和各自的规格,来达到最佳的Serverless能力。继续使用Sysbench工具模拟真实使用场景流量。PolarDB for MySQL Serverless集群主节点PCU扩容到弹升上限后,会自动创建新的只读节点并分摊部分主节点的读负载,最终使整个集群能够支撑更高的TPS请求量。

测试场景一:读写混合压测

在基本信息页面的数据库节点区域中,单击右上角的Serverless配置。在设置Serverless配置参数对话框中,将单节点资源弹升上限调节为16,只读节点个数扩展上限从0调整为最大值7,只读节点个数扩展下限保持0不变,单击确定。

 

image.png

访问PolarDB for MySQL Serverless集群私网地址发起256并发读写混合压测请求。

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=pc-uf69e5l2iwrr4u5je.rwlb.rds.aliyuncs.com --mysql-port=3306 --mysql-user=test_user --mysql-password=Password123 --mysql-db=sbtest --tables=128 --table-size=1000000 --report-interval=1 --range_selects=1 --db-ps-mode=disable --rand-type=uniform --threads=256 --time=12000 run

Sysbench输出可以直接观察到,随着时间的推移,在同样的并发数下,tps逐渐上升,延迟(lat)逐渐下降,最终到达一个稳定值。这说明PolarDB的处理能力借助Serverless弹性获得提升。

image.png

在读写混合场景下,读写流量会首先转发到集群唯一节点,即主节点(RW)中。当主节点弹升到最大规格后,Serverless系统会逐个创建只读节点,分摊主节点的读请求,直到只读节点的数量满足当前负载。当只读节点分摊读请求后,主节点负载会降低,触发PCU弹降,为未来支持更多写负载预留了弹升空间。

 image.png

在性能监控页上,可以查看到集群维度的Serverless监控指标,选择压测的时间段可以看到分裂节点的信息,从监控可以看出,PolarDB收到读写混合请求后,主节点会首先迅速弹升到最大的32 PCU,之后监控逐步出现两个只读节点。当只读节点分摊主节点的读请求后,主节点CPU使用率逐步下降,规格最终稳定在16 PCU

第一个只读节点创建后,也会立刻弹升到32 PCU。此时系统会尝试继续创建只读节点,分摊读请求。因此当第二个只读节点创建后,第一个只读节点负载降低,规格自动弹降。最终两个只读节点的规格分别稳定

image.png

测试场景二:只读并发压测

Ecs服务器打开一个新终端,原有终端不变,继续运行,我们再发起一个256并发的只读请求

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=pc-uf69e5l2iwrr4u5je.rwlb.rds.aliyuncs.com --mysql-port=3306 --mysql-user=test_user --mysql-password=Password123 --mysql-db=sbtest --tables=128 --table-size=1000000 --report-interval=1 --range_selects=1 --db-ps-mode=disable --rand-type=uniform --threads=256 --time=12000 run

image.png

在性能监控页上,可以查看到集群维度的Serverless监控指标,选择压测的时间段可以看到分裂节点的信息,也可以在基本信息里看到分裂成三个节点

image.png

ecs上执行Ctrl+C停止所有的Sysbench脚本,然后再查看性能监控可以看到PolarDB for MySQL Serverless的计算节点首先会自动缩容(预计耗时1-2min),之后新增的只读节点会逐步回收,PolarDB for MySQL Serverless的节点数量和规格都能够根据负载进行自动伸缩与自动配置,节点也在20分钟左右全部回收。

image.png

使用mysqlsct工具验证RO的无损强一致读的特性。在Serverless默认开启SCC的状态下,PolarDB通过RO实现读扩展,且不会读到不一致的数据。在关闭SCC后,同样测试条件下,使用RO分摊读请求则无法满足强一致,为了更方便地测试RO一致性读,先调整Serverless配置,确保测试过程中,至少保留一个只读节点,在设置Serverless配置参数对话框中,将只读节点个数扩展下限从0调整为1,单击确定

image.png

ecs上输入如下命令,执行后,可以看到一致性检查全部通过

/root/mysqlsct --host-rw=pc-uf69e5l2iwrr4u5je.rwlb.rds.aliyuncs.com --host-ro=pc-uf69e5l2iwrr4u5je.rwlb.rds.aliyuncs.com --port-rw=3306 --port-ro=3306 --user=test_user --password=Password123 --iterations=100000 --table-cnt=1 --table-size=1000 -f=0 --concurrency=1 --database=sct --sc-gap-us=0 --report-interval=2 --test-mode=sct

image.png

选择参数配置。单击页面左上角的修改参数按钮,修改loose_innodb_polar_scc参数为OFF,单击提交修改,单击确定,关闭SCC特性。

image.png

image.png

 

 

返回ecs服务器,重新执行mysqlsct测试命令可以看出执行结果,一致性检查出现失败,PolarDB for MySQL Serverless借助高性能全局一致性SCC特性,提供了跨节点无损读扩展的能力。

image.png

三、测评体验

 部分压测测评视频如下可以体验观看:

在评测过程中,我对阿里云PolarDB Serverless 功能留下了深刻的印象。通过试用和亲身体验了它的各项功能后,个人认为它是一项真正的突破性技术,无论是在处理高并发工作负载还是节省成本方面都表现出了极高的效果。

眼前一亮的功能是它对资源弹性水平的支持,包括资源弹升速度、资源伸缩广度和稳定性以及资源伸缩颗粒度等等方面。例如,资源弹性上限可设定为 32 PCU,下限可设定为 1 PCU,这是一种相当灵活的选择范围。此外,发现对于只有单个主节点的情况来说,它还可以开启“无活动暂停”功能以进一步节约成本。它的资源扩展会根据需要进行自动分配和调整,并且能在极短的时间里完成资源调用过程。这些优点表明该产品的设计者们考虑到了用户可能遇到的各种复杂情况和需求,并且试图尽量减少用户的管理负担。

另外发现对于没有访问需求的情况下,计算资源可缩小到0,并且仅需10秒即可恢复,这种即时性的回应和高效的响应时间大大减少了对存储空间的需求,同时也极大地提高了工作效率,阿里云PolarDBServerless功能给我留下了深刻的印象,因为它允许我们在短短几秒钟内快速、轻松地调整资源数量和规格,这是我在其他类似服务中未曾见过的。使用时无需过多担心底层基础架构问题,使我更专注于开发和优化业务逻辑代码。此外,当我想要切换任务或等待更多请求时,它也允许我将资源最小化到零,并且在需要时迅速将其恢复。

在进行的多项实验测试中,尤其是在进行并发读写的压测时,都看到了它的良好表现。无论是进行大量并发读写混合或者只是读取操作时,都表现出了高效稳定的性能。在压测期间,其强大的自动调整和扩展能力,特别是针对读写混合工作负荷时,以及同时处理高并发请求的能力。使用这种方法可以轻松应对高峰时段,并节省大部分不必要的成本支出,因为在低峰期时,可以选择将资源减小甚至降至零。

我还喜欢该服务的高度自动化,可以自动调整只读节点的数量和每个节点的规格,来达到最佳的Serverless功能。在读写混合场景中,系统的响应时间和数据传输速度都让我感到惊讶。我还很赞赏它的强一致性功能,能够保证数据的安全性和可靠性。通过调整参数,PolarDB可以在多核和多节点之间切换和扩展,可以轻松应对任何规模的工作负荷。

还有一个亮点是PolarDB的只读节点提供了无损强一致性的特性,意味着多个只读节点之间保持一致的数据。这意味着当更改了数据库的内容或结构时,可以确保所有节点始终拥有相同的数据。对于关注准确性和安全性的人来说,这是一个极其重要和实用的功能。

通过实时监视系统状态并在控制台中查看详细报表,让我始终保持掌控并了解系统状况。整体感受,PolarDB Serverless是一个在处理不同级别的工作负荷和有效管理成本的同时,提供可靠、高效和灵活的服务,希望阿里云能大力进行推广和渠道销售,让更多的技术人员能了解到这些,并投入企业生产环境中。

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
10月前
|
弹性计算 关系型数据库 MySQL
基于ECS和云数据库RDS MySQL Serverless快速搭建个人博客实验体验报告
通过安装Apache+PHP+WordPress网站环境,并结合RDS MySQL版数据库实例,快速搭建自己的云上博客。
276 43
|
Serverless
《Serverless函数计算征集令》实验里的小错误
《Serverless函数计算征集令》实验简介和实验手册有一些小错误
228 1
《Serverless函数计算征集令》实验里的小错误
|
17天前
|
机器学习/深度学习 人工智能 监控
基于函数计算体验AIGC文生图应用
小陈在学习Serverless和函数计算后,计划通过阿里云函数计算服务实践AIGC应用。他发现阿里云提供了基于Stable Diffusion的文生图模型模板,可以快速创建AIGC应用。部署步骤包括开通函数计算服务,通过模板创建应用并部署,然后通过应用域名进行文字生图体验。用户还能查看和管理函数,进行版本和别名管理。实验完成后,应用可以被安全删除。
326 2
|
4天前
|
Serverless 编解码 运维
函数计算应用
本文介绍函数计算的典型应用场景,包括Web应用、数据ETL处理、AI推理、视频转码等。
148 9
|
9天前
|
SQL 分布式计算 监控
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
本文演示了使用 EMR Serverless Spark 产品搭建一个日志分析应用的全流程,包括数据开发和生产调度以及交互式查询等场景。
55939 2
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
|
12天前
|
弹性计算 Cloud Native 安全
【阿里云云原生专栏】云原生与芬克斯:阿里云函数计算在金融行业的应用案例
【5月更文挑战第26天】阿里云函数计算在金融行业数字化转型中发挥关键作用,提供高可用、安全、灵活且成本效益的解决方案。通过事件驱动架构和弹性伸缩,适应业务波动,确保服务连续性。在实时风控系统案例中,函数计算实现低延迟评估,提升风控效率。此技术助力金融企业快速创新,增强市场竞争力。
306 0
|
17天前
|
运维 监控 JavaScript
【阿里云云原生专栏】Serverless架构下的应用部署与运维:阿里云Function Compute深度探索
【5月更文挑战第21天】阿里云Function Compute是事件驱动的无服务器计算服务,让用户无需关注基础设施,专注业务逻辑。本文详述了在FC上部署应用的步骤,包括创建函数、编写代码和部署,并介绍了运维功能:监控告警、日志管理、版本管理和授权管理,提供高效低成本的计算服务。
234 6
|
17天前
|
存储 人工智能 Serverless
基于函数计算体验ImageAI图像预测应用
小陈在体验了阿里云函数计算服务的AIGC应用模板后,发现可以方便快捷地实现以文生图。他的师父大刘建议利用云平台的AI能力,比如ImageAI,来实现图片中对象的识别。他们提到阿里云函数计算服务提供了ImageAI应用模板,只需几步就能创建并实现图片识别功能。用户可以上传图片至OSS特定目录,触发ImageAI进行自动识别,识别结果会保存在另一个目录中。此外,用户还可以直接通过FC访问ImageAI应用进行图像预测。这个过程展示了如何结合Serverless应用模板和AI技术,简化开发流程,提高效率。
116 4
|
23天前
|
运维 Serverless 应用服务中间件
Serverless 应用引擎产品使用之在阿里云Serverless中函数计算FC nginx 部署上去之后放置静态页面如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
287 0
|
23天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
1097 0
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决

推荐镜像

更多