PolarDB MySQL 版 Serverless评测|一文带你体验什么是极致弹性|后续

news/2024/5/17 15:11:12

PolarDB MySQL 版 Serverless评测|一文带你体验什么是极致弹性|后续

    • 弹性压测三后续
    • 自动缩容
    • 全局一致性测试
    • 测评体验

在上一篇PolarDB MySQL 版 Serverless测评博文中:https://developer.aliyun.com/article/1385834 关于弹性压测三通过增加只读节点压测来观测到Serverless弹性增加只读节点的操作,当时时间有限,在等待了20~30min中后仍未看到只读节点总数超过2个,这里继续尝试。

弹性压测三后续

为了可以更快的达到:当数据库接收到新的只读负载后,Serverless系统会继续创建新的只读节点,直到满足新增只读负载的要求的目标。这里修改Serverless配置为
在这里插入图片描述
等待集群配置切换成功,此时查看集群节点信息
在这里插入图片描述

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=pc-uf6dn249n6fn7w18m.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

可以看到当主节点弹升到最大规格后,Serverless系统会逐个创建只读节点,分摊主节点的读请求,直到只读节点的数量满足当前负载。只读节点自动创建大概需要耗时5~10min左右
在这里插入图片描述
只读节点大概11:00左右创建成功,
在这里插入图片描述
但是点击【性能监控】页面,查看11:00到当前时间的PCU数量及PCU CPU使用率,并没有看到只读节点的相关信息
在这里插入图片描述
点击刷新【性能监控】页面也看不到只读节点的监控信息,这说明目前性能监控这里对于Serverless弹性增加节点的监控有一定的延迟性,为了看到只读节点的监控信息,等待到14min中的时候刷新性能监控页面,看到了只读节点信息
在这里插入图片描述
但是这里看到的只读节点信息在11:02分已经有监控信息了,但是刚才在11:08分刷新性能监控页面时未看到只读节点信息,而是在11:14才看到了11:02分的只读节点监控信息,也就是说性能监控页面展示大概延迟12min左右。
下面新建压测窗口,发起256并发的只读请求,验证只读节点Serverless弹性增加

sysbench /usr/share/sysbench/oltp_read_only.lua --mysql-host=pc-uf6dn249n6fn7w18m.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

为了更快的看到只读节点的增加,可以增加多个压测窗口发起256并发只读请求,这里可以看到新的只读节点Serverless弹性创建中
在这里插入图片描述
在这里插入图片描述
这里我再增加几个压测窗口发起256并发只读请求,等待5min左右可以看到新的只读节点创建中
在这里插入图片描述
持续观测一段时间【性能监控】可以看到主节点、只读节点PCU数量及PCU CPU使用率都趋于稳定,保持在1PCU
在这里插入图片描述
此时系统判定,Serverless规格已经满足实际负载,不会再继续增加新的只读节点。

自动缩容

停掉所有的Sysbench脚本后等待20min左右可以看到集群只读节点减少,剩下2个只读节点
在这里插入图片描述
等待较长时间后,最终PolarDB会缩容到只有一个主节点的状态。

全局一致性测试

高性能全局一致性SCC特性可以为PolarDB for MySQL Serverless提供跨节点无损读扩展的能力,即RO的无损强一致读。传统的Serverless的方案均是基于单机原地升降配实现,其规格受限于单物理机资源。而当RO能借助SCC提供无损强一致读后,针对大部分读多写少业务,我们都可以跨机提供CPU资源,上限远超单物理机限制。
修改Serverless配置,只读节点下限设置为1
在这里插入图片描述
使用mysqlsct工具验证RO的无损强一致读的特性,执行如下命令

/root/mysqlsct --host-rw=pc-uf6dn249n6fn7w18m.rwlb.rds.aliyuncs.com --host-ro=pc-uf6dn249n6fn7w18m.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

执行后,可以看到一致性检查全部通过
在这里插入图片描述
点击【参数配置】集群下方【修改参数】按钮,修改loose_innodb_polar_scc参数为OFF,单击提交修改,单击确定,关闭SCC特性关闭SCC
在这里插入图片描述
弹框可以勾选需要关闭的数据库节点信息
在这里插入图片描述
等待1~3min参数配置生效后
在这里插入图片描述
回到测试窗口重新执行命令

/root/mysqlsct --host-rw=pc-uf6dn249n6fn7w18m.rwlb.rds.aliyuncs.com --host-ro=pc-uf6dn249n6fn7w18m.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

执行后,可以看到一致性检查出现失败
在这里插入图片描述

测评体验

