全部產品
Search
文件中心

ApsaraDB RDS:調整執行個體Buffer Pool大小

更新時間:Jun 19, 2024

您可以根據業務情況調整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大小

  1. 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
  2. 在左側導覽列單擊參數設定

  3. 找到參數innodb_buffer_pool_size,單擊右側修改進行修改,然後單擊確定

    修改參數

  4. 單擊提交參數,在彈出的提示框中單擊確定

    說明

    RDS MySQL 5.6的innodb_buffer_pool_size參數修改需要重啟,RDS MySQL5.7和8.0則不需要重啟。

使用模板調整InnoDB Buffer Pool大小

您可以建立參數模板修改innodb_buffer_pool_size,然後應用到需要修改的執行個體。如果已有模板,可以修改模板後應用到需要修改的執行個體。詳情請參見使用參數模板

參數模板修改