RDS for MySQL のグローバルステータス履歴の管理
ヒント
データベースのパフォーマンスを分析するには、Amazon RDS のPerformance Insights を使用することもできます。詳細については、「Amazon RDS での Performance Insights を使用したDB 負荷のモニタリング」を参照してください。
MySQL はオペレーションに関する情報を提供する多くのステータス可変を維持しています。その値は、DB インスタンスのロックまたはメモリ問題の検出に役立ちます。これらのステータス可変の値は、最後に DB インスタンスがスタートされてからの累積です。ほとんどのステータス可変は、FLUSH STATUS
コマンドを使用して 0 にリセットできます。
これらの値を経時的にモニタリングできるように、Amazon RDS は、これらのステータス可変値のスナップショットを作成し、前回のスナップショット以降に行われた変更と共にテーブルに書き込む一連の手順を提供します。このインフラストラクチャは Global Status History (GoSH) と呼ばれ、5.5.23 で始まるバージョンのすべての MySQL DB インスタンスにインストールされています。GoSH は、デフォルトでは無効化されています。
GoSH を有効にするには、初期にパラメータ event_scheduler
を ON
に設定し、DB パラメータグループからイベントスケジューラーを有効にします。MySQL 5.7 を実行している MySQL DB インスタンスの場合、パラメータ show_compatibility_56
を 1
にサーバーしてください。DB パラメータグループの作成と変更の詳細については、「Amazon RDS のパラメータグループ」を参照してください。このパラメータを有効にした場合の副作用の詳細については、「MySQL 5.7 リファレンスマニュアル」の「show_patibility_56
次に、以下の表の手順を使用して、GoSH を有効化し、設定します。まず MySQL DB インスタンスに接続し、次に以下に示す適切なコマンドを発行します。詳細については、「MySQL DB インスタンスへの接続」を参照してください。プロシージャごとに、次のコマンドを実行し、procedure-name
を置き換えます。
CALL
procedure-name
;
次の表に、前のコマンドで procedure-name
に使用できるすべてのプロシージャを示します。
手順 | 説明 |
---|---|
|
GoSH のデフォルトのスナップショット作成を有効化します。間隔は |
|
スナップショット作成の間隔を分単位で指定します。デフォルト値は 5 です。 |
|
スナップショットを無効にします。 |
|
オンデマンドでスナップショットを作成します。 |
|
|
|
テーブルのローテーション間隔を日単位で指定します。デフォルト値は 7 です。 |
|
テーブルのローテーションを無効にします。 |
|
|
GoSH の実行中は、書き込んでいるテーブルに対してクエリを実行できます。例えば、Innodb バッファープールのヒット率を照会するには、次のクエリを実行します。
select a.collection_end, a.collection_start, (( a.variable_Delta-b.variable_delta)/a.variable_delta)*100 as "HitRatio" from mysql.rds_global_status_history as a join mysql.rds_global_status_history as b on a.collection_end = b.collection_end where a. variable_name = 'Innodb_buffer_pool_read_requests' and b.variable_name = 'Innodb_buffer_pool_reads'