云数据库RDS MySQL性能测试与对比@2024年09月

news2024/11/16 23:30:07

原创:orczhou@ninedata

来源:云数据库技术

在不同的云厂商购买相同规格的MySQL实例(如4vCPU-16GB),获得的性能相同吗,他们的差异如何?本文继续尝试回答这个问题。

图片

详细数据:

图片

测试结果概述

在本次测试中:阿里云RDS MySQL性能表现最好,极限的QPS达到了4万;其次是腾讯云,达到了3.2万;第二梯队是华为云、百度云和AWS,极限的QPS约2.2万;之后是Azure、Google云,极限QPS约1.2万;最后是Oracle云,极限QPS约8500。详细的数据和趋势图,可以参考以上的图、表,这里不再详述。

本次测试新增了“单位CPU计算能力”、“单位CPU上的Sysbench QPS”等数值,可以更好得帮助开发者理解这些性能表现后的原因。

“单位CPU计算能力”提供的Sysbench QPS

“单位CPU上的Sysbench QPS”(Sysbench QPS per CPU Capacity Unit),很大程度上展现了各个厂商在该测试模型下,对MySQL内核性能优化的效果如何。

本次测试中,新增了“CPU计算能力指标”,参考上图的“cpu_capacity”数据。“CPU计算能力指标”,表示该实例的CPU,在较高并发(等于或超过CPU核数/超线程)情况下,每秒能够完成多少万次简单的散列计算。例如阿里云的“CPU计算能力指标”是80.4,则表示该CPU平均每秒能够完成80.4万次简单字符串散列计算。

有了这个指标,我们可以对上述的性能指标再进行一次深入的观察:

图片

首先,可以直观的看到,每个云厂商,提供的该标准规格下CPU资源具体为多少。这也就是上图中蓝色的柱状图。例如,这里的阿里云RDS MySQL的“CPU计算能力”为80.4,腾讯云为93.3,华为云为163.6。可以看到,各个云厂商对于“相同”(4c16g)的实例,提供了不同的CPU计算能力。而这些计算能力也在各个RDS MySQL的Sysbench QPS中有所表现。

更加深入的,还可以观察到每个云厂商在“单位CPU计算能力”所能够提供的Sysbench QPS。这里,对“单位CPU计算能力”定义是:在MySQL中“一万次简单散列”的计算资源。上图中的红色柱状图,即表示“单位CPU计算能力”所能够提供的Sysbench QPS。

因为该指标不再关注绝对CPU表现下的Sysbench QPS,所以,该指标可以反映各个厂商在该测试模型下,对MySQL内核性能优化的效果如何。

当然,对于开发者选择RDS MySQL来说,有时候只关注绝对Sysbench QPS就可以了。

还需要注意的是,因为各个云厂商的架构、性能参数等各不相同,所以,在做对比的时候,需要考虑这些因素。例如,百度的RDS MySQL的sync_binlog参数是1000,其他厂商都是1;再比如,AWS RDS MySQL使用的存储同步复制,所以默认情况下,Binlog甚至是关闭的(准确的说,应该是与automated backups是否开启有关)。

关于该测试

在上一次测试:《全球八大云厂商,谁的RDS MySQL性能最强?》中详细的描述了如下问题:

  • 如何重现该测试:测试工具与参数

  • 该测试中如何选择各个云厂商的4vCPU 16GB的实例:实例规格的选择

  • 关于该测试的限制

本次测试这些内容并没有改变,这里不再赘述。

阿里云 RDS MySQL

本次测试了杭州、北京两个地区RDS MySQL,两个地区的实例性能相差比较明显:4万 vs 3.2万。并且,本次测试性能相比于之前的测试,性能增长明显。从这里的观察来看:

  • CPU计算能力提升明显

  • 默认情况下关闭了performance_schema

  • 开启或优化了thread_pool ,注意到,thread_pool_size参数发生了变化

图片

图片

腾讯云 TencentDB for MySQL

本次仅测试了腾讯云北京、独享实例,整体的性能表现依旧非常好。纵向的,与5月份的测试对比,性能较为稳定,没有太大的波动。值得注意的是,相比于之前(202405上海区域),本次测试腾讯云的实例使用了更少的“CPU计算能力”,但依旧获得了与之前测试较为接近的性能表现。

图片

图片

华为云 RDS MySQL

本次测试华为云表现稳定,与之前的测试表现非常接近:性能数据接近,版本几乎相同(build号从“8.0.28-231002”升为了“8.0.28-231003”),所提供的CPU计算能力也几乎相同。注意到,华为云RDS MySQL一直是所有云厂商,所提供的计算能力最高的厂商。似乎,是这样,别的云厂商的的4c16g通常是,4个超线程,而华为云似乎真的是提供了4个核(cores)。

图片

百度云 RDS MySQL

百度云RDS提供非常稳定的性能。如下图数据所示,四次测试,整体的性能表现非常稳定,地域差异也比较小。

图片

亚马逊Amazon RDS MySQL

