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

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 个人测评

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
目录
相关文章
|
27天前
|
关系型数据库 MySQL Serverless
高顿教育:大数据抽数分析业务引入polardb mysql serverless
高顿教育通过使用polardb serverless形态进行数据汇总,然后统一进行数据同步到数仓,业务有明显高低峰期,灵活的弹性伸缩能力,大大降低了客户使用成本。
|
1天前
|
关系型数据库 MySQL 分布式数据库
PolarDB for MySQL数据库外网连接解析失败的原因
【2月更文挑战第5天】PolarDB for MySQL数据库外网连接解析失败的原因
49 8
|
13天前
|
SQL 关系型数据库 MySQL
mysql和polardb
mysql和polardb
15 2
|
19天前
|
SQL 存储 关系型数据库
MySQL技能完整学习列表——1、数据库基础概念——1、关系型数据库(Relational Database)
MySQL技能完整学习列表——1、数据库基础概念——1、关系型数据库(Relational Database)
128 0
|
20天前
|
关系型数据库 MySQL 数据库
RDS数据库测评:性能超出预期,双11优惠还在继续
RDS数据库测评:性能超出预期,双11优惠还在继续
17 0
|
24天前
|
关系型数据库 MySQL Serverless
《开发者评测》之PolarDB MySQL 版 Serverless评测活动获奖名单
PolarDB MySQL 版 Serverless评测最优奖、潜力奖、争优奖获奖名单正式公布!
|
26天前
|
Cloud Native 关系型数据库 MySQL
云原生数据库 PolarDB MySQL 版体验
云原生数据库 PolarDB MySQL 版体验
123 0
|
27天前
|
关系型数据库 Serverless 分布式数据库
碧桂园服务使用阿里云PolarDB Serverless云数据库实现降本增效。
碧桂园集团,即碧桂园控股有限公司新型城镇化住宅开发商,采用集中及标准化的运营模式,业务包含物业发展、建安、装修、物业管理、物业投资、酒店开发和管理、以及现代农业、机器人。
|
29天前
|
关系型数据库 MySQL 数据处理
MySQL vs. PostgreSQL:选择适合你的开源数据库
在当今信息时代,开源数据库成为许多企业和开发者的首选。本文将比较两个主流的开源数据库——MySQL和PostgreSQL,分析它们的特点、优势和适用场景,以帮助读者做出明智的选择。
|
30天前
|
关系型数据库 MySQL 分布式数据库
PolarDB MySQL企业版与标准版功能对比:如何选择适合您的版本?
随着数字化时代的到来,企业对于数据处理的需求越来越高,而数据库作为数据处理的核心,其性能和成本成为了企业关注的焦点。阿里云全新推出的PolarDB MySQL企业版和标准版,以全新的架构和优化,为企业提供了高性能、低成本的数据库解决方案。但在功能上,这两个版本有很多差异,我们该如何选择呢?
18 2