【AWS発表】Amazon RDSのMySQLキャッシュウォーミング
リレーショナルデータベースシステムはバッファリングやキャッシュの目的のためにメインメモリ(RAM)を効率的に使用する必要があります。 RAMはSSDや磁気ストレージに比べて、はるかに高速で簡単にアクセスできます。キャッシュやバッファプールを適切なサイズにチューニングすれば、データベースの性能を驚くほど高めることができます。
本日、InnoDBのキャッシュウォーミングをサポートすることで、Amazon RDS for MySQLを強化いたしました。 MySQLを実行しているAmazon RDSのDBインスタンスをシャットダウンする際、バッファープールの状態を保存し、後でインスタンスを起動する際に、リロードするよう設定することができます。 インスタンスはウォームアップを必要とせずに、効率的な方法で、一般的なクエリを処理できるようになります。
この機能はMySQL 5.6 (またはそれ以降)を実行しているRDS DBインスタンスに対してサポートされています。 この機能を有効にするためには、DBインスタンスのパラメーターグループで、innodb_buffer_pool_dump_at_shutdown
とinnodb_buffer_pool_load_at_startup
パラメータを1に設定するだけです。
MySQL 5.6.19およびそれ以降のユーザーはストアドプロシージャ(mysql.rds_innodb_buffer_pool_dump_now
、mysql.rds_innodb_buffer_pool_load_now
、mysql.rds_innodb_buffer_pool_load_abort
)を使って、バッファープールを管理することが出来ます。
この機能をいったん有効にすると、バッファープールがDBインスタンスの正常なシャットダウンの一部として保存されるようになります。 フェイルオーバー時のように、インスタンスが正常にシャットダウンされない場合は保存されません。 この場合、インスタンスが再起動した際、バッファープールはロードされません。これは無害ではありますが、おそらく効率が悪くなります。 この潜在的な非効率が懸念の原因である場合、アプリケーションから、定期的にストアドプロシージャ mysql.rds_innodb_buffer_pool_dump_now
を呼び出すことで、解決できる可能性があります。
2014年の8月14日以前に起動もしくは再起動したDBインスタンスがこの新機能にアクセスするためには、再起動をする必要があります。 それ以降に起動または再起動したインスタンスについては、なにもする必要はありません。 さらに詳しい情報については、Amazon RDS User GuideのMySQL InnoDB Cache Warmingをご覧ください。
-- Jeff;
この記事はAWSシニアエバンジェリスト Jeff BarrのAmazon Web Services Blogの記事、 MySQL Cache Warming for Amazon RDSを 堀内康弘 (Facebook, Twitter)が翻訳したものです。
コメント