AWS是所有云厂商中,性能管理做的最好的,对于不同代际的CPU在实例代码层面能够直接看到。可以看到,其性能整体上较为稳定,但本次进行两次测试,相比之前要更低一些,从配置和CPU计算能力指标来看,并没有明显差别。

图片

微软Azure Database for MySQL

Azure的实例有着很多厂商类似的CPU代差导致的性能波动问题,在202409的测试中CPU计算能力指标为56.3,相比202405表现的63.9,也下降了12%,Azure Database for MySQL的Sysbench QPS性能也随之下降。

图片

谷歌云上的Cloud SQL Enterprise

Google云的MySQL托管服务在最近两年里做了非常多的增强,一方面推出了AlloyDB,托管MySQL也推出了Enterprise Plus版本。性能上,202409的测试中,与202405的测试性能并没有太大的差异;此外,它的Enterprise Plus版本的性能提升也非常明显,有着更多的CPU计算性能,也有着更多的内存资源。

图片

Oracle Cloud上的HeatWave MySQL

MySQL是属于Oracle的,Oracle也一直在持续投入发展MySQL数据库与社区的建设。Oracle Cloud是最早推出MySQL 8.4、MySQL 9.0的云厂商,这次也一并测试这两个最新版本在Oracle Cloud上的表现。

可以看到,整个上各个版本在该测试模型下表现较为一致。仅8.4.0(也就是8.4的第一个版本)在超高并发下,性能有明显退化,而该问题也在最新的8.4.2修复了。

图片

最后

该测试很好的展示了不同云厂商之间RDS MySQL性能差异,甚至在同一个云厂商的不同区域,甚至在同一个云厂商的同一区域不同时间建立的实例,其性能都可能会有一定的差异。理解了这些,当我们需要在多云之间进行迁移或变更区域时,可以更好地进行数据库的容量规划。

关于作者:orczhou@ninedata,NineData的联合创始人 & 技术副总裁、Oracle ACE,<高性能MySQL>第三/四版译者。作者的个人公众号:orczhou

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

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

相关文章

常见的TTL,RS232,RS485,IIC,SPI,UART之间的联系和区别

简单总结 图片来源 RS232,RS485可参考&#xff0c;IIC&#xff0c;SPI,UART可参考 烧录程序中常听到的一句话就是USB转TTL&#xff0c;但严格来说算是USB传输数据的协议转换成TTL&#xff08;Transistor-Transistor Logic&#xff09;协议传输数据。首先&#xff0c;usb是常见…

电脑资料被拷贝了,能查出来吗?5个方法有效防止电脑泄密!

网络快速发展的背景下&#xff0c;电脑资料的安全问题日益凸显。 一旦电脑资料被非法拷贝&#xff0c;不仅可能导致企业核心机密泄露&#xff0c;还可能对个人隐私造成严重影响。 那么&#xff0c;当电脑资料被拷贝时&#xff0c;我们能否查出来&#xff1f;又该如何有效防止…

【Python】必学!教你如何在日志中隐藏明文密码?看完包会的!(附带免费源码)

前言 在项目开发中&#xff0c;有的时候会遇到一些安全需求&#xff0c;用以提升程序整体的安全性&#xff0c;提高外来非法攻击的门槛&#xff0c;而在日志中隐藏明文密码打印便是最典型的安全需求之一。 在Python中&#xff0c;明文密码往往发生于命令执行参数、debug日志、…

施耐德EcoStruxure Machine SCADA Expert(EMSE)数据监测(十八)

通过EMSE与sql数据库连接,可以实现一些过程数据的监测、存档,实现生产过程的可视化。 1.创建sql数据库表单 新建一个名为Table_Monitor的表单,添加三个元素:Re_Index 序号;Re_Date 时间;Re_Temper 温度(需要监测的数据) 2.EMSE内关联变量 2.1 先创建网格 2.2 选择数据…

unity CustomEditor的基本使用

CustomEditor用来自定义脚本的编辑面板 其基本使用方式 先准备一个类&#xff0c;继承MonoBehaviour 定义一个变量&#xff0c;然后准备一个类&#xff0c;继承自Editor 在CustomEditor中指定要去修改的类型&#xff0c;通过serializedObject.FindProperty(变量名)的方式来获…

Ubuntu下安装向日葵:闪退

下载 https://sunlogin.oray.com/download 初次安装 $ sudo dpkg -i SunloginClient_15.2.0.63064_amd64.deb 正在选中未选择的软件包 sunloginclient。 (正在读取数据库 ... 系统当前共安装有 234281 个文件和目录。) 准备解压 SunloginClient_15.2.0.63064_amd64.deb ..…

Java.动态代理

1.创建一个接口 package Mydynamicproxy1;public interface Star {public abstract String sing(String str);public abstract void dance(String str); }2.创建一个BigStar类&#xff0c;要实现Star这个接口 package Mydynamicproxy1;public class BigStar implements Star{…

甘肃非遗文化网站:Spring Boot开发实战

3 系统分析 当用户确定开发一款程序时&#xff0c;是需要遵循下面的顺序进行工作&#xff0c;概括为&#xff1a;系统分析–>系统设计–>系统开发–>系统测试&#xff0c;无论这个过程是否有变更或者迭代&#xff0c;都是按照这样的顺序开展工作的。系统分析就是分析系…

