テクノロジー · 実用ガイド
コンテナが 137 で終了、または「OOMKilled」と表示?メモリを増やす前に SIGKILL 境界を証明する
137 はプロセスが SIGKILL を受けたことを示しますが、送信者は示しません。同じ障害時間帯のランタイム、cgroup、ノード、オーケストレーターの証拠を突き合わせてから制限を変えます。

終了コードは手掛かりであり根本原因ではありません。137 は通常 SIGKILL を表しますが、プロセスは送信者を報告できません。OOMKilled も同じ試行と時間帯に結び付く場合だけ強い証拠です。
メモリ変更前に時刻付き台帳を作り、ランタイム終了記録、cgroup カウンター、ノードカーネル、オーケストレーターイベントを比較します。各層が一致するか、不一致を明示した場合だけ診断を受け入れます。
1. 一つの障害時間帯を固定する
正確なコンテナ試行、ノード、開始・終了時刻、コード、シグナル、ランタイム理由、最後の動作を記録します。再起動は状態を置き換えます。
時刻を正規化し生の出力を保持します。現在のカウンターを古いログや別レプリカと混ぜません。
2. 137 を SIGKILL の証拠として扱う
送信候補としてカーネル OOM、運用者、自動化、ランタイムのタイムアウト、オーケストレーターの猶予期間、特権プロセスを列挙します。
OOMKilled は同じ試行に結び付けます。false または欠落なら OOM を仮説のままにします。
3. メモリ境界を特定する
実際の cgroup と上限を特定し、memory.max、使用量、memory.events とリーフ・祖先の差分を保存します。
リーフの oom_kill 増加はその境界を支持し、ノード OOM はより広い境界を支持します。差分がなければ検証を続けます。
4. ノードとオーケストレーターを相関する
同じ秒のログとイベントを読み、メモリ圧力、退避、削除、プローブ失敗、ロールアウト、ドレイン、猶予満了を探します。
得られない証拠は欠落として記録します。制限やローテーションは確信度を下げますが、仮説を事実にはしません。
5. 証明した境界を直す
コンテナ OOM なら作業セット、割り当てピーク、並行度を測ります。ノード圧力、停止エスカレーション、外部キルなら容量、終了処理、送信者を直します。
制御負荷で再現し、oom_kill 差分、ノード OOM、説明不能なエスカレーションがなく、終了記録が期待どおりなら受け入れます。
