本问是一个系列文章的一部分,该系列较为完整的对各个云厂商的RDS MySQL进行了测试,包括了阿里云、腾讯云、华为云、百度云、AWS、Azure、GCP、Oracle Cloud等,更多参考:云数据库RDS MySQL的性能。
这是一个云数据库性能的系列文章,包含了:
- 阿里云RDS标准版(x86) vs 经济版(ARM)性能对比
- 华为云RDS通用型(x86) vs 鲲鹏(ARM)架构的性能对比
- AWS基于x86 vs Graviton(ARM)的RDS MySQL性能对比
- AWS基于x86 vs Graviton(ARM)的RDS MySQL性能对比(二)
在前篇中(参考),较为详细的对比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 16 24 32 48 64 96 128
。
实例配置与价格
这里关注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%/Latency
2| 10847| 216940|300.04| 55.32| 127.81
4| 25897| 517940|300.00| 46.34| 51.94
8| 49010| 980200|300.05| 48.97| 55.82
16| 94335| 1886700|300.05| 50.89| 58.92
24| 141987| 2839740|300.05| 50.71| 59.99
32| 185996| 3719920|300.05| 51.62| 62.19
48| 268264| 5365280|300.05| 53.68| 68.05
64| 341468| 6829360|300.06| 56.23| 74.46
96| 446113| 8922260|300.06| 64.56| 92.42
128| 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%/Latency
2| 13281| 265620|300.02| 45.18| 112.67
4| 29635| 592700|300.04| 40.49| 47.47
8| 53875| 1077500|300.04| 44.55| 53.85
16| 100785| 2015700|300.07| 47.63| 57.87
24| 150515| 3010300|300.04| 47.84| 59.99
32| 193195| 3863900|300.05| 49.69| 63.32
48| 273454| 5469080|300.08| 52.67| 69.29
64| 343939| 6878780|300.05| 55.83| 75.82
96| 408551| 8171020|300.09| 70.50| 99.33
128| 438708| 8774160|300.06| 87.54| 123.28
小结
经过较为详细的测试,可以看到,在RDS数据库的场景下,无论是第二代自研芯片Graviton2,还是第三代Graviton3,相比于x86芯片在性价比上并没有特别明显的优势。而在更加常见的低并发的场景下,x86实例的性价比依旧是更高的。在超高并发时,Graviton3实例虽然表现出了一些性价比优势,但是,如此高的并发,其实在实际应用中,并不常见。
另外,第三代Graviton3相比第二代Graviton2的性能提升也是非常明显,大概有10~40%的性能提升。
当然,这应该也是符合预期的结论,毕竟在大原则上,处理复杂的负载x86芯片应该更有优势;对简单的场景、更低功耗的场景,Graviton(ARM)芯片是更有优势的。对于数据库来说,涉及到事务处理、磁盘IO、大量的比较判断等,还是比较复杂的。不过,依旧期待未来,Graviton做更多的适配与正对性的优化,以获得更高的性价比,从而降低最终降低使用RDS的成本。
Leave a Reply