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

ApsaraDB RDS:InnoDB バッファープールのサイズの調整

最終更新日:Jun 21, 2026

innodb_buffer_pool_size パラメーターは、InnoDB バッファプールのサイズを指定します。このパラメーターを調整することで、ApsaraDB RDS for MySQL インスタンスのパフォーマンスを向上させることができます。

前提条件

このトピックは、以下のインスタンスエディションに適用されます:

  • RDS High-availability Edition

  • RDS Basic Edition

  • RDS Cluster Edition

制限事項

  • ApsaraDB RDS for MySQL サーバーレスインスタンスの innodb_buffer_pool_size パラメーターは、手動で変更できません。インスタンスは、インスタンス仕様の変更時に InnoDB バッファプールサイズを自動的に調整します。

  • ApsaraDB RDS for MySQL インスタンスの innodb_buffer_pool_size パラメーターを高く設定しすぎると、メモリ不足 (OOM) エラーが発生し、フェールオーバーが発生する可能性があります。これを防ぐために、このトピックで推奨される最大値に従ってバッファプールサイズを設定してください。

ユースケース

メモリが制限されていない限り、データベースのパフォーマンスを最適化するためにこのパラメーターを増やしてください。

  • サイズの増加:サーバーに十分なメモリがある場合、innodb_buffer_pool_size を増やすことで、ディスク I/O を大幅に削減できます。クエリされたデータを完全にまたはほぼ完全にメモリに格納できる場合、CPU がディスク I/O を待つ時間が短くなり、全体的な CPU 使用率が低下します。たとえば、頻繁に実行される UPDATE ステートメントの場合、より大きなバッファプールはディスクへの依存度を減らし、行ロック競合を緩和します。これにより、特に大量のレコードを更新する際のパフォーマンスが向上します。

  • サイズの減少:メモリが制限されている場合、または他のアプリケーションが大量のメモリを必要とする場合は、innodb_buffer_pool_size の値を減らしてください。

InnoDB バッファプールサイズ

次の計算式を使用して innodb_buffer_pool_size パラメーターを設定することで、InnoDB バッファプールサイズを調整できます。

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

  • 調整可能な範囲は、128 MB からインスタンスの総メモリの 90% (DBInstanceClassMemory * 9 / 10) までです。

デフォルトの 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) です。

専用仕様

  • Default Buffer Pool size: (instance memory - system reserved memory) * 3 / 4

  • The formula for calculating system reserved memory is: min{Instance Memory / 2, 2048} + max{Instance CPU * 64, Instance Memory / 64} + (Instance Memory / 64) + 285, where the unit for instance memory is 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 が 128 MB、innodb_buffer_pool_instances が 1 の場合、innodb_buffer_pool_size を 200 MB に設定すると、その値は 128 MB の倍数ではないため、最も近い倍数である 256 MB に自動的に切り上げられます。

単一インスタンスのバッファプールの調整

  1. RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
  2. 左側のナビゲーションペインで、パラメーターの設定 をクリックします。

  3. innodb_buffer_pool_size パラメーターを見つけ、「操作」列の 変更 アイコンをクリックしてその値を変更し、OK をクリックします。

  4. 変更の送信 をクリックします。表示されたダイアログボックスで、OK をクリックします。

    説明

    innodb_buffer_pool_size パラメーターを変更すると、ApsaraDB RDS for MySQL 5.6 では再起動が必要ですが、ApsaraDB RDS for MySQL 5.7 および 8.0 では再起動は不要です。

パラメーターテンプレートを使用した調整

新しいパラメータテンプレートを作成して [innodb_buffer_pool_size] を変更し、そのテンプレートをターゲットインスタンスに適用できます。 既存のパラメータテンプレートがある場合は、それを変更してターゲットインスタンスに適用できます。 詳細については、「パラメータテンプレートの使用」をご参照ください。

[実行値] を {DBInstanceClassMemory*7/10} に設定します。テンプレートを適用した後、変更を有効にするには、ApsaraDB RDS for MySQL 5.6 インスタンスを再起動する必要があります。バージョン 5.7 および 8.0 では再起動は不要です。

関連ドキュメント

インスタンスのモニタリング データとスロークエリログ 分析を使用して、ApsaraDB RDS for MySQL のメモリ使用量の問題を分析し、解決することもできます。