PolarDB for MySQL Serverless弹性测试

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 阿里云数据库PolarDB for MySQL Serverless数据库能够使得数据库集群资源随客户业务负载动态弹降,通过引入严格强一致集群(SCC)和热备无感秒切等技术,可以实现全场景下的应用无损。

PolarDB for MySQL Serverless弹性测试

1.  创建实验资源

开始实验之前,您需要先创建实验相关资源。

  1. 在实验室页面,单击创建资源
  2. (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、用户信息等)。

说明:资源创建过程需要3~5分钟。

2.  集群参数配置介绍

PolarDB for MySQL Serverless支持开启严格强一致性集群SCC(Strict Consistency Cluster)服务和事务续传功能。开通方法为:

  • 开启SCC(Strict Consistency Cluster)的服务功能(工单申请)。
  • 开启事务续传:loose_innodb_trx_resume=ON (集群控制台>>配置与管理--参数配置)。

严格强一致性集群SCC(Strict Consistency Cluster):SCC功能为PolarDB for MySQL Serverless提供了跨节点无损读扩展的能力。

PolarTrans事务系统利用提交时间戳技术CTS和RDMA网络,在内核层面提供集群强一致性读SCC服务,在不损失性能的基础上,保证发往集群任意副本的读请求都可以获得强一致性的结果。

事务续传:事务续传功能为PolarDB for MySQL Serverless提供了无损跨机迁移的能力。        

在常规的主备切换或热升级场景下,会产生连接闪断、新建连接短暂失败以及存量事务回滚等问题。PolarDB的事务续传特性结合PolarProxy代理的连接保持功能,可以实现对应用程序完全无感的高可用切换。

说明:本实验中测试集群已经开启以上服务,您无需手动操作。

3.  设置Serverless弹性策略

  1. 本步骤指导您如何设置Serverless弹性策略。
  2. 双击打开远程桌面的Chromium网页浏览器
  3. 在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码用户密码输入框,单击登录
  4. 复制下方地址,在Chromium网页浏览器打开新页签,粘贴并访问云数据库PolarDB控制台。
https://polardb.console.aliyun.com/
  1. 集群列表页面顶部菜单栏中,切换资源所在地域。

说明:您可在云产品资源列表中查看PolarDB资源所在的地域。

 

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

说明:您可在云产品资源列表中查看实验室分配的PolarDB实例ID。

  1. 基本信息页面的数据库节点区域中,单击右上角的Serverless

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

参数说明:

  • 单节点资源弹性上限为:8 PCU。
  • 单节点资源弹性下限为:1 PCU。
  • RO节点个数扩展上限:0 (禁止自动添加只读节点)。
  • RO节点个数扩展下限:0。
  • 是否开启无活动暂停:关闭。

 

说明:PCU(PolarDB Capacity Unit):1个PCU的性能约等于1核2GB规格PolarDB计算节点性能。

4.  主节点Serverless弹性压测

通过sysbench脚本访问PolarDB for MySQL Serverless集群地址进行压测,PolarDB主节点的规格能够根据负载进行自动伸缩与自动配置,达到Serverless的能力。

说明:

  • Sysbench是一款开源的多线程性能测试工具,可以执行数据库只读、只写、读写混合等类型的性能测试。
  • 本步骤样例使用读写混合的压测类型(oltp_read_write),并发数为32线程。
  1. 在实验室页面右侧功能栏中,单击 图标,切换至Web Terminal。
  2. 执行如下命令,初始化相关数据。

说明:执行命令前,您需要将mysql-host参数修改为您的PolarDB实例的集群私网地址。您可在云产品资源列表中查看到PolarDB实例的集群私网地址。

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=xxxx.rwlb.cn-chengdu.rds.aliyuncs.com --mysql-port=3306 --mysql-user=test_user --mysql-password=Password123 --mysql-db=mytest --tables=32 --table-size=100000 --report-interval=1 --range_selects=1 --db-ps-mode=disable --time=12000 --mysql-ignore-errors=all --skip-trx=on --rand-type=uniform --threads=32 prepare

  1. 执行如下命令,开始进行压测。

说明:执行命令前,您需要将mysql-host参数修改为您的PolarDB实例的集群私网地址。您可在云产品资源列表中查看到PolarDB实例的集群私网地址。

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=xxxx.rwlb.cn-chengdu.rds.aliyuncs.com --mysql-port=3306 --mysql-user=test_user --mysql-password=Password123 --mysql-db=mytest --tables=32 --table-size=100000 --report-interval=1 --range_selects=1 --db-ps-mode=disable  --time=12000 --mysql-ignore-errors=all --skip-trx=on --rand-type=uniform --threads=32 run

返回如下结果,根据sysbench输出可以直接观察到,随着TPS持续上升,但延迟LAT)在非常快的时间内段出现下降,这说明PolarDB for MySQL Serverless处理能力存在提升。

  1. 在实验室页面右侧功能栏中,单击 图标,切换至远程桌面。
  2. 在左侧导航栏中,选择性能监控

 

  1. 集群页签,单击计算节点

  1. 计算节点页签,查看主节点负载情况。您可以看到随着主节点PCU CPU使用率的不断提升,PCU数量弹升到最大上限8个。

  1. 压测持续3分钟后,我们切换至Web Terminal中执行Ctrl+C,停止压测脚本。同时切换至远程桌面中,查看到主节点PCU CPU使用率开始下降,PCU数量随后也逐步自动减少。

