Amazon Aurora MySQL 和 Amazon RDS for MySQL 集群故障转移和只读实例扩容时间测试

news2024/11/30 8:33:20

0f994286618d04267e7e714257a4bd5d.gif

01

测试背景

Amazon Aurora MySQL 是与 MySQL 兼容的关系数据库,专为云而打造,性能和可用性与商用数据库相当,成本只有其 1/10。

Amazon RDS for MySQL 让您能够在云中更轻松设置、操作和扩展 MySQL 部署。借助 Amazon RDS,您可以在几分钟内部署可扩展的 MySQL 服务器。

客户在使用亚马逊云科技托管 MySQL 数据库服务时,通常需要选择 Amazon Aurora MySQL 或 Amazon RDS for MySQL。本次测试是对比 Amazon Aurora MySQL 和 Amazon RDS for MySQL 在不同模式、不同机型、有无工作负载情况下的集群故障转移时间和只读实例扩容时间,为客户在亚马逊云科技上选择托管 MySQL 数据库服务提供参考。

02

测试环境

bb683719d3978e1f65798b0bac59b16e.png

03

测试前提

本次测试基于以下 3 个前提:

  • 压测实例、Amazon Aurora MySQL 和 Amazon RDS for MySQL 均在一个 VPC

  • Amazon Aurora MySQL 和 Amazon RDS for MySQL 均使用生产模板的默认配置

  • 开启 Amazon CloudTrail 分别统计集群故障转移和只读实例扩容的开始、结束时间

04

测试架构图

4.1 Amazon Aurora MySQL 测试架构图

db1102d5202b4c72b9da41620e35eb5d.png

4.2 Amazon RDS for MySQL 测试架构图

a59552ed71039403e3b68c831ee037dc.png

05

测试用例

5.1 集群故障转移时间测试用例,测试基于以下 8 种配置模式,分别测试无工作负载和有工作负载两种情况下的集群故障转移时间

1edf42cd36745bb59a7c8fe0a94ff744.png

*工作负载场景:数据库存储 100GB 数据,主节点 80%CPU 工作负载

5.2 只读实例扩容时间测试用例,测试基于以下 8 种配置模式,分别测试无工作负载和有工作负载两种情况下的只读实例扩容时间

79fff0d23220b53108f28c76a9871bea.png

*工作负载场景:数据库存储 100GB 数据,主节点 80%CPU 工作负载

06

测试方法

6.1 集群故障转移时间测试方法

1. 对于 Amazon Aurora MySQL,在控制台上,选择目标集群的写入实例并点击下图中的“故障转移”按钮:

8554a6f3f8d7bf673592be2f260d13bc.png

2. 点击“日志和事件”,在下方的近期事件里查看故障转移开始和结束时间,计算出故障转移花费的时间:

d1244e1d97c68848f0c79ebfade9c725.png

3. 对于 Amazon RDS for MySQL,在控制台上,选择目标集群的主实例并点击下图中的“重启”按钮,在下一个页面勾选“是否进行重启和故障转移”,点击确认:

c98660f31fa7d24a1b9b351ce5ba3700.png

75efc7784c5bd97978756b1c33fd6a01.png

4. 点击“日志和事件”,在下方的近期事件里查看故障转移开始和结束时间,计算得出故障转移花费的时间:

a61527572edcdc30871fec7fc91b2697.png

