您可以根据业务情况调整MariaDB实例的innodb_buffer_pool_size大小,以提升实例性能。
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云盘实例规格内存 < 16 GB
,默认InnoDB Buffer Pool = (RDS实例规格内存 - RDS系统预留内存) * 0.75
。说明RDS系统预留内存的计算公式如下:
MIN(RDS实例规格内存 * 0.65, ((RDS实例规格内存/16384) + 1) * 2048)
如果
RDS云盘实例规格内存 ≥ 16 GB
,默认InnoDB Buffer Pool = RDS实例规格内存 * 0.75
。
Buffer Pool的默认值是128的整数倍,如果计算出的结果非128的整数倍,则取近似值。如:1024MB内存的默认Buffer Pool计算结果为268,其最接近128整数倍的值为256,则1024MB内存的默认Buffer Pool为256MB。
为方便您设置,下表中提供了各实例内存大小对应的默认Buffer Pool和推荐最大Buffer Pool。
实例内存大小(单位:MB) | 默认Buffer Pool(单位:MB) | 推荐最大Buffer Pool(单位:MB) |
2048 | 512 | 512 |
4096 | 1536 | 1536 |
8192 | 4608 | 4608 |
16384 | 12288 | 12288 |
32768 | 24576 | 25600 |
65536 | 49152 | 52224 |
131072 | 98304 | 104448 |
196608 | 147456 | 156672 |
229376 | 172032 | 183296 |
262144 | 196608 | 208896 |
491520 | 368640 | 393216 |
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大小
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏单击参数设置。
找到参数innodb_buffer_pool_size,单击右侧进行修改,然后单击确定。
单击提交参数,在弹出的提示框中单击确定,等待实例重启完成。