整个测评体验的操作基本没有什么疑问,控制台的属性配置以及Serverless参数配置也很容易理解参数功能。只是在体验过程中,耗时比较久,通过配置Serverless实现弹性伸缩数据库节点,当负载升高时,自动增加数据库节点,当负载降低时,自动减少数据库节点。这个增加或者减少数据库节点的过程比较耗时,想要观察结果的话需要一定的耐心。
另外就是性能监控的延迟性,希望后续可以减少一下延迟,现在的结果来看,总感觉性能监控看到的内容都是十几分钟或者二十几分钟之前的集群信息。
最后就是PolarDB MySQL版Serverless弹性伸缩增加或减少数据库节点,对应的数据一致性如何保证,这个请各位开发者放心,查阅官方文档
在这里插入图片描述
可以看到数据一致性可以保证数据强一致性,到这里对于PolarDB MySQL版Serverless的测评全部结束,整体过程除了耗时以外,产品本身很棒。
片尾提出一个小疑问,就是说PolarDB MySQL版Serverless弹性伸缩时,只读节点的数据是否与现有主节点及只读节点的数据是一致的?查阅了一下官方文档,增加一个只读节点预计耗时5分钟,具体耗时受新增节点数量、库表数量、数据库负载等因素影响。
在这里插入图片描述
那么在这5分钟内主节点新增的数据当前增加的只读节点是否可以保持一致呢?大家也可以思考一下。


http://www.mrgr.cn/p/68154848

相关文章

【C语言】多字节字符、宽字符(涉及字符集和编码)

字符集、编码: 字符集:一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。例如:ASCII、Unicode、GB2312、GBK、GB18030、BIG5(繁体中文) ... 编码方式:符号…

【React】Ant Design自定义主题风格及主题切换

Ant Design 的自定义主题,对于刚入手的时候感觉真是一脸蒙圈,那今天给它梳理倒腾下; 1、自定义主题要点 整体样式变化,主要两个部分: 1.1、Design Token https://ant.design/docs/react/customize-theme-cn#theme 官…

MySQL基础-----约束详解

目录 一. 概述: 二.约束演示: 三.外键约束: 3.1介绍: 3.2外键约束语法: 3.3删除,更新行为: 一. 概述: 🧐🧐概念:约束是作用于表中字段上的规则,用于限制…

LCD显示器 --- 8080接口 和 RGB接口 的区别

主要介绍LCD显示的基本原理,涉及像素、分辨率、颜色模型、RGB888等格式、Framebuffer、8080接口、RGB接口。 1.LCD显示出图片的基本原理 LCD作为显示器,它的显示原理和图片是一样的。 图片可以看作由一个一个点(即像素pixel)组成。每行有xres个像素,有yres行,则这个图片的分…

Vue 3 项目构建与效率提升:vite-plugin-vue-setup-extend 插件应用指南

一、Vue3项目创建 前提是已安装Node.js(点击跳转Node官网) npm create vuelatest这一指令将会安装并执行 create-vue,它是 Vue 官方的项目脚手架工具。你将会看到一些诸如 TypeScript 和测试支持之类的可选功能提示: ✔ Projec…

Ubuntu 22.04 解决和 Windows 共享蓝牙设备的问题

我有一个 Airpods,连接到 WIndows 可以正常工作,但连接到 ubuntu 后会无法连接,只能删除设备选择重联,但是这又会导致 Windows 不能连接到耳机,只能也删除重新连接,费神费力。 要解决此问题,仍有两办法,让 Windows 将就 Linux,或者 Linux 将就 Windows,由于折腾注册表…

【STM32+HAL库】---- 驱动MAX30102心率血氧传感器

硬件开发板:STM32F407VET6 软件平台:cubemax+keil+VScode1 MAX30102心率血氧传感器工作原理 MAX30102传感器是一种集成了红外光源、光电检测器和信号处理电路的高度集成传感器,主要用于心率和血氧饱和度的测量。以下是MAX30102传感器的主要特点和工作原理:红外光源:MAX301…

OO第一次博客作业

OO第一次博客作业 目录1.前言 2.设计与分析 3.采坑心得 4.改进建议 5.总结 1.前言 正则表达式是java语言中一种非常重要的语言,他的重要性主要体现在以下方面: 1.高效的文本处理:正则表达式提供了一种高效的方式来处理文本数据。它可以快速地进行字符串的搜索、匹配、替换和…

【机器学习】数据变换---小波变换特征提取及应用案列介绍

引言 在机器学习领域,数据变换是一种常见且重要的预处理步骤。通过对原始数据进行变换,我们可以提取出更有意义的特征,提高模型的性能。在众多数据变换方法中,小波变换是一种非常有效的方法,尤其适用于处理非平稳信号和…

