您可以根据业务情况调整RDS MySQL实例的innodb_buffer_pool_size大小,以便提升实例性能。
内存分配说明
RDS MySQL不同存储类型实例的内存分配情况如下表。
存储类型 | mysqld服务 | RDS相关管理服务 | 底层操作系统 |
---|---|---|---|
本地SSD盘 | MySQL服务内存包含很多部分,其中主要为InnoDB Buffer Pool和数据库连接占用内存。MySQL服务内存的更多信息,请参见MySQL官方文档。
注意 数据库连接越多,消耗内存越多,请根据实际情况,升级实例内存。
|
不占用实例规格内存。 | 不占用实例规格内存。 |
SSD云盘或ESSD云盘 | 约占用500MB内存。 | 约占用500~700MB内存。 |
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 ],即最小调整到128MB,最大调整到RDS实例规格内存的80%。
RDS实例默认InnoDB Buffer Pool大小如下:
- 如果RDS云盘实例规格内存<16GB,默认InnoDB Buffer Pool = (RDS实例规格内存 - RDS相关管理服务内存 - 底层操作系统内存)* 0.7。
- 如果RDS云盘实例规格内存 ≥ 16GB,或RDS实例为本地SSD盘,默认InnoDB Buffer Pool = RDS实例规格内存 * 0.7。
为了保障实例稳定性,对于1核1GB、1核2GB等小规格实例,innodb_buffer_pool_size默认设置为256MB。
InnoDB Buffer Pool大小始终为innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances
的倍数,如果不为倍数关系时,会自动修改为倍数关系。例如innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances
=1GB,如果将innodb_buffer_pool_size设置为1.5GB,系统会自动修改innodb_buffer_pool_size为2GB。
调整单个实例的InnoDB Buffer Pool大小
使用模板调整InnoDB Buffer Pool大小
您可以新建参数模板修改innodb_buffer_pool_size,然后应用到需要修改的实例。如果已有模板,可以修改模板后应用到需要修改的实例。详情请参见使用参数模板。

在文档使用中是否遇到以下问题
更多建议
匿名提交