本文介绍RDS MySQL 5.6通用型实例的性能测试结果。

说明
  • 为了更接近生产环境,本次压测取60秒的读写次数总量(Reads/Writes)作为测试指标。
  • 以下性能测试结果仅供参考。为了帮助您更好地了解和使用RDS MySQL 5.6版本实例,请参见性能优化与诊断

测试环境

本次压测采用业界标准的SysBench,分别对RDS MySQL的5个本地盘规格进行性能测试。
  • 实例规格:rds.mysql.t1.small、rds.mysql.s2.large、rds.mysql.m1.medium、rds.mysql.c1.xlarge、rds.mysql.c2.xlarge
  • 实例规格族:通用型
  • 实例系列:高可用版
  • 实例存储类型:本地盘

测试限制

由于数据量压测时长参数配置会大幅影响性能数据,本测试做如下限制:

  • 数据量:对不同实例规格配置不同的表个数和表数据量。部分规格看似测试结果相近,其实是整体数据量不同。
  • 压测时长:由于不同压测时长对测试结果影响较大,因此本次压测时长统一为60秒。
  • 参数配置:
    • sync_binlog=1innodb_flush_log_at_trx_commit=1:确保每次提交的数据完整写入磁盘中。
    • rpl_semi_sync_master_enabled=ON:开启数据库半同步模式,保证主备数据的一致性。
    • Performance_schema=ON:内存大于等于8 GB的实例规格默认开启Performance Schema。
      说明 上述参数为RDS MySQL标准参数模板,统一参数模板可在最大程度上保证数据一致性,同时更加接近生产环境。

测试结果

本次压测分两个场景进行,您可以根据自身数据量判断使用哪种场景。
  • 内存命中型:适用于数据量较小的场景,可将数据全量放入Buffer Pool进行存取。如何更改Buffer Pool大小,请参见调整实例Buffer Pool大小
  • 磁盘I/O型:适用于数据量大的场景,只将最常访问的数据放入Buffer Pool进行存取,压测时会读写磁盘以及更新Buffer Pool。

场景一:内存命中型

内存命中型
规格 单表数据量 表数量 最大连接数 IOPS Sysbench线程数 Sysbench读取

(单位:次)

SysBench写入

(单位:次)

1核1 GB

(rds.mysql.t1.small)

25000 32 300 600 8 450394 128684
2核4 GB

(rds.mysql.s2.large)

25000 32 1200 2000 8 1045100 298598
4核16 GB

(rds.mysql.m1.medium)

25000 128 4000 7000 16 1063846 303956
8核32 GB

(rds.mysql.c1.xlarge)

25000 128 8000 12000 32 2177504 622144
16核64 GB

(rds.mysql.c2.xlarge)

25000 128 16000 14000 64 4686654 1339044

场景二:磁盘I/O型

磁盘I/O型
规格 单表数据量 表数量 最大连接数 IOPS Sysbench线程数 Sysbench读取

(单位:次)

SysBench写入

(单位:次)

1核1 GB

(rds.mysql.t1.small)

80000 32 300 600 8 406238 116068
2核4 GB

(rds.mysql.s2.large)

80000 32 1200 2000 8 1013614 289604
4核16 GB

(rds.mysql.m1.medium)

800000 128 4000 7000 16 1040154 295768
8核32 GB

(rds.mysql.c1.xlarge)

800000 128 8000 12000 32 2119922 605692
16核64 GB

(rds.mysql.c2.xlarge)

800000 128 16000 14000 64 4434220 1266920