您可以根据业务情况调整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大小
警告
修改innodb_buffer_pool_size会重启实例,请谨慎操作。
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
-
在左侧导航栏单击参数设置。
-
找到参数innodb_buffer_pool_size,单击右侧
进行修改,然后单击确定。
单击提交参数,在弹出的提示框中单击确定,等待实例重启完成。
使用模板调整InnoDB Buffer Pool大小
您可以新建参数模板修改innodb_buffer_pool_size,然后应用到需要修改的实例。如果已有模板,可以修改模板后应用到需要修改的实例。详情请参见使用参数模板。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/156188.html