無料ツール|印刷用チェックリスト
DBコネクション枯渇・デッドロックの見つけ方と一次対処チェックリスト
最低ライン(優先順位つき:これだけで回る) 1) 現場を見る:`SHOW FULL PROCESSLIST` / `pg_stat_activity` で接続と長時間クエリを確認する 2) 原因を分ける:接続数が上限に張り付き=枯渇、余裕ありでロック待ち=デッドロックと切り分ける 3) 気づく仕組み:重要な DB に「接続数が上限の◯割で通知」の監視を1本入れる
余力が出たら拡張
slow query logを有効にし、詰まりの元になる重いクエリを平時から把握する- 接続リークが疑わしいアプリは、コネクションプールの上限・接続の閉じ方を見直す
- 繰り返すデッドロックは
INNODB STATUSの記録から、更新順序・トランザクションの短縮で対策する
免除条件(省略可)
- 使い捨ての検証 DB や、止まっても業務に影響しない一時環境は監視を省略可。ただし「詰まったときにまず接続を見る」手順だけは共有しておく。
確認項目
- DB が詰まったとき、まず
SHOW FULL PROCESSLIST/pg_stat_activityで接続を確認する手順を知っている -
max_connectionsと現在の接続数を並べて、枯渇かどうかを判断できる - 接続数に余裕があるのに固まる場合はデッドロック(ロック待ち)を疑える
- MySQL なら
SHOW ENGINE INNODB STATUSでデッドロックの詳細を確認できる - 詰まりの元の長時間クエリを、
KILL/pg_terminate_backendでピンポイントに止められる -
Sleep接続の溜まり(接続リーク)を、PROCESSLISTから読み取れる - 重要な DB に「接続数が上限の◯割で通知」の監視が入っている
- 「再起動で直った」で終わらせず、いつ・何が詰まったかを記録に残している
この内容は記事「DBコネクション枯渇・デッドロックの見つけ方と一次対処」のチェックリストです。印刷してそのままお使いいただけます。 / 無料ツール一覧へ