Java EE中的编码问题及解决方案

Java EE中的编码问题及解决方案 在Java EE开发中&#xff0c;处理字符编码是确保数据正确传输和显示的重要环节。不同的编码不一致会导致乱码&#xff0c;影响用户体验。本文将总结在Java EE中可能遇到的编码问题及其解决方案。 1. 输入数据编码问题 在表单提交时&#xff0c…

【中级通信工程师】终端与业务(三):电信业务

【零基础3天通关中级通信工程师】 终端与业务(三)&#xff1a;电信业务 本文是中级通信工程师考试《终端与业务》科目第三章《电信业务》的复习资料和真题汇总。终端与业务是通信考试里最简单的科目&#xff0c;有效复习通过率可达90%以上&#xff0c;本文结合了高频考点和近几…

代码随想录算法训练营第十六天|512.找树左下角的值 112. 路径总和 113. 路径总和ii 106.从中序与后序遍历序列构造二叉树

512.找树左下角的值 给定一个二叉树&#xff0c;在树的最后一行找到最左边的值。 示例 1: 示例 2: 思路&#xff1a; 递归三部曲&#xff1a; 参数和返回值&#xff1a;传入节点是参数&#xff0c;返回值是最终值int终止条件&#xff1a;遇到空节点直接返回&#xff0c;或者…

SD2.0 Specification之写保护

文章目录 1 机械开关写保护&#xff08;由主机负责实现效果&#xff09;2 卡内部写保护&#xff08;由卡负责实现&#xff09;3 密码写保护 本文章主要讲解关于SD2.0写保护功能的内容&#xff0c;基础概念和其它内容请参考以下文章。 SD2.0 Specification简述 SD卡支持3种写保护…

论文阅读《Co-clustering for Federated Recommender System》

论文概况 本文是2024 WWW的一篇联邦推荐论文&#xff0c;提出了一个基于特定类别物品相似度来进行聚类的联邦推荐框架。 Introduction 分析了经典聚类技术KMeans在联邦推荐设置中的不足&#xff0c;提出了一种新的共聚类联邦推荐机制CoFedRec&#xff0c;该机制在每个通信回合…

华为NAT ALG技术的实现

双向NAT技术&#xff1a;经过防火墙的2报文源IP地址和目的IP地址都同时被转换&#xff0c;外网发送报文给内网服务器&#xff0c;先转换目的IP地址&#xff0c;然后符合安全策略后&#xff0c;在替换源IP地址&#xff0c;然后将记录写入防火墙会话表&#xff0c;并发送出报文&a…

结构化知识抽取案例

假设我们有一个包含中文电影信息的数据库表 movies&#xff0c;其中包含以下字段&#xff1a; movie_id (电影ID)title (电影标题)year (上映年份)genre (类型)director (导演)rating (评分) 表中的部分数据如下&#xff1a; 知识抽取步骤 数据获取&#xff1a;从数据库中查…

WAF,全称Web Application Firewall,好用WAF推荐

WAF&#xff0c;全称Web Application Firewall&#xff0c;即Web应用防火墙&#xff0c;是一种网络安全设备&#xff0c;旨在保护Web应用程序免受各种Web攻击&#xff0c;如SQL注入、跨站脚本&#xff08;XSS&#xff09;、跨站请求伪造&#xff08;CSRF&#xff09;等。 WAF通…

第166天:应急响应-拒绝服务钓鱼指南DDOS压力测试邮件反制分析应用日志

案例一&#xff1a;内网应急-日志分析-爆破&横向&数据库 数据库 这里不同数据库日志不一样&#xff0c;我用mysql分析 首先MySQL数据库需要支持远程连接 GRANT ALL PRIVILEGES ON . TO root% IDENTIFIED BY 123.com WITH GRANT OPTION; 其次开启日志 -- 查看general…

Qt_线程介绍与使用

目录 1、QThread常用API 2、Qt线程安全 3、使用线程QThread 4、connect函数的第五个参数 5、Qt互斥锁 5.1 QMutexLocker 6、条件变量 7、信号量 结语 前言&#xff1a; 线程是应用程序开发非常重要的概念&#xff0c;在Qt中&#xff0c;用QThread类来实现多线程&a…

Spring项目中的统一结果返回

本文介绍的是通过Spring提供的接口进行结果统一封装&#xff0c;指的是成功返回的结果&#xff0c;不包含异常或者错误情况&#xff08;这一块移步到统一异常处理&#xff09;。另一种统一结果返回的方式&#xff0c;就是手动让每个接口的返回中类型都相同&#xff0c;这种方法…

ant design vue组件中table组件设置分组头部和固定总结栏

问题&#xff1a;遇到了个需求&#xff0c;不仅要设置分组的头部&#xff0c;还要在顶部有个统计总和的栏。 分组表头的配置主要是这个&#xff0c;就是套娃原理&#xff0c;不需要展示数据的直接写个title就行&#xff0c;需要展示数据的字段才需要详细的配置属性。 const co…