本问是一个系列文章的一部分,该系列较为完整的对各个云厂商的RDS MySQL进行了测试,包括了阿里云、腾讯云、华为云、百度云、AWS、Azure、GCP、Oracle Cloud等,更多参考:云数据库RDS MySQL的性能。
在不同的云厂商,购买相同规格的MySQL实例(如4vCPU-16GB),获得的性能相同吗?
为了回答上面的疑问,于是就开启了我的数据库性能测试之旅。这是第二次测试,上一次是在2023年12月(参考:云数据库(RDS MySQL)性能深度测评与对比)。
QPS详细数据:
theads/qps | Aliyun_HZ | AWS | Azure | Baidu | GCP | Huawei | Oracle | Tencent |
---|---|---|---|---|---|---|---|---|
4 | 4649 | 3607 | 1716 | 2157 | 1428 | 2623 | 3773 | 5783 |
8 | 7509 | 6821 | 3050 | 4041 | 2551 | 4770 | 5557 | 10157 |
16 | 10951 | 12470 | 5579 | 7041 | 4686 | 8694 | 8403 | 16557 |
32 | 13586 | 18022 | 9352 | 11816 | 8042 | 14192 | 8166 | 22970 |
48 | 15312 | 21092 | 12148 | 16049 | 10017 | 17621 | 8009 | 26083 |
64 | 15831 | 22540 | 13516 | 18554 | 10837 | 19927 | 7901 | 27886 |
96 | 16565 | 24937 | 14672 | 20378 | 11622 | 20555 | 8092 | 30337 |
128 | 16996 | 25214 | 15210 | 20135 | 12112 | 20151 | 8089 | 31355 |
192 | 17387 | 25296 | 15498 | 20915 | 12027 | 20648 | 7865 | 32323 |
256 | 17501 | 25390 | 15419 | 21098 | 12403 | 21796 | 7851 | 32582 |
384 | 17494 | 25313 | 15487 | 21131 | 12361 | 22957 | 7804 | 32803 |
512 | 18120 | 24975 | 15582 | 21204 | 12379 | 23177 | 7958 | 32962 |
95%延迟详细数据(单位:ms):
theads/latency_95 | Aliyun_HZ | AWS | Azure | Baidu | GCP | Huawei | Oracle | Tencent |
---|---|---|---|---|---|---|---|---|
4 | 21.11 | 22.28 | 49.21 | 41.85 | 69.29 | 33.72 | 21.89 | 15.83 |
8 | 25.74 | 23.52 | 54.83 | 45.79 | 87.56 | 37.56 | 31.37 | 18.61 |
16 | 36.24 | 29.19 | 61.08 | 53.85 | 99.33 | 41.1 | 38.25 | 24.38 |
32 | 70.55 | 41.85 | 75.82 | 68.05 | 112.67 | 51.02 | 82.96 | 35.59 |
48 | 104.84 | 53.85 | 89.16 | 77.19 | 142.39 | 62.19 | 350.33 | 44.98 |
64 | 144.97 | 68.05 | 110.66 | 90.78 | 173.58 | 73.13 | 427.07 | 54.83 |
96 | 193.38 | 97.55 | 167.44 | 123.28 | 223.34 | 137.35 | 601.29 | 73.13 |
128 | 244.38 | 130.13 | 223.34 | 161.51 | 277.21 | 176.73 | 590.56 | 92.42 |
192 | 314.45 | 186.54 | 350.33 | 227.4 | 411.96 | 253.35 | 773.68 | 134.9 |
256 | 383.33 | 244.38 | 502.2 | 297.92 | 530.08 | 363.18 | 1032.01 | 176.73 |
384 | 539.71 | 369.77 | 787.74 | 434.83 | 773.68 | 475.79 | 3982.86 | 287.38 |
512 | 657.93 | 502.2 | 1069.86 | 569.67 | 1032.01 | 549.52 | 5033.35 | 450.77 |
重现该测试包含了两个方面,一个是测试工具与主要参数,另一个是测试实例的选择。
该测试选择了模型简单、易于重现的Sysbench(oltp_read_write),其主要参数包括:
--time=300
--table_size=10000
--tables=10
--skip_trx=on --db-ps-mode=disable
--rand-type=uniform
4,8,16,32,48,64,96,128,192,256,384,512
测试参考命令:
sysbench oltp_read_write --threads=$conthread --time=$run_time \
--report-interval=3 --percentile=95 --histogram=on --db-driver=mysql \
$sysb_mysql_conn \
--skip_trx=on --db-ps-mode=disable --rand-type=uniform $ssl_param \
--table_size=$table_size --tables=$tables run >> $run_file 2>&1
这里选取了阿里云、华为云、腾讯云、AWS、Azure、Oracle Cloud、Google Cloud的托管MySQL服务(RDS MySQL)作为测试对象。测试实例实例规格满足如下条件:
具体每个云厂商的标准规格选择,参考本文后续各个云厂商对应小结部分。
30%
;并且,再测试了杭州、上海两个区域之后,也观察到了较为一致的性能表现。本次测试,腾讯云表现出了异常高的性能,并且在北京、上海两个区域,都重现了这一性能表现。
规格说明
另外,这里也额外再测试了一次独享、共享规格的差异。整体上,也如预期,共享规格有这个更好性能。
本次测试中,Amazon RDS表现出了非常好的性能,整体上性能排名第二。该性能表现,也在东京和香港两个区域做了验证,两个地区与实例的性能表现较为接近,可以认为Amazon有着较为一致的性能表现。
规格说明
在本次测试中,华为性能位居第三。相比于第一次的测试,被腾讯云、AWS超过。
本次也额外的对华为云Kunpeng(ARM)实例进行测试,其性能约为Intel规格的40%~70%;如果需要使用国产架构,则可能要考虑其在性能上的让渡。
规格说明
这次百度云RDS性能也非常不错,是第四名,与第三名的华为云非常接近。在北京地区的实例,做了两次测试,之后,在广州地区也做了一次测试,整体上差异较小:
规格说明
其他:选择百度云的时候,也注意到了,目前在百度云上提供的8个区域,很多的区域都只有一个可用区可以选择(例如上海)。这也是云厂商早期发展过程中的阶段,当客户量不是很大的时候,新开区域投入成本会很大,这是一个随着客户量逐渐增长,区域才能逐渐丰富的阶段。
阿里云是国内最为成熟的云厂商,发展历史更长,产品更加丰富,产品可定制化程度也很高。但,这也带来的另一个问题:各区域历史机型管理较为复杂。在本次测试中,阿里云杭州地区的性能有所提高(相比于第一次测试),但不同区域性能不一致的情况依旧较为明显。
规格说明
这次测试了Azure上的intel和amd两款CPU上的MySQL数据库,规格依旧选择了与上次相同的4c/16gb/100gb。在性能上,intel略高于amd规格,如下:
规格说明
在谷歌云上,Cloud SQL有两个版本选择,Enterprise、Enterprise Plus版本,本次选择了Enterprise做为标准规格,与其他云厂商进行对比。
Enterprise Plus版本通过使用更新的机型,以及更高效的存储效率,从而提升数据库的性能。关于两个版本差异可以参考:Google Cloud SQL for MySQL的”Enterprise”和”Enterprise Plus”版本。本次对Enterprise和Enterprise Plus版本进行了一个性能对比,Enterprise Plus版本又分为开启data cache
与关闭data cache
这个场景:
规格说明
可以看到:
这是首次测试Oracle Cloud,所以也对Oracle Cloud上的MySQL做了比较细致的测试,包括amd/intel规格,OCPU和ECPU规格等:
规格说明
这是第二次系统的对各个云厂商的数据库进行测试。相比与第一次测试(参考),做了如下的调整:
2,4,8,16,24,32,48,64,96,128
调整为4,8,16,32,48,64,96,128,192,256,384,512
--skip_trx=on --db-ps-mode=disable
--rand-type=uniform
本问是一个系列文章的一部分,该系列较为完整的对各个云厂商的RDS MySQL进行了测试,包括了阿里云、腾讯云、华为云、百度云、AWS、Azure、GCP、Oracle Cloud等,更多参考:云数据库RDS MySQL的性能。