阿里云RDS标准版(x86) vs 经济版(ARM)性能对比

2023-11-29 18:45

本文主要是介绍阿里云RDS标准版(x86) vs 经济版(ARM)性能对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

阿里云数据库在去年云栖大会上发布了基于阿里倚天芯片(ARM架构)的RDS实例,后正式命名为经济版。本文通过标准的sysbench测试,来看看相比与标准版,经济版是否更加“经济”,以帮助开发者选择适合自己的规格。

这里选择了用户较为常用的4c16g的规格进行测试,测试工具使用了sysbench的oltp_read_write模型进行测试。配置参数与选项,均尽量使用RDS购买过程中的默认选项,以给出更加接近用户使用时的配置。具体的,使用了默认的“高性能参数模板”、使用了ESSD PL1存储,选择了默认的8.0实例。

结论

在如上的默认配置中,分别使用了2、4、8、10、12、14、16、24、32个并发线程进行测试。整体上,经济版(ARM)实例性能相比x86版要低约4%,延迟要高约4%价格上,该规格经济版(ARM)相比标准版(x86)要低约36%使用阿里云RDS经济版(ARM)性价比确实更高,相比标准版(x86)性价比要高出32%

具体的,这里我们选取16并发为性能基准参考,那么,对应的经济版TPS为2185,标准版的TPS为2324。价格上,该规格经济版价格为1.61元/时,标准版价格为2.52元/时,那么对应每1000个TPS的价格分别为:0.74元与1.08元。从性价比的角度来看,经济版提升了31.5%。

下图展示了完整的测试数据,在另一方面,也可以看到x86版本在性能、延迟上依旧有一定的优势,如果追求更极限的性能,以及更好的稳定性,则建议使用x86版本。

图片

所以,经济版(ARM)RDS还是非常值得一试。

测试方法说明

这里使用了sysbench的读写混合模型(oltp_read_write)进行测试,单表大小为100万,共十个表,单次测试时长为300秒,分别测试了如下的并发度的性能表现:2、4、8、10、12、14、16、24、32。

测试使用的RDS为4c16g的高可用系列、“通用”规格、磁盘使用ESSD PL1/100GB云盘、双可用区、MySQL 8.0、默认被选中的“高性能参数”模板的实例。测试的ECS使用8c8g规格,测试的ECS也在同一个可用区,所以,也注意到,RDS表现的Latency整体是非常低的。

规格与价格明细

图片

详细测试数据参考

RDS经济版(ARM)4c16g通用型实例的测试详细结果如下:

threads|transactions| queries| time |avg/Latency|95%/Latency      2|      115305| 2306100|300.01|       5.20|       5.99      4|      225711| 4514220|300.01|       5.32|       6.09      8|      425336| 8506720|300.01|       5.64|       6.91     10|      518460|10369200|300.01|       5.78|       7.17     12|      604286|12085720|300.01|       5.96|       7.70     14|      634556|12691120|300.01|       6.62|      13.22     16|      655665|13113300|300.01|       7.32|      21.89     24|      628932|12578640|300.01|      11.45|      45.79     32|      628452|12569040|300.03|      15.27|      57.87

RDS 标准版(x86)4c16g实例的测试详细结果如下:

threads|transactions| queries| time |avg/Latency|95%/Latency      2|      113699| 2273980|300.01|       5.28|       5.57      4|      228466| 4569320|300.01|       5.25|       5.57      8|      439913| 8798260|300.01|       5.45|       5.77     10|      540436|10808720|300.01|       5.55|       5.88     12|      629480|12589600|300.01|       5.72|       6.09     14|      710254|14205080|300.01|       5.91|       7.30     16|      697323|13946460|300.01|       6.88|      18.61     24|      661203|13224060|300.01|      10.89|      47.47     32|      656784|13135680|300.01|      14.61|      58.92

限制与说明

真实的场景会更加复杂一些,需要考虑的因素更多,例如数据库的场景模型、不同的参数模板、不同的磁盘性能(ESSD PL1/2/3)、不同世代的CPU、不同规格(“通用”、“独享”)、价格折扣等。本文尝试通过测试一个常用规格的、常用配置,给开发者一个直观的性能的感受,以帮助开发者选择合适的、更具性价比的数据库规格与类型。

小结

阿里云RDS的经济型(ARM版)正式商业化已经有一年时间,从实测来看,相比x86版本有着非常明显的性价比优势,相同规格性能损失约5%的情况下,价格有35%的下降,是非常适合开发测试环境,以及小范围在生产环境尝试使用的。

最后,这将是一个系列的文章,后续还将考虑对比华为云、AWS的ARM实例与x86实例的性能,以帮助开发者选择更具性价比,更适合自己的数据库架构与规格。

关于作者:orczhou,NineData联合创始人,Oracle ACE(MySQL),《高性能MySQL》第三、四版译者,曾任阿里云数据库资深专家。

这篇关于阿里云RDS标准版(x86) vs 经济版(ARM)性能对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/433917

相关文章

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数