JVM——面试

https://juejin.cn/post/6998527815964426271 https://juejin.cn/post/7101120209540349959垃圾回收器 Serial(新生代)+ Serial Old(老年代) 特点:单线程垃圾回收器,垃圾回收过程中需要 STW,适用于运行在 Client 模式下的虚拟机; 新生代标记复制算法,老年代标记整理算法…

内存分配器

内存分配器 文章目录 内存分配器项目介绍内存池介绍池化技术内存池内存池主要解决的问题malloc 实现定长内存分配器怎么控制定长通过系统调用申请空间定长内存分配器中应该包含哪些成员变量内存池如何管理释放的对象内存分配器如何为我们申请对象定长内存池整体代码性能对比 高…

2024.4.19

2024.4.19 【你知道的都是真相。只可惜那些并不是真相的全部。】 Friday 三月十一 谷雨<BGM = "谷雨--音阙诗听"> AC :Answer Coarse,粗劣的答案 ​ CE :Compile Easily,轻松通过 ​ PC :Perfect Compile 完美的编译 ​ WA :Wonderful Answer,好答案 ​ RE :Ru…

Ubuntu 22.04 安装 Nvidia 驱动最方便安全的方式

刚安装好的 Ubuntu 22.04 没有 N 卡驱动,输入 nvidia-smi,提示没有此程序并推荐到 apt 安装。 但是,使用 apt 安装 nvidia 驱动会有极大概率出现启动黑屏和闪屏问题。 不如进入开始菜单,找到“附加驱动”:此处展示了可用的 Nvidia 驱动,选择自己想要的版本安装,"te…

Mockito单元测试

文章目录 Mockito单元测试 为什么要使用Mock?导入依赖import导入包使用Mock模拟测试某个类中的某个方法是否可以成功执行使用Mock模拟某个类的方法&#xff0c;自己给这个方法返回我们指定的值使用Mock模拟某个方法调用后会抛出指定的异常使用Mock模拟测试某个类中的某个方法(…

浅述.Net中的Hash算法(顺带对称、非对称算法)

【写在前面】 对称加密算法(只有一个私钥&#xff0c;比如DES【不推荐】、AES)&#xff1b; 非对称加密算法&#xff08;公钥与私钥&#xff0c;比如RSA&#xff09;&#xff1b; Hash算法也称为散列函数算法&#xff0c;任意长度的数据都转换为固定长度的字符串&#xff08…

【opencv】示例-videocapture_starter.cpp 从视频文件、图像序列或连接到计算机的摄像头中捕获帧...

/** * file videocapture_starter.cpp * brief 一个使用OpenCV的VideoCapture与捕获设备&#xff0c;视频文件或图像序列的入门示例 * 就像CV_PI一样简单&#xff0c;对吧&#xff1f; * * 创建于: 2010年11月23日 * 作者: Ethan Rublee * * 修改于: 2013年4月17日 * …

EasyExcel追加写入数据,分批查询多次写入场景下,注意使用方式【OOM警告】

使用.withTemplate(file) 将临时数据文件和真实数据文件合并的方式&#xff0c;在生产环境大批量数据下&#xff0c;完全不可取&#xff0c;有很高的内存溢出风险 伪代码 public static void writeAppend(String fileName) {String filePath "tempDir".concat(Fil…

GDExtension的C++示例

GDExtension的C++示例 本文按照官方文档,进行c++的GDExtension​插件开发,主要进行文档进行复刻,同时对文档中未涉及步骤进行补充 什么是GDExtension 除了GDScript​和C#​这两种脚本语言外,Godot​引擎可以执行其他编程语言编写的代码。目前有两种方式实现:C++模块与GDEx…

再见,晚晚

一、 尽管多少有些预感,但听到消息的时候,泪水还是几近夺眶而出。 “祝愿晚晚能坚持自己的梦想” “ymgg我们等生日会给晚晚一起录制一个祝福吧” 却是一语成谶,只留一个在屏幕前迷茫的我。 其实我已经很久没有完整地看一次晚晚的单播了。 但是,当看到晚晚的告别动态的时候…

探索人工智能绘图的奇妙世界

探索人工智能绘图的奇妙世界 人工智能绘图的基本原理机器之美&#xff1a;AI绘图作品AI绘图对艺术创作的影响未来展望与挑战图书推荐&#x1f449;AI绘画教程&#xff1a;Midjourney使用方法与技巧从入门到精通内容简介获取方式&#x1f449;搜索之道&#xff1a;信息素养与终身…