0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RDSのタイムアウトをパラメータ設定で改善した話

Last updated at Posted at 2026-01-22

現象

運用中のRDSで、以下の減少が発生しました。

  • 特定の重いクエリ(集計やソート)がタイムアウトで失敗する。
  • 以前から実行時間が異常に長く、不安定だった。

原因調査:CloudWatchで確認

CloudWatchメトリクスを確認したところ、クエリ実行時間付近に以下の挙動が発生していました。

  1. SwapUsage が高い
  2. FreeableMemory が枯渇

メモリが足りず、低速な**スワップ領域(ディスク)**が使われていたため、処理がタイムアウトしていました。

解決策:work_mem の調整

メモリが足りないということでメモリを増やせば解決するのでは、と仮定づけて調査開始。
work_mem を増やすと改善する」という情報を発見し、パラメーターグループを変更しました。

1 該当パラメータグループを選択し、編集を押下
押下.png

2 work_mem部分を変更して反映させる
work_mem.png

尚、デフォルトパラメータグループは変更できないためカスタムパラメータグループの必要があります。

  • 変更内容: work_mem を 4MB(デフォルト)から 64MB に増量
  • 理由: work_mem はソートやジョインに使う作業メモリ。これが足りないとディスク(一時ファイル)への書き出しが発生し、スワップを誘発するため。

イメージ図:work_memと処理の流れ

【改善前:work_memが少ない】

メモリに収まりきらないデータが溢れ、ディスクI/Oが発生。結果として激しく低速化し、タイムアウトへ。

Gemini_Generated_Image_v7wbpmv7wbpmv7wb.png

【改善後:work_memを増やした】

すべての処理が高速なメモリ内で完結。

Gemini_Generated_Image_vltatuvltatuvlta.png


結果

  • SwapUsage: 低い値で安定。
  • 処理時間: タイムアウトしていたクエリが、詰まることなく正常に完了

まとめ

RDSのタイムアウト調査では、CPU使用率だけでなく SwapUsage も確認する。
対策として、他のデータベースもcloudwatchで該当部分の監視をして、事前に把握しておく。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?