RDS CPU使用率高騰時のPerformance Insights SQL分析

質問

🕓 事例公開日 : 2025-07-22

【背景】

本番環境システムでRDSのCPU使用率が95%を超える障害が発生し、原因調査が必要になった。



1. 事象

監視アラート内容:

PROBLEM:リソース監視 RDS-database01-123456789000 CPU使用率 (10分間95%超過)

◆監視対象
システムID:123456789000
システム名:本番環境システム

◆時間
障害検知日時:2025-06-30 12:22:35

◆監視項目
リソース監視 RDS-database01-123456789000 CPU使用率 (10分間95%超過)

◆検出した値 98.92 %

症状の説明:

本番環境の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文は完全版ではありませんが、負荷分析には十分な情報が含まれています。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
Powered by Zendesk