すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:InnoDB バッファープールのサイズを変更する

最終更新日:Nov 09, 2025

innodb_buffer_pool_size パラメーターは、InnoDB バッファープールのサイズを設定します。ビジネス要件に基づいて RDS MySQL インスタンスのこのパラメーターを調整し、インスタンスのパフォーマンスを向上させることができます。

開始する前に

お使いの RDS インスタンスは、次のいずれかの RDS エディションを実行しています。

  • RDS High-availability Edition

  • RDS Basic Edition

  • RDS Cluster Edition

制限事項

  • RDS MySQL の Serverless インスタンスは、innodb_buffer_pool_size パラメーターの手動変更をサポートしていません。インスタンスは、仕様の変更に基づいて InnoDB バッファープールのサイズを自動的に調整します。

  • RDS MySQL インスタンスの innodb_buffer_pool_size パラメーターが大きすぎると、メモリ不足 (OOM) が発生し、プライマリ/セカンダリのスイッチオーバーがトリガーされる可能性があります。この Topic で推奨されているバッファープールの最大値に基づいてパラメーターを設定することをお勧めします。

シナリオ

日常的な使用では、メモリが限られている場合を除き、データベースのパフォーマンスを最適化するためにこのパラメーターを増やすことをお勧めします。

  • 増加: サーバーのメモリが十分な場合、innodb_buffer_pool_size を増やすと、ディスク I/O スループットを効果的に削減できます。クエリされたデータが完全にまたはほとんどメモリに保存できる場合、CPU はディスク I/O を頻繁に待つ必要がなくなり、CPU 使用率の削減に役立ちます。たとえば、頻繁に実行される UPDATE 文の場合、バッファープールが大きいほどディスクへの依存度が減り、ロック待ちが減少し、特に多くのレコードが更新される場合に MySQL がデータ更新を処理する効率が向上します。

  • 減少: メモリリソースが限られている場合、または他のアプリケーションが高いメモリ要件を持つ場合は、innodb_buffer_pool_size パラメーターの値を減らすことができます。

InnoDB バッファープールのサイズ

innodb_buffer_pool_size パラメーターを再設定して、RDS インスタンスの InnoDB バッファープールのサイズを変更できます。現在、このパラメーターは数式を使用してのみ変更できます。数式は次のとおりです。

{DBInstanceClassMemory*X/Y}
# 例: {DBInstanceClassMemory*7/10}
説明
  • DBInstanceClassMemory は RDS インスタンスタイプのメモリ (システム変数) で、X/Y はバッファープールサイズとインスタンスメモリの比率を表します。

  • 調整可能な範囲は [128 MB, DBInstanceClassMemory * 9 / 10] です。つまり、最小値は 128 MB で、最大値は RDS インスタンスメモリの 90% です。

InnoDB バッファープールサイズのデフォルト値

高性能ローカルディスクインスタンス

次のインスタンスタイプでは、デフォルトのバッファープールサイズはインスタンスメモリの 80% から 90% です。他のインスタンスタイプの場合、デフォルト値はインスタンスメモリの 75% (インスタンスメモリ * 3 / 4) です。

インスタンスファミリー

インスタンスタイプ

CPU とメモリ

デフォルト値 (MB) とインスタンスメモリの割合

汎用インスタンスタイプ

rds.mysql.s3.large

4 コア, 8 GB

7372 (90%)

rds.mysql.m1.medium

4 コア, 16 GB

14745 (90%)

rds.mysql.c1.large

8 コア, 16 GB

13107 (80%)

rds.mysql.c1.xlarge

8 コア, 32 GB

27852 (85%)

rds.mysql.c2.xlarge

16 コア, 64 GB

52428 (80%)

rds.mysql.c2.xlp2

16 コア, 96 GB

78643 (80%)

専用インスタンス

mysql.x4.large.2

4 コア, 16 GB

14745 (90%)

mysql.x8.large.2

4 コア, 32 GB

29491 (90%)

mysql.x4.xlarge.2

8 コア, 32 GB

27852 (85%)

mysql.x8.xlarge.2

8 コア, 64 GB

55705 (85%)

mysql.x4.2xlarge.2

16 コア, 64 GB

52428 (80%)

mysql.x8.2xlarge.2

16 コア, 128 GB

104857 (80%)

ディスクインスタンス

汎用インスタンスタイプ

デフォルトのバッファープールサイズはインスタンスメモリの 75% (インスタンスメモリ * 3 / 4) です。

専用インスタンスタイプ

  • デフォルトのバッファープールサイズ: (インスタンスメモリ - システム予約メモリ) * 3 / 4

  • システム予約メモリを計算するための数式は min{インスタンスメモリ / 2, 2048} + max{インスタンス CPU * 64, インスタンスメモリ / 64} + (インスタンスメモリ / 64) + 285 です。ここで、インスタンスメモリの単位は MB です。

便宜上、次の表に専用インスタンスタイプのデフォルトのバッファープールサイズと推奨される最大バッファープールサイズを示します。

インスタンス CPU コア

インスタンスメモリ (MB)

バッファープールサイズ

デフォルト値 (MB)

推奨値 (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 バッファープールの容量は、常に innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances の倍数になります。

  • innodb_buffer_pool_chunk_size は 32 MB に固定されています。以前に作成されたインスタンスでは、128 MB の場合があります。

  • ユーザーが設定した innodb_buffer_pool_size の値が倍数でない場合、システムは自動的に最も近い整数倍に切り上げます。

たとえば、innodb_buffer_pool_chunk_size が 1 GB で innodb_buffer_pool_instances が 1 の場合、innodb_buffer_pool_size を 1.5 GB に設定すると、実際には 2 GB に調整されます。

単一の RDS インスタンスの InnoDB バッファープールサイズを変更する

  1. [インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。

  2. 左側のナビゲーションウィンドウで、[パラメーター] をクリックします。

  3. [innodb_buffer_pool_size] パラメーターを見つけ、右側の 修改 をクリックして変更し、[OK] をクリックします。

  4. [パラメーターの送信] をクリックし、確認ダイアログボックスで [OK] をクリックします。

    説明

    RDS MySQL 5.6 の innodb_buffer_pool_size パラメーターを変更するには再起動が必要ですが、RDS MySQL 5.7 および 8.0 では必要ありません。

複数の RDS インスタンスの InnoDB バッファープールサイズを一度に変更する

パラメーターテンプレートを作成して [innodb_buffer_pool_size] を変更し、変更が必要なインスタンスに適用できます。このパラメーターを含むパラメーターテンプレートがすでに作成されている場合は、テンプレート内のこのパラメーターの値を変更するだけで済みます。その後、一度に複数の RDS インスタンスにテンプレートを適用できます。詳細については、「パラメーターテンプレートの使用」をご参照ください。

参数模板修改

参照

インスタンスのモニタリング情報低速ログ分析に基づいて、RDS MySQL のメモリ使用量の問題を分析して処理することもできます。