在不同的云厂商,购买相同规格的 MySQL 实例,获得的性能相同吗?本文使用 Sysybench,对不同云厂商的同样规格“4vCPU-16GB”进行性能测试来尝试回答上述问题。
Sysbench QPS 详细数据
| data | aliyun | aws | azure | baidu | huawei | oracle | tencent | |
|---|---|---|---|---|---|---|---|---|
| 4 | 6934 | 3365 | 1615 | 2164 | 1449 | 2351 | 3701 | 6439 | 
| 8 | 9842 | 6685 | 3018 | 4079 | 2832 | 4284 | 6387 | 11999 | 
| 16 | 15597 | 13028 | 5511 | 7360 | 4767 | 7626 | 10120 | 19864 | 
| 32 | 23331 | 22766 | 9761 | 12633 | 7333 | 13282 | 11355 | 29928 | 
| 48 | 26740 | 26362 | 12245 | 16442 | 9780 | 17030 | 11601 | 32940 | 
| 64 | 29284 | 28181 | 13261 | 19505 | 11144 | 19441 | 12557 | 34154 | 
| 96 | 31033 | 30829 | 14418 | 22066 | 11166 | 19805 | 12282 | 33711 | 
| 128 | 31450 | 32467 | 15066 | 22912 | 11191 | 19826 | 13030 | 32735 | 
| 192 | 32287 | 32558 | 15314 | 23386 | 11244 | 20453 | 12677 | 35476 | 
| 256 | 31571 | 31954 | 15470 | 23291 | 10963 | 21489 | 12910 | 36917 | 
| 384 | 31419 | 32047 | 15892 | 23045 | 11212 | 22894 | 13242 | 37473 | 
| 512 | 31382 | 32221 | 15978 | 22987 | 11399 | 22750 | 12643 | 37992 | 
Latency (Event) 详细数据
如下表格分别为:平均延迟 和 95%延迟数据。单位为:毫秒/ms。
| data | aliyun | aws | azure | baidu | huawei | oracle | tencent | |
|---|---|---|---|---|---|---|---|---|
| 4 | 10.38 | 21.39 | 44.56 | 33.26 | 49.68 | 30.62 | 19.49 | 11.18 | 
| 8 | 14.63 | 21.54 | 47.71 | 35.30 | 50.83 | 33.61 | 22.54 | 12.00 | 
| 16 | 18.46 | 22.10 | 52.25 | 39.13 | 60.41 | 37.76 | 28.46 | 14.50 | 
| 32 | 24.69 | 25.30 | 59.00 | 45.59 | 78.53 | 43.36 | 50.72 | 19.24 | 
| 48 | 32.31 | 32.77 | 70.55 | 52.54 | 88.32 | 50.73 | 74.46 | 26.23 | 
| 64 | 39.34 | 40.87 | 86.86 | 59.05 | 103.34 | 59.25 | 91.73 | 33.73 | 
| 96 | 55.68 | 56.04 | 119.82 | 78.30 | 154.70 | 87.24 | 140.65 | 51.24 | 
| 128 | 73.25 | 70.95 | 152.89 | 100.54 | 205.82 | 116.19 | 176.76 | 70.37 | 
| 192 | 107.02 | 106.13 | 225.58 | 147.74 | 307.27 | 168.93 | 272.55 | 97.40 | 
| 256 | 145.92 | 144.17 | 297.73 | 197.78 | 420.05 | 214.36 | 356.72 | 124.79 | 
| 384 | 219.91 | 215.58 | 434.67 | 299.81 | 615.95 | 301.73 | 521.43 | 184.41 | 
| 512 | 293.55 | 285.85 | 576.35 | 400.66 | 807.65 | 404.86 | 727.98 | 242.43 | 
| data | aliyun | aws | azure | baidu | huawei | oracle | tencent | |
|---|---|---|---|---|---|---|---|---|
| 4 | 12.30 | 22.28 | 51.94 | 42.61 | 75.82 | 37.56 | 28.67 | 12.75 | 
| 8 | 19.29 | 22.28 | 56.84 | 45.79 | 82.96 | 40.37 | 36.24 | 13.46 | 
| 16 | 24.83 | 24.83 | 63.32 | 51.02 | 104.84 | 45.79 | 48.34 | 16.71 | 
| 32 | 35.59 | 31.94 | 71.83 | 62.19 | 132.49 | 52.89 | 94.10 | 23.95 | 
| 48 | 48.34 | 44.17 | 89.16 | 73.13 | 144.97 | 62.19 | 130.13 | 33.72 | 
| 64 | 61.08 | 53.85 | 116.80 | 86.00 | 161.51 | 74.46 | 155.80 | 44.17 | 
| 96 | 84.47 | 74.46 | 173.58 | 116.80 | 215.44 | 134.90 | 235.74 | 82.96 | 
| 128 | 106.75 | 108.68 | 235.74 | 147.61 | 277.21 | 155.80 | 267.41 | 153.02 | 
| 192 | 144.97 | 164.45 | 369.77 | 207.82 | 411.96 | 253.35 | 404.61 | 173.58 | 
| 256 | 189.93 | 219.36 | 511.33 | 267.41 | 569.67 | 356.70 | 502.20 | 186.54 | 
| 384 | 292.60 | 314.45 | 787.74 | 390.30 | 802.05 | 511.33 | 694.45 | 257.95 | 
| 512 | 390.30 | 411.96 | 1050.76 | 511.33 | 1050.76 | 569.67 | 960.30 | 331.91 | 
MySQL 参数对比表格
| data | aliyun | aws | azure | baidu | huawei | oracle | tencent | |
|---|---|---|---|---|---|---|---|---|
| have_ssl | DISABLED | YES | YES | DISABLED | YES | DISABLED | YES | DISABLED | 
| innodb_buffer_pool_size | 9.75GB | 11GB | 12GB | 12GB | 11GB | 9GB | 17GB | 12GB | 
| innodb_doublewrite | ON | OFF | OFF | ON | ON | ON | ON | ON | 
| innodb_flush_log_at_trx_commit | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 
| innodb_flush_method | O_DIRECT | O_DIRECT | fsync | fsync | O_DIRECT | O_DIRECT | O_DIRECT | O_DIRECT | 
| innodb_io_capacity | 20000 | 200 | 200 | 2000 | 5000 | 12000 | 1250 | 20000 | 
| innodb_read_io_threads | 4 | 4 | NA | 8 | 4 | 4 | 2 | 4 | 
| innodb_write_io_threads | 4 | 4 | NA | 8 | 4 | 4 | 4 | 4 | 
| log_bin | ON | OFF | ON | ON | ON | ON | ON | ON | 
| performance_schema | OFF | OFF | ON | OFF | ON | OFF | ON | OFF | 
| rpl_semi_sync_master_enabled | ON | NA | NA | ON | NA | ON | NA | ON | 
| rpl_semi_sync_master_timeout | 1000 | NA | NA | 10000 | NA | 10000 | NA | 10000 | 
| sync_binlog | 1 | 1 | 1 | 1000 | 1 | 1 | 1 | 1 | 
| thread_pool_size | 8 | NA | 4 | NA | 4 | NA | 16 | 4 | 
| version | 8.0.36 | 8.0.41 | 8.0.41-azure | 8.0.32-4.0.0.5 | 8.0.41-google | 8.0.28-231003 | 8.0.40-u6-cloud | 8.0.30-txsql | 
| instance_type | mysql.x4.large.2c | db.m7i.xlarge | GP_Standard_D4ads_v5 | 4 | db-custom-4-16384 | rds.mysql.x1.xlarge.4.ha | MySQL.4 | 4c | 
| storage_type | cloud_essd | io1 | NA | cloud_enha | NA | CLOUDSSD | NA | EXCLUSIVE | 
| storage_size | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 
| storage_iops | NA | 3000 | 3000 | NA | NA | NA | NA | NA | 
| cpu_capacity | 97 | 146.6 | 73.6 | 74.5 | 53.8 | 154.8 | 118.8 | 107.3 | 
更多历史测试
- [1] 云数据库 RDS MySQL 的性能综述
- [2] 云数据库RDS MySQL性能测试与对比@2025-07
- [2] 云数据库RDS MySQL性能测试与对比@2025-04
- [3] 云数据库RDS MySQL性能测试与对比@2025-01
- [4] 云数据库RDS MySQL性能测试与对比@2024-09
- [5] 云数据库RDS MySQL性能测试与对比@2024-05
- [6] 云数据库RDS MySQL性能测评与对比@2023-12
2025年04月 性能测试趋势图
2025年01月 性能测试趋势图
2024年09月 性能测试趋势图
2024年05月 性能测试趋势图
关于本次测试更多详细说明:云数据库MySQL性能测试@2024年05月。
关于该测试
当在不同的云厂商之间迁移时,数据库的性能是需要重点关注的点。那么,不同的云厂商之间的相同规格实例是不是就可以直接迁移呢?他们之间差异大吗?经过上述的系列测试,我们发现:
- 不同的云厂商之间性能差距非常大
- 即便同一个云厂商,不同的区域之间相同规格性能也有差距
- 即便同一个云厂商,不同时间阶段,相同规格性能也有差距
上述的差异现象,并不是孤立,几乎每个厂商都有类似的问题。有的云厂商性能管理更好,差异会小一些,性能更加稳定,而有的云厂商性能差异则比较大。
如何重现该测试
重现该测试包含了两个方面,一个是测试工具与主要参数,另一个是测试实例的选择。如下两节分别描述这两部分。
Sysbench 的参数与命令
该测试选择了模型简单、易于重现的Sysbench(oltp_read_write),其主要参数包括:
- 测试模型: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)作为测试对象。测试实例实例规格满足如下条件:
- 4vCPU16GB内存规格,存储100GB
- 如果需要选择IOPS,选择3000
- 具备跨可用区的高可用
- 非常高的数据可靠性级别,同步复制或半同步复制,或者MGR复制,或者存储层的同步复制
- 具备非常好的性能一致性(独享的计算资源)
具体每个云厂商的标准规格选择,参考:云数据库RDS MySQL性能测试与对比@2024年05月文中对各个云厂商小结部分。
为什么相同规格性能差异这么大
这是一个比较复杂的问题。该问题作者参加的2024年1月的ACMUG(中国MySQL用户组)大会上的做了分享(参考),如下为分享的PDF,供参考:
概要小结如下:
- 不同云厂商相同的4vCPU规格,其计算能力差异很大
- 不同云厂商 RDS 的高可用架构有一定的差异,这对性能影响也大
- 想通的云厂商,不同阶段上线的实例,使用的CPU代际不同,性能相差明显
关于该测试的限制
本节对在测试过程中的一些限制进行补充说明,供参考:
- 在本系列的的测试中,地域选择较为随机,例如阿里云选择了杭州、百度云选择北京、AWS/谷歌云选择了东京、Azure云选择了美东/香港/东京等。这里的一个假设是,各个云厂商在各个区域的RDS MySQL性能应该是相同或者接近的。
- 首先于个人的时间与资源,这里仅对较为常用的4vCPU16GB的规格进行测试,单次并发测试持续时间为300秒。
- 虽然都是用MySQL 8.0版本,但是不同的厂商的数据库小版本也会不同。
- 不同厂商的CPU、磁盘类型、价格等各有不同,所以这不是一个完全对等的测试,也不可能是。
- 不同厂商的RDS实例的默认参数模板也各有不同,甚至同一个厂商在不同阶段的参数也可能会有调整。
- 有的云厂商的磁盘存储有着多种不同的选择,例如阿里云支持ESSD PL1/2/3,AWS也支持gp3/io1类型的存储选择,不同的存储选择也会对应这个不同的性能。
- 关于可用区的选择:在测试中,尽量会将测试的ECS/EC2/VM等与数据库主节点放在同一个可用区。但依旧有一些情况做不到这一点。例如在这次的测试过程中,GCP在东京地区b可用区,虽然可以创建数据库,但是却没有资源创建VM节点(“A n2-highcpu-8 VM instance is currently unavailable in the asia-northeast1-b zone.”)。
如果有更多建议,可以在本文后留下你的建议,以供后续参考与改进。
其他补充说明
关于Sysbench测试
这里使用常用的、易用重现的Sysbench工具进行测试。主要的模型包括oltp_read_write以及部分自定义模型。Sysbench因为其易用使用,可定制性高被业绩广泛使用,包括AWS、Google Cloud、阿里云、腾讯云等。
sysbench的oltp_read_write模型是一个事务压测模型,单个事务中包含了10个点查、4个范围查询(包括了ORDER BY/SUM/DISTINCT等)、影响索引的更新、不影响索引的更新、删除数据、插入数据。关于该测试模型的详细说明可以参考文章:
ARM vs x86 @RDS MySQL 专题
整体上,在不同的平台上ARM-based的RDS MySQL有着不同的表现。具体如下:
Graviton vs x86 on AWS
- 在AWS上,Graviton 3实例RDS性能在高并发时,相对x86有较明显的性价比优势,以128并发为例,m7g vs m6i的对比
- Graviton 3 相比Graviton 2有非常明显的性能优势(参考),这与宣称的27%性价比提升是较为一致的
- Graviton 2实例相比x86几乎没有什么优势,与宣称的52%性价比提升结果相悖
ARM vx x86 on 阿里云
- 经济版(ARM)比标准版(x86)性价比要高出32%
- 具体的:选取16并发,ARM版TPS为2185,x86版TPS为2324。价格上, ARM版价格为1.61元/时, x86版价格为2.52元/时,那么对应每1000个TPS的价格分别为:0.74元与1.08元。从性价比的角度来看,经济版提升了31.5%
鲲鹏 vs x86 on 华为云
- x86和鲲鹏架构实例价格是相同的
 鲲鹏版本相比x86约有15~45%的性能差距
