Amazon RDS での MariaDB のキャッシュウォームアップ
InnoDB キャッシュウォームアップでは、DB インスタンスがシャットダウンされたときのバッファプールの最新の状態を保存し、DB インスタンスが起動されたときに保存された情報からバッファプールを再ロードすることによって、MariaDB DB インスタンスのパフォーマンスを向上させることができます。このアプローチにより、通常のデータベースの使用からバッファプールを「ウォームアップする」必要がなくなり、既知の一般的なクエリのページを使用してバッファプールを事前にロードします。キャッシュウォームアップの詳細については、MariaDB ドキュメントの「バッファプールのダンプと復元
MariaDB 10.3 以上の DB インスタンスでは、キャッシュウォームアップはデフォルトで有効になっています。有効にするには、DB インスタンスのパラメータグループで innodb_buffer_pool_dump_at_shutdown
および innodb_buffer_pool_load_at_startup
パラメータを 1 に設定します。パラメータグループのこれらのパラメータ値を変更すると、パラメータグループを使用するすべての MariaDB DB インスタンスに影響します。特定の MariaDB DB インスタンスの キャッシュウォームアップを有効にするには、それらの DB インスタンスの新しいパラメータグループを作成することが必要になる場合があります。パラメータグループについては、「Amazon RDS のパラメータグループ」を参照してください。
キャッシュウォームアップは、主に、スタンダードストレージを使用する DB インスタンスにパフォーマンス上のメリットをもたらします。PIOPS ストレージを使用する場合、一般的に大きなパフォーマンス上のメリットは見られません。
重要
フェイルオーバー時など、MariaDB DB インスタンスが正常にシャットダウンしなかった場合、バッファプールの状態はディスクに保存されません。この場合、DB インスタンスが再開されるときに、MariaDB は利用可能なバッファプールファイルをロードします。特に害はありませんが、復元済みバッファプールは、再起動前のバッファプールの最新の状態を反映していない可能性があります。スタートアップ時に キャッシュをウォームアップするために、バッファプールの最新の状態を利用できるように、定期的に「オンデマンド」でバッファプールをダンプすることをお勧めします。バッファプールをオンデマンドでダンプまたはロードできます。
自動で定期的にバッファプールをダンプするイベントを作成できます。例えば、次のステートメントは、1 時間ごとにバッファプールをダンプする periodic_buffer_pool_dump
という名前のイベントを作成します。
CREATE EVENT periodic_buffer_pool_dump ON SCHEDULE EVERY 1 HOUR DO CALL mysql.rds_innodb_buffer_pool_dump_now();
詳細については、MariaDB のドキュメントの「イベント
オンデマンドでのバッファプールのダンプとロード
次のストアドプロシージャを使用して、 キャッシュをオンデマンドで格納しロードできます。
バッファプールの現在の状態をディスクにダンプするには、mysql.rds_innodb_buffer_pool_dump_now ストアドプロシージャを呼び出します。
バッファプールの保存された状態をディスクからロードするには、mysql.rds_innodb_buffer_pool_load_now ストアドプロシージャを呼び出します。
進行中のロードオペレーションをキャンセルするには、mysql.rds_innodb_buffer_pool_load_abort ストアドプロシージャを呼び出します。