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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 个人测评

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是一个在处理不同级别的工作负荷和有效管理成本的同时,提供可靠、高效和灵活的服务,希望阿里云能大力进行推广和渠道销售,让更多的技术人员能了解到这些,并投入企业生产环境中。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
关系型数据库 MySQL Serverless
探索PolarDB MySQL版:Serverless数据库的灵活性与性能
本文介绍了个人开发者对阿里云PolarDB MySQL版,特别是其Serverless特性的详细评测体验。评测涵盖了产品初体验、性能观测、Serverless特性深度评测及成本效益分析等方面。尽管试用过程中遇到一些小问题,但总体而言,PolarDB MySQL版表现出色,提供了高性能、高可用性和灵活的资源管理,是个人开发者和企业用户的优秀选择。
|
3月前
|
SQL 关系型数据库 MySQL
在使用阿里云PolarDB MySQL进行深度测评时
在使用阿里云PolarDB MySQL进行深度测评时
|
1月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
62 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
1月前
|
SQL JSON 关系型数据库
MySQL是一个广泛使用的开源关系型数据库管理系统,它有许多不同的版本
【10月更文挑战第3天】MySQL是一个广泛使用的开源关系型数据库管理系统,它有许多不同的版本
133 5
|
1月前
|
关系型数据库 Unix MySQL
MySQL是一种关系型数据库管理系统
MySQL是一种关系型数据库管理系统
44 2
|
2月前
|
关系型数据库 MySQL 分布式数据库
PolarDB MySQL数据库场景体验与测评
本文介绍如何在PolarDB上部署数据库,包括登录控制台、配置账号与数据库管理、执行SQL查询及调整Serverless配置等内容。通过创建测试表和数据操作演示了基本数据库管理功能,并展示了如何设置资源弹性扩缩、监控及备份数据。此外,还提供了关于节点切换、压测、加速复杂SQL查询、弹性并行查询及高可用性的详细场景体验说明,全方位展示了PolarDB的强大功能。
|
1月前
|
关系型数据库 MySQL 数据库
mysql关系型数据库的学习
mysql关系型数据库的学习
18 0
|
3月前
|
关系型数据库 MySQL Serverless
PolarDB MySQL Serverless:灵活弹性场景深度评测
本文深入评测了阿里云PolarDB MySQL Serverless的灵活弹性场景。作为阿里云专业运维工程师,笔者从多个角度对产品进行了全面分析: 产品特性:介绍了PolarDB MySQL Serverless的核心优势,包括动态弹性、高可用性和按量付费模式。 操作体验:详细描述了集群创建过程和控制台监控功能,突出了其简化运维的特点。 弹性能力:通过三个测试场景验证了产品在不同负载下的自动扩缩容能力,展示了其快速响应和性能稳定性。 API与文档:评估了API的易用性和文档的完整性,并提出了改进建议。 优劣分析:总结了产品的主要优势,如极致弹性和成本效益,同时指出了一些潜在的改进空间。 整体
|
3月前
|
关系型数据库 MySQL 分布式数据库
PolarDB 并行查询问题之保证与MySQL的兼容性如何解决
PolarDB 并行查询问题之保证与MySQL的兼容性如何解决
44 1
|
3月前
|
关系型数据库 MySQL Serverless
在部署云数据库PolarDB MySQL版 Serverless集群的过程中问题点
在部署PolarDB MySQL Serverless过程中,常见问题包括配置误解、网络配置错误、资源未及时释放及压测不熟练。建议深入理解配置项,确保合理设置伸缩策略;明确业务需求,使PolarDB与现有服务同处一地域与VPC;利用提醒功能管理资源生命周期;按官方指南执行压测。新用户面临的学习曲线、资源管理自动化不足及成本控制难题,可通过增强文档友好性、引入智能成本管理与用户界面优化来改善。
65 1

推荐镜像

更多