RDS MySQL 5.7本地盘测试结果

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

说明
  • 为了更接近生产环境,本次压测取20分钟的每秒执行请求数QPS作为测试指标。

  • 以下性能测试结果仅供参考。为了帮助您更好地了解和使用RDS MySQL 5.7版本实例,请参见性能优化与诊断

测试环境

本次压测采用业界标准的SysBench,分别对RDS MySQL的5个本地盘规格进行性能测试。

  • 实例规格:rds.mysql.s1.small、rds.mysql.s2.large、rds.mysql.m1.medium、rds.mysql.c1.xlarge、rds.mysql.c2.xlarge

  • 实例规格族:通用型

  • 实例系列:高可用系列

  • 实例存储类型:本地盘

测试限制

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

  • 数据量:对不同实例规格配置不同的表个数和表数据量。部分规格看似测试结果相近,其实是整体数据量不同。

  • 压测时长:由于不同压测时长对测试结果存在影响,因此本次压测时长统一为20分钟。

  • 参数配置:

    • sync_binlog=1innodb_flush_log_at_trx_commit=1:确保每次提交的数据完整写入磁盘中。

    • rpl_semi_sync_master_enabled=ON:开启数据库半同步模式,保证主备库数据的一致性。

    • Performance_schema=OFF:内存大于等于64 GB的实例规格默认开启Performance Schema。

      说明

      上述参数为RDS MySQL标准参数模板,统一参数模板可在最大程度上保证数据一致性,同时更加接近生产环境。

测试结果

本次压测分两个场景进行,您可以根据自身数据量判断使用哪种场景。

  • 内存命中型:适用于数据量较小的场景,可将数据全量放入Buffer Pool进行存取。如何更改Buffer Pool大小,请参见调整实例Buffer Pool大小

  • 磁盘I/O型:适用于数据量大的场景,只将最常访问的数据放入Buffer Pool进行存取,压测时会读写磁盘以及更新Buffer Pool。

场景一:内存命中型

image.png

规格

单表数据量

表数量

最大连接数

IOPS

Sysbench线程数

QPS

TPS

1核2 GB

(rds.mysql.s1.small)

3000000

1

600

1000

16

22427

1121

2核4 GB

(rds.mysql.s2.large)

3000000

2

1200

2000

16

49984

2499

4核16 GB

(rds.mysql.m1.medium)

6000000

4

4000

7000

32

95856

4793

8核32 GB

(rds.mysql.c1.xlarge)

6000000

8

8000

12000

32

135598

6800

16核64 GB

(rds.mysql.c2.xlarge)

6000000

16

16000

14000

64

220562

11028

场景二:磁盘I/O型

image.png

规格

单表数据量

表数量

最大连接数

IOPS

Sysbench线程数

QPS

TPS

1核2 GB

(rds.mysql.s1.small)

16000000

1

600

1000

16

1208

60

2核4 GB

(rds.mysql.s2.large)

16000000

2

1200

2000

16

2720

136

4核16 GB

(rds.mysql.m1.medium)

32000000

4

4000

7000

32

9499

475

8核32 GB

(rds.mysql.c1.xlarge)

32000000

8

8000

12000

32

16284

814

16核64 GB

(rds.mysql.c2.xlarge)

32000000

16

16000

14000

32

18979

945