5.  只读节点Serverless弹性压测

PolarDB  for MySQL  Serverless集群除了支持主节点自动弹性伸缩之外,还支持创建只读节点分摊主节点的读请求。借助数据库代理PolarProxy和读写分离技术,PolarDB  for MySQL  Serverless可以在集群维度提供更高的性能,基于不同的读负载会智能地调整只读节点的个数和各自的规格,来达到最佳的Serverless能力。

  1. 读写混合压测。

我们继续使用sysbench工具模拟真实使用场景流量,PolarDB for MySQL Serverless集群主节点PCU扩容到弹升上限后,会自动创建新的只读节点并分摊一部分主节点的读负载。最终使整个集群能够支撑更高的TPS请求量。

1.1 在左侧导航栏,单击基本信息

 

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

1.3 在设置Serverless配置参数对话框中,将RO节点个数扩展上限0调整为2RO节点个数扩展下限0调整为2,单击确定

 

1.4 在实验室页面右侧功能栏中,单击 图标,切换至Web Terminal。

1.5 执行如下命令,通过sysbench脚本通过访问PolarDB for MySQL Serverless集群私网地址发起32并发压测请求,模拟脚本包含read/write事务。

说明:执行命令前,您需要将mysql-host参数修改为您的PolarDB实例的集群私网地址。您可在云产品资源列表中查看到PolarDB实例的集群私网地址。

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=xxxxxx.rwlb.cn-chengdu.rds.aliyuncs.com --mysql-port=3306 --mysql-user=test_user --mysql-password=Password123 --mysql-db=mytest --tables=32 --table-size=100000 --report-interval=1 --range_selects=1 --db-ps-mode=disable  --time=12000 --mysql-ignore-errors=all --skip-trx=on --rand-type=uniform --threads=32 run

1.6 在实验室页面右侧功能栏中,单击 图标,切换至远程桌面。

1.7 在左侧导航栏中,选择性能监控

1.8 在集群页签,单击计算节点

1.9 在计算节点页签,选择查看主节点(RW)负载。

1.20 在读写混合场景下写流量会被转发到主节点(RW),读流量会被均匀地打散在主节点(RW)和只读节点(RO)中。

1.21 从监控视图可见,主节点(RW)PCU已达到设置的上限(8 PCU),但只读节点(RO)PCU消耗未达到上限,因此压测期间只自动增加了一个只读节点(RO)。

  • 主节点监控。

  • 只读节点(RO)监控。

计算节点页签,选择查看只读节点负载。

1.22 我们切换至Web Terminal中执行Ctrl+C,停止压测脚本后,再切换至远程桌面,查看到主节点(RW) PCU CPU使用率开始下降,PCU数量随之自动回落。

  1. 只读并发压测。

进一步加大只读场景的压测请求,可以观察到PolarDB for MySQL Serverless会继续创建更多的只读节点(RO),同时当前的只读节点(RO)也会自动扩容,以服务更多的读请求。

在停止sysbench脚本后,PolarDB for MySQL Serverless的所有节点都会自动缩容。整个集群的节点数量和规格都能够根据负载进行自动伸缩与自动配置,来达到Serverless的能力。

2.1 在实验室页面右侧功能栏中,单击 图标,切换至Web Terminal。

2.2 执行如下命令,通过sysbench脚本通过访问PolarDB for MySQL Serverless 集群地址发起64并发的只读请求。

说明:执行命令前,您需要将mysql-host参数修改为您的PolarDB实例的集群私网地址。您可在云产品资源列表中查看到PolarDB实例的集群私网地址。

sysbench /usr/share/sysbench/oltp_read_only.lua --mysql-host=xxxxxx.rwlb.cn-chengdu.rds.aliyuncs.com --mysql-port=3306 --mysql-user=test_user --mysql-password=Password123 --mysql-db=mytest --tables=32 --table-size=100000 --report-interval=1 --range_selects=1 --db-ps-mode=disable --time=12000 --mysql-ignore-errors=all --skip-trx=on --rand-type=uniform --threads=64 run

2.3 在实验室页面右侧功能栏中,单击图标,切换至远程桌面。

2.4 在左侧导航栏中,选择性能监控

 

2.5 在集群页签,单击计算节点

2.6 在只读流量测试场景下,当PolarDB for MySQL Serverless集群一主一读节点依然无法满足负载需求的情况下(PCU均已达到8个上限),会自动增加节点(最多2个只读节点)。

  • 主节点PCU数量及CPU使用率。

计算节点页签,选择查看主节点负载。

  • 当只读主节(1)PCU数量达到上限后,CPU使用率依然较高,自动触发增加节点

  • 只读主节(2)为满足负载PCU自动弹至上限,PCU CPU使用率接近80% 。

