AWS基于x86 vs Graviton3(ARM)的RDS MySQL性能对比(二)
这是一个云数据库性能的系列文章,包含了:
概述
在前篇中(参考),较为详细对比了Amazon RDS的x86和Graviton 2(AWS推出第二代ARM芯片)的性能。Graviton 3实例在今年的4月份支持了RDS数据库(参考)。本篇中,我们再系统的看看m7g实例(Graviton 3)、m6g实例(Graviton 2)、m5实例(Intel Xeon)、m6i实例(第三代Intel Xeon/Ice Lake)的RDS性能(包括性价比)表现如何。
测试结论
参考下图。整体上,在中低并发时,m6i实例(第三代Intel Xeon/Ice Lake)、m5实例(Intel Xeon)性能要比m7g实例(Graviton 3)、m6i实例(第三代Intel Xeon/Ice Lake)实例要略微高一些。即,低并发时,x86实例性能要高出约10%。
在超高并发的时候性能表现:m7g实例 > m6i实例 > m6g实例 ~ m5实例。在超高并发下,m7g、m6i实例表现出了非常强的扩展性和吞吐量,m7g实例吞吐量最高,甚至高出m6i实例10%;相比m6g、m5实例,m7g实例性能则要高出30%。
为了更加直观对比性价比,这里选取了16并发的性能进行对比。m7g实例在16并发下,tps为314,价格为$0.936/小时;m6i实例的tps为336,价格为$0.94/小时。所以,最终计算下来,m6i实例(x86)性价比要比m7g实例(Graviton 3)更高,高出约:6%。在超高并发时(128并发),m7g实例(Graviton 3)实例性价比才比m6i实例(x86)要更高,高出约:10%。不过,无论怎样,这与AWS宣称的Graviton实例性价比更高的结论是不一致的。

测试模型说明
这里使用了sysbench的读写混合模型(oltp_read_write)进行测试,单表大小为100万,共十个表,单次测试时长为300秒,分别测试了如下的并发度的性能表现:2、4、8、10、12、14、16、24、32。
实例配置与价格
这里关注db.m7g.xlarge、db.m6i.xlarge实例价格,m6g、m5实例的价格可以参考前篇。以东京地区、多可用区实例价格为参考:


实例配置与之前的测试保持一致。选择了较为常用4c16gb的实例进行测试,各个选项尽量选择默认选项,以更加接近的模拟用户实际场景,具体的,版本是AWS多可用区版、存储默认加密、gp3存储、100GB空间、3000 IOPS、Performance Insight也默认开启。
详细的测试数据参考
AWS RDS Graviton 3( db.m7g.xlarge / gp3 / 100gb / 3000iops )
threads|transactions| queries| time |avg/Latency|95%/Latency2| 10847| 216940|300.04| 55.32| 127.814| 25897| 517940|300.00| 46.34| 51.948| 49010| 980200|300.05| 48.97| 55.8216| 94335| 1886700|300.05| 50.89| 58.9224| 141987| 2839740|300.05| 50.71| 59.9932| 185996| 3719920|300.05| 51.62| 62.1948| 268264| 5365280|300.05| 53.68| 68.0564| 341468| 6829360|300.06| 56.23| 74.4696| 446113| 8922260|300.06| 64.56| 92.42128| 491663| 9833260|300.09| 78.11| 121.0
AWS RDS x86(第三代Intel Xeon/Ice Lake)(db.m6i.xlarge/gp3/100gb/3000iops)
threads|transactions| queries| time |avg/Latency|95%/Latency2| 13281| 265620|300.02| 45.18| 112.674| 29635| 592700|300.04| 40.49| 47.478| 53875| 1077500|300.04| 44.55| 53.8516| 100785| 2015700|300.07| 47.63| 57.8724| 150515| 3010300|300.04| 47.84| 59.9932| 193195| 3863900|300.05| 49.69| 63.3248| 273454| 5469080|300.08| 52.67| 69.2964| 343939| 6878780|300.05| 55.83| 75.8296| 408551| 8171020|300.09| 70.50| 99.33128| 438708| 8774160|300.06| 87.54| 123.28
小结
经过较为详细的测试,可以看到,在RDS数据库的场景下,无论是第二代自研芯片Graviton2,还是第三代Graviton3,相比于x86芯片在性价比上并没有特别明显的优势。在更加常见的低并发的场景下,x86实例的性价比依旧是更高的。在超高并发时,Graviton3实例虽然表现出了一些性价比优势,但是,如此高的并发,其实在实际应用中,并不常见。
另外,第三代Graviton3相比第二代Graviton2的性能提升也是非常明显,大概有10~40%的性能提升。
当然,这应该也是符合预期的结论,毕竟在大原则上,处理复杂的负载x86芯片应该更有优势;对简单的场景、更低功耗的场景,Graviton(ARM)芯片是更有优势的。对于数据库来说,涉及到事务处理、磁盘IO、大量的比较判断等,还是比较复杂的。不过,依旧期待未来,Graviton做更多的适配与正对性的优化,以获得更高的性价比,从而降低最终降低使用RDS的成本。
参考
* Amazon RDS now supports M7g and R7g database instances@2023年4月
* AWS Graviton Processors
* Achieve up to 52% better price/performance with * Amazon RDS using new Graviton2 instances
* AWS Graviton – Wikipedia
关于作者:orczhou,云数据库技术专家,NineData联合创始人,Oracle ACE(MySQL),《高性能MySQL》第三、四版译者,曾任阿里云数据库资深专家。