MySQL 8.0测试结果

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

说明
  • 为了更接近生产环境,本次压测取60秒的读写次数总量(Reads/Writes)作为测试指标。

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

  • 根据业务场景的不同,RDS MySQL 8.0的测试结果可能会低于RDS MySQL 5.7,属于正常现象。

测试环境

本次压测采用业界标准的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

432922

123692

2核4 GB

(rds.mysql.s2.large)

25000

32

1200

2000

8

599606

171316

4核16 GB

(rds.mysql.m1.medium)

25000

128

4000

7000

16

1567132

447752

8核32 GB

(rds.mysql.c1.xlarge)

25000

128

8000

12000

32

2923130

835180

16核64 GB

(rds.mysql.c2.xlarge)

25000

128

16000

14000

64

5661264

1617504

场景二:磁盘I/O型

磁盘I/O型

规格

单表数据量

表数量

最大连接数

IOPS

Sysbench线程数

Sysbench读取

(单位:次)

SysBench写入

(单位:次)

1核1 GB

(rds.mysql.t1.small)

80000

32

300

600

8

374584

107024

2核4 GB

(rds.mysql.s2.large)

80000

32

1200

2000

8

439418

125548

4核16 GB

(rds.mysql.m1.medium)

800000

128

4000

7000

16

851326

243236

8核32 GB

(rds.mysql.c1.xlarge)

800000

128

8000

12000

32

2384256

681216

16核64 GB

(rds.mysql.c2.xlarge)

800000

128

16000

14000

64

4584090

1309740