Closed6
Spring Batchの実行履歴が肥大化して書き込み負荷が上昇した
RDS CPU Utilizationが上昇傾向であることを観測した。
CloudWatch上、RDSに関わるその他のメトリクスは次のようだった:
- RDS CPU Utilizationが上昇傾向
- RDS Freeable Memoryは定期的に解放されていそうで安定
- RDS Read IOPSはCPU Utilizationとの相関なく安定
- RDS Write IOPSはが大きく跳ねてそこから上昇傾向
- RDS Read ThroughputはCPU Utilizationとの相関なく安定
- RDS Write ThroughputはWrite IOPSと相関ありで同じような動き
- RDS Free Storage Spaceが減少傾向
- RDS Database ConnectionsはCPU Utilizationとの相関なく安定
変化が起きたタイミングは先のデプロイであるようだった。
肥大化による書き込み負荷への影響を疑う。
レコードの状態はn_live_tupの降順で次が上位だった:
- batch_job_execution_params
- batch_step_execution_context
- batch_step_execution
- batch_job_execution
- batch_job_execution_context
- batch_job_instance
いずれもSpring Batchの管理テーブル。
なお、ここで:
項目 | 意味 | 主な用途 |
---|---|---|
n_live_tup | 現在有効な行の推定件数 | テーブルの規模をざっくり把握する |
n_dead_tup | 無効化された削除済み行の推定件数 | bloat・autovacuum状況の診断に使う |
手違いで、ジョブの実行を想定よりも多くしてしまっていたことが原因と判明した。実行履歴のローテートはしているが、それを上回るくらいになってしまっていた。
このスクラップは3日前にクローズされました