- 考虑到自研鲲鹏芯片在中国自主可控芯片中的地位,在国内大量无法使用x86的场景中,这个性能下降通常都是可以接受
其他实用结论
先说些一些基于测试的实用结论吧,可以让更多的开发者参考:
- 不同的云厂商,有着不同的存储架构,不同的安全性/性能考虑,不同的CPU类型/多寡等,看似相同的规格,性能却有着巨大的差异
- 在阿里云上,强烈建议考虑使用经济版(ARM)替换标准版(x86),很容易获得超30%的性价比(参考)
- 总是建议使用最新一代CPU实例,通常都可以获得15%的性价比提升,例如AWS m6i vs m5i,m7g vs m6g(参考)
- 几大云厂商的”企业级”实例的性能有着显著差异,主要原因是主从复制架构、CPU代差、存储架构等不同导致(参考)
- 国内云厂商都提供了“通用型”实例,以非常小的资源共享换取了非常大的性价比提升,非常适合非关键场景使用(参考)
首次测试
第一次做该系列的测试是2023年12月,当时测试结果如。但因为,后续的测试做了比较多的改进,故该数据可以用于参考,但不能与后续数据直接对比。
更多关于本次测试说明参考:点击查看详情

更多测试计划
该项目主要是个人投入进行,故并无严格时间规划。
- 2025年计划:5月、9月、12月再各发布一次测试数据
- 考虑新增价格数据,以便进行价格对比
Leave a Reply