データベースの運用保守またはトラブルシューティングを行う際は、パフォーマンスメトリックを表示する必要があります。ApsaraDB RDS for MySQL の標準監視機能は、さまざまなパフォーマンスメトリックと強力な診断機能を提供します。これにより、データベースの異常を早期に検出し、トラブルシューティング方法を提供することができます。また、RDS インスタンスの一般的な問題に対する診断ビューも提供されており、異常を迅速に特定することができます。
使用方法
ApsaraDB RDS for MySQL の [標準監視] 機能はアップグレードされ、Database Autonomy Service (DAS) のパフォーマンストレンド機能と統合され、より多くの機能を提供します。詳細については、「パフォーマンストレンド」をご参照ください。
DAS は、機械学習と専門家の経験に基づいて設計された、安定性、安全性、効率性に優れたクラウドサービスであり、データベースの自動認識、リカバリ、最適化、運用保守、セキュリティ保証を実現します。DAS は、手動操作によるサービス障害を防止するのに役立ちます。詳細については、「DAS の概要」をご参照ください。
カスタムビュー:標準監視機能は、より多くのパフォーマンス監視メトリックを提供し、カスタムビューをサポートしています。ビジネス要件に基づいてメトリックを選択し、カスタムビューを作成できます。
説明メトリックに対応するパフォーマンスパラメータの詳細については、「パフォーマンスパラメータ」をご参照ください。
一般的な問題の診断ビュー:[メモリ OOM 診断]、[読み取り専用インスタンスの遅延診断]、[容量不足問題の診断]、[CPU ジッター診断]、[ラージトランザクション認識診断]。ビジネス要件に基づいて診断ビューを選択し、診断ビューを使用して問題を迅速に特定できます。
自動診断:標準監視機能は、RDS インスタンスのイベントを早期に検出し、イベントを自動的に診断して根本原因を分析し、提案を提供します。
手動診断:標準監視機能では、手動診断を実行する時間範囲を指定することもできます。
標準監視情報を表示する標準の監視情報を表示する
ApsaraDB RDS コンソールにログインし、[インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけ、インスタンス ID をクリックします。
左側のナビゲーションウィンドウで、[監視とアラート] をクリックします。
[標準監視] タブで、[標準ビュー] タブまたは [カスタムビュー] タブをクリックします。
[標準ビュー] タブで、時間範囲を選択して、メトリックのトレンドとさまざまなイベントに関する統計情報を表示します。
[トレンド比較を追加] をクリックすると、異なる時間範囲のメトリックのパフォーマンストレンドの比較を表示できます。
監視項目の [情報] アイコンをクリックすると、監視項目のメトリックとメトリックの説明を確認できます。
説明時間範囲を指定する場合、終了時刻は開始時刻よりも後でなければならず、開始時刻と終了時刻の間隔は 30 日を超えることはできません。
[イベント統計] セクション:[詳細の表示] をクリックすると、パフォーマンスイベント タブに移動します。このタブでは、例外、最適化イベント、および自動スケーリングイベントに関する詳細を表示できます。詳細には、スケジュール済み、実行中、および実行済みのイベントが含まれます。
[トレンドチャート] セクション:
システムは、一般的な問題の診断ビューを提供します。診断ビューに基づいて、問題の原因を迅速に特定できます。
次の診断ビューが提供されています:[メモリ OOM 診断]、[読み取り専用インスタンスの遅延診断]、[容量不足問題の診断]、[CPU ジッター診断]、[ラージトランザクション認識診断]。詳細については、「診断ビューを使用する」をご参照ください。
説明監視項目の右側にある
アイコンをクリックすると、監視項目のメトリックを表示できます。
[クラシックビュー] を選択した場合は、[その他のメトリック] をクリックして、システムに表示させたい監視項目を選択できます。
[クラシックビュー] を選択した場合は、イベントの重大度レベルを選択できます。選択した重大度レベルのイベントが検出されると、システムは検出されたイベントを [mysql CPU 使用率/メモリ使用量] および [セッション] トレンドチャートに表示します。
トレンドチャートのイベントをクリックすると、イベント詳細の診断結果を表示できます。
監視項目のトレンドチャートで時間範囲を指定し、[診断] をクリックすると、選択した時間範囲のメトリックを分析できます。
監視項目のトレンドチャートで [一般的な原因] をクリックすると、監視項目の例外の一般的な原因を表示できます。
監視項目のトレンドチャートで [詳細] をクリックすると、チャートを展開できます。また、時間範囲を変更して、監視項目のトレンドを表示することもできます。
[カスタムビュー] タブで、[監視ダッシュボードを追加] をクリックして、監視するメトリックを表示するカスタムダッシュボードを作成します。メトリックのパフォーマンスパラメータの詳細については、「パフォーマンスパラメータ」をご参照ください。
[ノードとメトリックを追加] をクリックして、ダッシュボードの RDS インスタンスとメトリックを選択します。
[表示モード] パラメータを [マージ表示] または [個別表示] に設定できます。
[マージ表示]:複数のメトリックが同じトレンドチャートに表示されます。
[個別表示]:各メトリックが個別のトレンドチャートに表示されます。
[チャートレイアウト] パラメータを設定して、各行のメトリックのトレンドチャートの数を指定できます。
メトリックのトレンドチャートで [詳細] をクリックすると、チャートを展開できます。また、時間範囲を変更して、メトリックのトレンドを表示することもできます。
診断ビューを使用する
メモリ OOM 診断
[メモリ OOM 診断] ビューに基づいて、メモリ不足 (OOM) の問題を分析できます。
[メモリ使用量]:
メモリ使用量が 7 日以上など長期間にわたってゆっくりと継続的に増加し、InnoDB バッファープールの使用量が変化しない場合は、メモリリークが発生している可能性があります。
メモリ使用量が急激に増加し、InnoDB バッファープールの使用量が変化しない場合は、サービスにトラフィックの急増が発生している可能性があります。
メモリ使用量と InnoDB バッファープールの使用量の両方が増加する場合は、InnoDB はアクセス時にキャッシュを行い、想定どおりに動作しています。
[常駐メモリ]:メモリ容量を表示します。
[開いているファイル]、[一時ファイルサイズ]、[一時ディスクテーブル]、[ソート行]:メモリ消費量を表示します。
メモリ使用量の増加は、ビジネスメトリックと相関しています。ほとんどの場合、メモリ使用量の増加を引き起こす SQL 文は、OOM エラーのために追跡できません。次の操作を実行することをお勧めします。
ビジネスログを確認して、メモリ使用量の増加の原因を特定します。
メモリ容量を拡張し、SQL Explorer および Audit 機能を有効にします。これにより、SQL 文が実行された時点に基づいて、メモリ使用量の増加の原因を特定できます。詳細については、「SQL Explorer および Audit」をご参照ください。
読み取り専用インスタンスの遅延診断
[読み取り専用インスタンスの遅延診断] ビューに基づいて、読み取り専用 RDS インスタンスのレイテンシ関連の問題を分析できます。
[アクティブセッション]:メタデータロックが存在し、輻輳を引き起こしているかどうかを表示します。
ほとんどの場合、大量のデータがクエリされると、DDL 文の実行時にメタデータロックを取得できません。その結果、DDL 文は他のセッションをブロックし、接続の蓄積を引き起こします。
[常駐メモリ]:メモリ容量を表示します。
[処理された DML 行]、[リクエストされたページ]、[DML/DDL 操作]、[使用済み一時ディスク容量]:一般的なビジネスメトリックを表示します。
[レプリケーション遅延]:レプリケーションレイテンシを表示します。
容量不足問題の診断
[容量不足問題の診断] ビューに基づいて、ストレージ不足の問題を分析できます。
ストレージを占有しているファイルの種類と、各ファイルの種類のストレージ使用量のトレンドを確認できます。ほとんどの場合、次の種類のファイルがストレージを占有しています。
データファイル (user_data_size):ストレージ分析機能を使用して、各データベースとテーブルのストレージ使用量を確認できます。次に、ビジネス要件に基づいて、ストレージ容量を拡張したり、不要なデータを削除したりできます。ストレージ分析機能の詳細については、「ストレージ分析機能を使用する」をご参照ください。データファイルの処理方法の詳細については、「ApsaraDB RDS for MySQL インスタンスがデータファイルによってストレージ容量を使い果たしたためにロック状態になっている場合の対処方法」をご参照ください。
一時ファイル (temp_file_size):データをソートおよびグループ化したり、テーブルを関連付けたりするために SQL 文を実行すると、一時テーブルが生成される場合があります。バイナリログキャッシュファイルは、ラージトランザクションがコミットされる前に生成されます。これらのテーブルとファイルはストレージを占有します。一時ファイルの処理方法の詳細については、「ApsaraDB RDS for MySQL インスタンスが一時ファイルによってストレージ容量を使い果たしたためにロック状態になっている場合の対処方法」をご参照ください。
バイナリログ (binlog_size):バイナリログは、ラージトランザクションによって迅速に生成されます。これらのログはストレージを占有します。バイナリログの処理方法の詳細については、「ApsaraDB RDS for MySQL インスタンスのストレージ容量がバイナリログファイルによって使い果たされた場合の対処方法」をご参照ください。
説明バイナリログがサブスクライブされている場合、バイナリログは早期に削除されず、ストレージを占有する可能性があります。
UNDO ログ (undo_log_size):ほとんどの場合、長時間実行されるクエリのために UNDO ログをクリアできません。長時間実行され、完了していないクエリが存在するかどうかを確認する必要があります。
説明MySQL 5.6 以前のバージョンでは、UNDO ログ用に個別の表領域は提供されていません。
スロークエリログ (slowlog_size):スロークエリログが大量のストレージを占有している場合は、オフピーク時に
TRUNCATE
文を実行してスロークエリログをクリアすることをお勧めします。説明TRUNCATE
文は、マイナーエンジンバージョン 20210630 以降の MySQL 5.7 およびマイナーエンジンバージョン 20210930 以降の MySQL 8.0 でサポートされています。一般クエリログ (general_log_size): このメトリックの値は、エラーログ、パフォーマンスエージェントログ、およびリカバリログの合計サイズです。ほとんどの場合、これらのログの合計サイズは 1 GB 未満です。サイズが 1 GB を大幅に超える場合は、チケットを送信してください。このメトリックは、MySQL カーネルによって定期的に出力されるカーネルメトリックデータを指定します。MySQL の general_log のログサイズを指定するものではありません。
CPU ジッター診断
[CPU ジッター診断] ビューに基づいて、CPU ジッターの問題を分析できます。次の監視項目が提供されています。
ビジネス監視項目:
[ページリクエスト]:ほとんどの場合、バッファープール内のリクエスト数のトレンドは、CPU 使用率に基づいて変動します。
[処理された行]:CPU 使用率とシステムによって処理された行数の関係を示します。この監視項目に基づいて、CPU 使用率が変化したときに処理された行数が急激に増加するかどうかを確認できます。
[クエリ]:CPU 使用率が変化したときに実行される SQL 文の種類を示します。
接続関連の監視項目:
[実行中のスレッド]:高い同時実行性は、高い CPU 使用率につながります。メタデータロックまたは行ロックは、接続の蓄積を引き起こし、CPU 使用率に影響を与えます。
CPU ジッターの一般的な原因:
[ページリクエスト] または [処理された行] 監視項目が変化します。この場合、CPU 使用率が変化する期間を選択し、[診断] をクリックして、問題の詳細を取得できます。
アクティブな接続数が増加します。この場合、ビジネス側から問題を解決する必要があります。
ラージトランザクション認識診断
[ラージトランザクション認識診断] ビューに基づいて、ラージトランザクション関連の問題を分析できます。
[接続されたスレッド]、[一時ファイルサイズ]、[バイナリログ容量]:ラージトランザクションが存在するかどうかを表示します。次のイベントのいずれかが発生した場合、データベースにラージトランザクションが存在します。
アクティブセッションが蓄積されます。
一時ファイルによって占有されているストレージが増加し、その後減少します。
一時ファイルによって占有されているストレージは減少しますが、バイナリログによって占有されているストレージは増加します。
[処理された行]、[論理ページ書き込み]、[1 秒あたりのクエリ数]:ラージトランザクションの種類を表示します。
たとえば、少数のクエリが実行されたが、多数の行が削除された場合は、データを削除するラージトランザクションが存在します。
ラージトランザクションは、バイナリログの書き込みのブロッキングを引き起こします。
ラージトランザクションが存在する場合、一時テーブル (バイナリログキャッシュ) によって占有されているストレージは徐々に増加し、その後安定します。
一時テーブルによって占有されているストレージが安定すると、バイナリログによって占有されているストレージが増加します。バイナリログは、グローバルにシリアルモードで書き込まれます。その結果、他のトランザクションがブロックされ、接続の蓄積が発生します。
RDS インスタンスで RDS 高可用性版が実行されている場合、プライマリ/セカンダリスイッチオーバーのためにプライマリ RDS インスタンスとセカンダリ RDS インスタンスのステータスを確認するために実行される文がブロックされます。その結果、RDS インスタンスでプライマリ/セカンダリスイッチオーバーが直接実行されます。
ラージトランザクションを小さなトランザクションに分割し、小さなトランザクションを個別に実行することをお勧めします。たとえば、WHERE
句を DELETE
文に追加して、一度に削除されるデータ量を制限し、削除操作を小さな操作に分割できます。
参照資料
次のトピックでは、一般的なパフォーマンス問題のトラブルシューティング方法について説明しています。
自律型サービス関連の機能を使用して、RDS インスタンスのパフォーマンス診断と最適化を実行できます。詳細については、「DAS の概要」をご参照ください。
関連操作
操作 | 説明 |
インスタンスのパフォーマンスデータをクエリします。 |