MySQL を実行している Amazon Relational Database Service (Amazon RDS) インスタンスのサーバーアクティビティを確認する方法を教えてください。

サーバーアクティビティを使用すると、InnoDB ストレージエンジンの状態を表示したり、実行中のクエリを特定したり、インスタンス上のデッドロックを見つけたりできるため、パフォーマンス問題の原因特定に役立ちます。

MySQL のインスタンスで実行されているすべてのスレッドを表示するには、MySQL PROCESS Server Administration 権限が付与されている必要があります。それ以外の場合、SHOW PROCESSLIST では、お客様の使用中の MySQL アカウントに関連付けられているスレッドのみが表示されます。SHOW ENGINE を使用し、InnoDB ストレージエンジンの状態に関する情報を表示するには、MySQL PROCESS Server Administration 権限も付与されている必要があります。

インスタンスのサーバーアクティビティを表示するには、以下のステップに従います。

1.    MySQL インスタンスの一般クエリおよびスロークエリのログを有効にします

2.    MySQL データベースエンジンが実行されている DB インスタンスに接続します。

3.     以下のコマンドを実行します。

SHOW FULL PROCESSLIST\G
SHOW ENGINE INNODB STATUS\G

注意: 各ステートメントの先頭 100 文字以上を表示するには、FULL キーワードを使用します。

4.    待機中のトランザクションや待機中のトランザクションをブロックしているトランザクションを確認するには:

SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query FROM information_schema.innodb_lock_waits w INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id;

注意: これらの出力を短い間隔で継続的に収集することをおすすめします (60 秒毎など)。複数の出力を確認することによって、エンジンの状態を大局的に見ることができ、パフォーマンス問題のトラブルシューティングに役立ちます。


このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日: 2015 年 7 月 07 日

更新日: 2018 年 09 月 18 日