您可以根據業務情況調整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,單擊右側
進行修改,然後單擊確定。
單擊提交參數,在彈出的提示框中單擊確定,等待執行個體重啟完成。