Amazon RDS MySQL DB インスタンスのサーバーアクティビティを表示する方法を教えてください。

最終更新日: 2019 年 12 月 13 日

MySQL を実行している Amazon Relational Database Service (Amazon RDS) DB インスタンスのサーバーの活動状況を表示する方法を教えてください

解決方法

サーバーアクティビティを使用して、InnoDB ストレージエンジンの状態の表示、実行中のクエリの識別、または DB インスタンスのデッドロックの検索を行うことで、パフォーマンスの問題の原因を特定できます。

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

DB インスタンスのサーバーアクティビティを表示するには、次の手順に従ってください。

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

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 秒毎など)。複数の出力を確認することによって、エンジンの状態を大局的に見ることができ、パフォーマンス問題のトラブルシューティングに役立ちます。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?