5. 在模拟工作负载的场景下重新统计时间,模拟工作负载的步骤如下:

  • 在压测实例上安装 sysbench(步骤参看 https://github.com/akopytov/sysbench)

  • 按照如下命令,向数据库写入 100GB 数据

sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --threads=64 --mysql-host=bench-test.cluster-cum78jhrtci1.ap-south-1.rds.amazonaws.com --mysql-user=admin --mysql-password=xxxx --mysql-port=3306 --mysql-db= bench _test --oltp-tables-count=100 --oltp-table-size=5000000 --db-driver=mysql prepare

左滑查看更多

  • 按照如下命令,对主节点进行压力测试

sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=bench-test.cluster-cum78jhrtci1.ap-south-1.rds.amazonaws.com --mysql-user=admin --mysql-password=xxxx --mysql-port=3306  --mysql-db= bench_test --max-requests=0 --oltp-simple-ranges=0 --oltp-distxinct-ranges=0 --oltp-sum-ranges=0 --oltp-order-ranges=0 --time=3600 --oltp-read-only=on --threads=120 run #可以通过调整 threads 来控制工作负载,不同数据库实例类型线程数不一样

左滑查看更多

6.2 只读实例扩容时间测试方法

1. 对于 Amazon Aurora MySQL,在控制台上,选择目标集群并点击下图中的“添加读取器”按钮:

dbe03033ea02bee5e1bca28345ddb937.png

2.使用 CloudTrail 里 CreateDBInstance 事件的时间作为添加只读实例的开始时间:

5f9f0dd49146f41f9e081379aa70aa24.png

3. 回到控制台,在目标集群 “日志和事件”里使用最后一步的时间作为添加只读实例的结束时间:

e5834e88148ff02eb14c3775d2703de2.png

4. 对于 Amazon RDS for MySQL,在控制台上,选择目标集群并点击下图中的“创建只读副本”按钮:

b71d0eb0601515c939d16e7df66c71cc.png

5. 使用 CloudTrail 里 CreateDBInstanceReadReplica 事件的时间作为添加只读实例的开始时间:

7fed6af2e1f238dce78c061a1b0b0d0a.png

6. 回到控制台,在目标集群“日志和事件”里使用最后一步的时间作为添加只读实例的结束时间:

db73e3750f7c8cf7f6f7589555324544.png

7. 在模拟工作负载场景下重新统计时间,模拟工作负载步骤如下:

  • 在压测实例上安装 sysbench(步骤参看 https://github.com/akopytov/sysbench)

  • 按照如下命令,向数据库写入 100GB 数据

sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --threads=64 --mysql-host=bench-test.cluster-cum78jhrtci1.ap-south-1.rds.amazonaws.com --mysql-user=admin --mysql-password=xxxx --mysql-port=3306 --mysql-db= bench _test --oltp-tables-count=100 --oltp-table-size=5000000 --db-driver=mysql prepare

左滑查看更多

  • 按照如下命令,对主节点进行压力测试

sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=bench-test.cluster-cum78jhrtci1.ap-south-1.rds.amazonaws.com --mysql-user=admin --mysql-password=xxxx --mysql-port=3306  --mysql-db= bench_test --max-requests=0 --oltp-simple-ranges=0 --oltp-distxinct-ranges=0 --oltp-sum-ranges=0 --oltp-order-ranges=0 --time=3600 --oltp-read-only=on --threads=120 run #可以通过调整threads来控制工作负载,不同数据库实例类型线程数不一样

左滑查看更多

07

测试数据

7.1 集群故障转移时间测试数据

7168df4d6b39b49fa0e10a87bf322c8f.png

表格记录时间均为 3 次测试的平均时间

7ed1bd0af1a01a7a8c728e4588218acb.png

7.2 只读实例扩容时间测试数据

fe4e869f9b3cc96ffd756f9d8f90ec41.png

表格记录时间均为 3 次测试的平均时间

7aa7e5b7c1b8ba8a60d8b795dc67fbe6.png

08

测试结论

  1. Amazon Aurora MySQL 的集群故障转移时间与读写模式、实例机型、工作负载相关性较小,整体时间分布在 29 秒-41 秒之间。Amazon RDS for MySQL 的集群故障转移时间与读写模式、实例机型相关性较小,与工作负载相关性较大,在无工作负载时为 50 秒-65 秒,有工作负载时增加至 85 秒-93 秒,有工作负载的情况下故障转移时间变长。

  2. Amazon Aurora MySQL 的只读实例扩容时间与读写模式,实例机型、工作负载相关性较小,整体时间分布在 6 分 08 秒-6 分 57 秒之间。Amazon RDS for MySQL 的只读实例扩容时间与读写模式,实例机型相关性较小,与工作负载相关性较大,在无工作负载时为 6 分 12 秒-7 分 1 秒,有工作负载时增加至 15 分 19 秒-15 分 31 秒,有工作负载的情况下只读实例扩容时间变长。

  3. 对比 Amazon Aurora MySQL 和 Amazon RDS for MySQL

  • 在无工作负载的情况下,Amazon Aurora MySQL 集群故障转移时间为 Amazon RDS for MySQL 的 64%,Amazon Aurora MySQL 集群故障转移时间更短。

  • 在无工作负载的情况下,Amazon Aurora MySQL 的只读实例扩容时间为 Amazon RDS for MySQL 的 96%,两者相差较小。

  • 在有工作负载的情况下,Amazon Aurora MySQL 集群故障转移时间为 Amazon RDS for MySQL 的 33%,Amazon Aurora MySQL 集群故障转移时间更短。

  • 在有工作负载的情况下,Amazon Aurora MySQL 的只读实例扩容时间为 Amazon RDS for MySQL 的 42% ,Amazon Aurora MySQL 只读实例扩容时间更短。

综上所述,Amazon Aurora MySQL 无论是在集群故障转移时间还是只读实例扩容时间都优于 Amazon RDS for MySQL。

本篇作者

5a90a6fa454d74697ab01b120c257182.png

韩宇光

亚马逊云科技解决方案架构师,熟悉互联网业务的大数据业务场景,在加入亚马逊云科技之前,在猎豹移动任职大数据高级运维工程师,有 10 多年的运维经验,深入理解云架构设计,对云上的运维,Devops,大数据解决方案有丰富的实践经验。

80aaf599dd0f0953c6a37c62c1ad0275.jpeg

郭立

于 2019 年加入亚马逊云科技,担任资深解决方案架构师和解决方案架构师经理,负责带领架构师团队支持战略客户和企业客户,同时为亚马逊云科技机器学习、数据分析与安全合规技术专家。

e85d5f1a053fe9fdbfee74a7e349a606.gif

aed04aae24e73cd9d36174c0eb6396d8.gif

听说,点完下面4个按钮

就不会碰到bug了!

841395235c7410a432074f08d40a0f8e.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/986661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小白备战大厂算法笔试(三)——栈、队列、双向队列

文章目录 栈栈常用操作栈的实现基于链表的实现基于数组的实现 两种实现对比栈典型应用 队列队列常用操作队列实现基于链表的实现基于数组的实现 队列典型应用 双向队列双向队列常用操作双向队列实现基于双向链表的实现基于数组的实现 双向队列应用 栈 栈是一种遵循先入后出的逻…

Java从入门到精通-流程控制(二)

习题讲解: 上次我们给大家留了一些流程控制的问题,这次给大家分析讲解一下: 条件语句练习: 1.编写Java程序,用于接受用户输入的数字,然后判断它是偶数还是奇数,并输出相应的消息。 import ja…

电表采集器是如何接线的?

随着社会的进步和科技的发展,智能化和自动化已经成为了各个行业的发展趋势。在电力系统领域,电表采集器的应用越来越广泛,它实现了电能数据的远程采集、传输和分析,为电力系统的稳定运行提供了重要的数据支持。那么,电…

广东成人高考报名将于9月14日开始!

截图来自广东省教育考试院官网* 今年的广东成人高考正式报名时间终于确定了! 报名时间:2023年 9 月14—20日 准考证打印时间:考前一周左右 考试时间:2023年10月21—22日 录取时间:2023年12 月中上旬 报名条件: …

恒运资本:存储市场有望触底反弹 电子竞技迎催化

昨日,沪指早盘震动下探,午后拉升翻红;深成指、创业板指跌幅收窄;到收盘,沪指涨0.12%报3158.08点,深成指跌0.24%报10515.21点,创业板指跌0.47%报2101.4点,科创50指数涨0.43%&#xff…

集成快递物流平台(快递100、快递鸟、闪送)连通多个应用

场景描述: 基于快递物流平台(快递100、快递鸟、闪送等)开放能力,无代码集成快递物流平台与多个应用互连互通。通过Aboter可搭建业务自动化流程,实现多个应用之间的数据连接。 连接器: 快递100快递鸟闪送…

容器编排学习(五)卷的概述与存储卷管理

一 卷 1 容器化带来的问题 容器中的文件在磁盘上是临时存放的,这给容器中运行的重要的应用程序带来一些问题 问题1:当容器崩溃或重启的时候,kubelet 会以干净的状态(镜像的状态)重启容器,容器内的历史数据会丢失 问题2&…

Mediasoup本地部署

一、环境 1、nodejs、npm、mac、ssh 注意:不能使用python3,请用自带的python 二、代码下载 1、mediasoup-demo 包含app(客户端)、server(服务端)、broadcasters(推流模块) git clone https://github.com/versatica/mediasoup-demo.git git checkout v3 2、me…

RC-u3 兰州拉面派餐系统--睿抗2023国赛

兰州拉面是著名美食,其煮面很有讲究,不同种类的面需要煮不同的时长。拉面馆的煮面师傅的规则很简单,只要手头有煮面篮子是空闲的,就把下一份客单指定的面放到空闲篮子里煮;如果空闲的篮子不止一个,那么先放…

无涯教程-JavaScript - BITLSHIFT函数

描述 BITLSHIFT函数返回一个左移指定位数的数字。 语法 BITLSHIFT (number, shift_amount)争论 Argument描述Required/OptionalnumberNumber must be an integer greater than or equal to 0.Requiredshift_amountShift_amount must be an integer.Required Notes 向左移动…

Zenlayer 软件定义网络平台赋能海底光缆服务

上海,2023年9月6日,一年一度的印尼电信国际大会——Batic在巴厘岛隆重举行。该盛会云集了亚太地区电信及相关行业的重要领导者,就“共塑亚太地区数字化未来”进行了深入探讨。Zenlayer作为该会议的黄金赞助商,宣布将在原有L2、L3网…

Science adv | 转录因子SPIC连接胚胎干细胞中的细胞代谢与表观调控

代谢是生化反应网络的结果,这些反应吸收营养物质并对其进行处理,以满足细胞的需求,包括能量产生和生物合成。反应的中间体被用作各种表观基因组修饰酶的底物和辅助因子,因此代谢与表观遗传密切相关。代谢结合表观遗传涉及疾病&…

【特殊文本文件——Properties和xml文件】

特殊文本文件 一、Properties 是一个Map集合(键值对集合),但是我们一般不会当集合用核心作用:Properties是用来代表属性文件的,通过Properties可以读写属性文件里的内容 1.使用Properties读取属性文件里的键值对数据…

基于51单片机烟雾温度检测报警系统设计

一、系统方案 本设计采用52单片机作为主控器,液晶1602显示,DS18B20采集温度,MQ2采集烟雾值,火焰传感器,按键设置报警,声光报警。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系…

MS-TTS:免费微软TTS语音合成工具(一键合成导出MP3音频)

声明 本工具是个免费工具,遇到问题,还请自行解决,下面有文字教程,B站有视频教程(链接在文章末尾); 其次,微软接口卡顿,连接超时等问题下方有详细说明,请仔细…

视频怎么制作动图?分享简单的视频制作gif方法

现在的人们常用视频来记录自己的生活,但是视频的体积都会比较大,保存传输非常的不方便。我们可以将视频制作成gif动图来使用,而且gif动图也能将自己的心情想表达的想法通过这种个性的方式展示给对方。接下来,就给大家分享一款视频…

雅思 四处刷题的记录(一)

目录 阅读 九分达人7 test2 p2 听力 剑18 test1 section 1 剑18 test1 section 2 《九分达人》6 test3 section 1 and section 2 阅读 《九分达人》7 test2 passage1 词汇 Travelling的含义 town跟介词在一起的搭配 什么情况下使用on 大作文写作思路 当我们要使…

Python自动化测试(超详细~)

1. 概述 1.1 python自动化 什么是python自动化?我理解的Python自动化测试就是把以前人为测试转化为机器测试的一种过程。自动化测试是一种比手工测试更快获得故障反馈的方法。 自动化测试是一种质量保障的方式,最重要的还是以做好一款高质量产品为前提…

商用柴油车J1939油耗管理及北斗TBOX在物流运输中的应用

随着电商的兴起,网上购物的用户越来越多,网购、直播带货、精品电商等,促进了大量的物品流动,原本在一定程度上,物流管理上还有一些小混乱,但是随着监管和政策调整,物流互联数字平台对于货物流动…

deepstream6.2部署yolov5详细教程与代码解读

文章目录 引言一.环境安装1、yolov5环境安装2、deepstream环境安装 二、源码文件说明三.wts与cfg生成1、获得wts与cfg2、修改wts 四.libnvdsinfer_custom_impl_Yolo.so库生成五.修改配置文件六.运行demo 引言 DeepStream 是使用开源 GStreamer 框架构建的优化图形架构&#xf…