您可以根據業務情況調整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。
實例內存大?。▎挝唬篗B) | 默認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,單擊右側進行修改,然后單擊確定。
單擊提交參數,在彈出的提示框中單擊確定,等待實例重啟完成。