2.7 我们切换至Web Terminal中执行Ctrl+C,停止压测脚本后,再切换至远程桌面,主节点(RW)及只读节点(RO) 的PCU CPU使用率开始下降。随着集群CPU使用率持续下降,节点PCU数量、节点数量可以逐步收缩。

实验链接:https://developer.aliyun.com/adc/scenario/f84a704924a841d692118d8fc24c4b83

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
9天前
|
关系型数据库 MySQL 测试技术
【赵渝强老师】MySQL的基准测试与sysbench
本文介绍了MySQL数据库的基准测试及其重要性,并详细讲解了如何使用sysbench工具进行测试。内容涵盖sysbench的安装、基本使用方法,以及具体测试MySQL数据库的步骤,包括创建测试数据库、准备测试数据、执行测试和清理测试数据。通过这些步骤,可以帮助读者掌握如何有效地评估MySQL数据库的性能。
|
1月前
|
Java 关系型数据库 MySQL
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
这篇文章是关于自动化测试项目实战笔记,涵盖了JDK、Tomcat、MySQL、Jpress环境的安装和搭建过程,以及测试用例和常见问题总结。
49 1
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
|
1月前
|
SQL JSON 关系型数据库
MySQL是一个广泛使用的开源关系型数据库管理系统,它有许多不同的版本
【10月更文挑战第3天】MySQL是一个广泛使用的开源关系型数据库管理系统,它有许多不同的版本
133 5
|
1月前
|
关系型数据库 Unix MySQL
MySQL是一种关系型数据库管理系统
MySQL是一种关系型数据库管理系统
44 2
|
1月前
|
关系型数据库 MySQL 数据库
mysql关系型数据库的学习
mysql关系型数据库的学习
18 0
|
3月前
|
关系型数据库 Serverless 分布式数据库
ICDE’24 | 中国企业首获最佳论文,详解PolarDB Serverless如何在0.5秒内实现跨机迁移
数据库领域顶会 ICDE 2024于5月13-17日在荷兰乌特勒支(Utrecht, Netherlands)举办。ICDE (The International Conference on Data Engineering) 与VLDB、SIGMOD被公认为是国际数据管理领域三大顶级学术会议,此次在荷兰召开的ICDE 2024大会,共吸引北京大学、清华大学、浙江大学、MIT、斯坦福等机构,以及谷歌、微软、阿里云、华为、字节等公司的近1000名人员参会,共同探讨AI、数据库、数据处理领域的前沿技术问题。
|
3月前
|
存储 算法 Cloud Native
【PolarDB-X列存魔法】揭秘TPC-H测试背后的性能优化秘籍!
【8月更文挑战第25天】阿里巴巴的云原生数据库PolarDB-X以其出色的性能、可靠性和扩展性闻名,在多种业务场景中广泛应用。尤其在列存储模式下,PolarDB-X针对分析型查询进行了优化,显著提升了数据读取效率。本文通过TPC-H基准测试探讨PolarDB-X列存执行计划的优化策略,包括高效数据扫描、专用查询算法以及动态调整执行计划等功能,以满足复杂查询的需求并提高数据分析性能。
92 1
|
3月前
|
关系型数据库 MySQL 分布式数据库
PolarDB 并行查询问题之保证与MySQL的兼容性如何解决
PolarDB 并行查询问题之保证与MySQL的兼容性如何解决
43 1
|
3月前
|
关系型数据库 Serverless 分布式数据库
揭秘PolarDB Serverless:大促洪峰秒级应对,无感伸缩见证科技魔法!一探云数据库管理的颠覆性革新,强一致性的守护神来了!
【8月更文挑战第13天】在云计算背景下,阿里巴巴的云原生数据库PolarDB Serverless针对弹性伸缩与高性能一致性提供了出色解决方案。本文通过一个电商平台大促活动的真实案例全面测评PolarDB Serverless的表现。面对激增流量,PolarDB Serverless能秒级自动扩展资源,如通过调用`pd_add_reader`快速增加读节点分摊压力;其无感伸缩确保服务平滑运行,不因扩展中断;强一致性模型则保障了数据准确性,即便在高并发写操作下也确保库存等数据的同步一致性。PolarDB Serverless简化了数据库管理,提升了系统效能,是追求高效云数据库管理企业的理想选择。
100 7
|
3月前
|
安全 关系型数据库 MySQL
揭秘:如何在无影的Serverless世界中,悄无声息地操控MySQL数据库!
【8月更文挑战第8天】在云计算领域,Serverless 枟能凭借其高效与弹性特性脱颖而出。本文采用问答形式解析函数计算环境中 MySQL 数据库的安全高效访问方法。介绍了如何利用数据库插件或 SDK 连接 MySQL,并提供了一个使用 Python 和 `pymysql` 在阿里云函数计算中连接 MySQL 的示例代码片段。同时强调了通过环境变量或密钥管理服务安全处理数据库凭证的重要性。随着 Serverless 技术的发展,数据库操作将更加简便。
77 7

相关产品

  • 云原生数据库 PolarDB