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》第三、四版译者,曾任阿里云数据库资深专家。