質問
🕓 事例公開日 : 2025-07-22
【背景】
本番環境システムでRDSのCPU使用率が95%を超える障害が発生し、原因調査が必要になった。1. 事象
監視アラート内容:
PROBLEM:リソース監視 RDS-database01-123456789000 CPU使用率 (10分間95%超過)◆監視対象
システムID:123456789000
システム名:本番環境システム◆時間
障害検知日時:2025-06-30 12:22:35◆監視項目
◆検出した値 98.92 %
リソース監視 RDS-database01-123456789000 CPU使用率 (10分間95%超過)
症状の説明:
本番環境のRDSでCPU使用率が異常に高くなり、10分間にわたって95%を超過した状態が続いた。2. 発生条件
2025年6月30日12:22頃の本番環境システムにて、データベースへの負荷が集中した際に発生。Performance Insightsでの詳細なSQL分析を通じて、高負荷の原因となったクエリの特定を希望している。回答
1. 原因
技術的な原因:
2025年6月30日12:22頃に実行された複数のSELECTクエリが、データベースのCPUリソースを大量に消費したことが原因でした。技術的要因の分析:
・複雑なJOIN処理:複数テーブルを結合する処理 → CPU使用率の急激な上昇・大量データの集計処理:COUNT関数を含む集計クエリ → データベースエンジンへの高負荷
・同時実行される重いクエリ:複数の負荷の高いSQL文 → リソース競合の発生
・文字列操作処理:substring、RIGHT関数等の文字列処理 → 追加的なCPU消費
根本的な要因:
データベースに対して同時に実行された複数の重いクエリが、利用可能なCPUリソースを超過したため2. 対応方法
Performance Insights分析結果:
該当時間帯の高負荷SQLを特定し、以下の2つのクエリが主要な負荷要因であることを確認しました: 1.高負荷SQL 1:SELECT ... (詳細なSQL文は省略)
- 複数テーブルのJOIN処理と文字列操作を含む複雑なクエリ 2.
高負荷SQL 2:SELECT COUNT ... (詳細なSQL文は省略)
- 大量データの件数取得を行う集計処理
推奨される対策:
1. クエリの実行タイミングを分散させる2. インデックスの見直しを検討する
3. 必要に応じてクエリの最適化を実施する
3. 原因究明に至るまでの調査方法
1. 監視システムからのアラート受信(2025-06-30 12:22:35)2. RDS CPU使用率の詳細確認(98.92%の高負荷を確認)
3. Performance Insightsでの該当時間帯の分析実施
4. 高負荷SQLの特定と抽出
5. SQL実行パターンの分析と負荷要因の特定
※Performance Insightsの仕様により、取得できるSQL文は完全版ではありませんが、負荷分析には十分な情報が含まれています。