调整实例Buffer Pool大小

您可以根据业务情况调整RDS MySQL实例的innodb_buffer_pool_size大小,以便提升实例性能。

前提条件

实例系列如下:

  • RDS MySQL高可用系列

  • RDS MySQL基础系列

  • RDS MySQL集群系列

应用限制

RDS MySQL Serverless实例不支持手动修改innodb_buffer_pool_size参数,实例会根据规格变化自动调整InnoDB Buffer Pool的大小。

InnoDB Buffer Pool大小

RDS实例可以通过参数innodb_buffer_pool_size来调整InnoDB Buffer Pool的大小,当前仅支持通过公式进行修改。公式如下:

{DBInstanceClassMemory*X/Y}    

示例

{DBInstanceClassMemory*7/10}
说明
  • DBInstanceClassMemory为RDS实例规格内存系统变量。

  • X、Y为分子和分母。

  • 可调整范围为:[128MB, DBInstanceClassMemory * 8 / 10],即最小调整到128 MB,最大调整到RDS实例规格内存的80%。

RDS实例默认InnoDB Buffer Pool大小如下:

  • 如果RDS实例为云盘版通用规格,或RDS实例为本地SSD盘,默认InnoDB Buffer Pool = RDS实例规格内存 * 3 / 4

  • 如果RDS实例为云盘版独享规格,默认InnoDB Buffer Pool = (RDS实例规格内存 - RDS系统预留内存)* 3 / 4

    说明
    • 云盘版独享规格中的RDS系统预留内存计算公式如下(单位为MB):

      MIN(RDS实例规格内存 / 2, 2048) + MAX(RDS实例规格CPU * 64, RDS实例规格内存 / 64) + (RDS实例规格内存 / 64) + 285
    • Buffer Pool的默认值是128的整数倍,如果计算出的结果非128的整数倍,则取近似值。如:1024MB内存的默认Buffer Pool计算结果为268,其最接近128整数倍的值为256,则1024MB内存的默认Buffer Pool为256MB。

为方便您设置,下表中提供了云盘版独享规格对应的默认Buffer Pool和推荐最大Buffer Pool。

实例CPU核数

实例内存大小(单位:MB)

默认Buffer Pool(单位:MB)

推荐最大Buffer Pool(单位:MB)

2

4096

1024

1024

2

8192

4096

4096

2

16384

9216

10240

4

8192

4096

4096

4

16384

9216

10240

4

32768

21504

22528

8

16384

9216

10240

8

32768

21504

22528

8

65536

45056

48128

12

24576

15360

16384

12

49152

33792

35840

12

98304

69632

73728

16

32768

21504

22528

16

65536

45056

48128

16

131072

93184

99328

24

49152

32768

34816

24

98304

69632

73728

24

196608

140288

149504

32

65536

45056

47104

32

131072

93184

99328

32

262144

188416

200704

52

98304

67584

72704

52

196608

140288

149504

52

393216

283648

302080

64

262144

188416

200704

64

524288

378880

403456

102

786432

569344

607232

104

196608

138240

147456

104

393216

282624

302080

InnoDB Buffer Pool大小始终为innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances的倍数,如果不为倍数关系时,会自动修改为倍数关系。例如innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances = 1 GB,如果将innodb_buffer_pool_size设置为1.5 GB,系统会自动修改innodb_buffer_pool_size为2 GB。

调整单个实例的InnoDB Buffer Pool大小

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏单击参数设置

  3. 找到参数innodb_buffer_pool_size,单击右侧修改进行修改,然后单击确定

    修改参数

  4. 单击提交参数,在弹出的提示框中单击确定

    说明

    RDS MySQL 5.6的innodb_buffer_pool_size参数修改需要重启,RDS MySQL5.7和8.0则不需要重启。

使用模板调整InnoDB Buffer Pool大小

您可以新建参数模板修改innodb_buffer_pool_size,然后应用到需要修改的实例。如果已有模板,可以修改模板后应用到需要修改的实例。详情请参见使用参数模板

参数模板修改