メモリ不足メッセージ:子供の犠牲とは何ですか?

メモリ不足メッセージ:子供の犠牲とは何ですか?

最近、私のコンピュータにメモリが不足しています(大規模なGISデータセットで作業しているときにソフトウェアをコンパイルするときに予期しない結果が発生しました)。システムログには、次の行に示すようにOOMの状況を処理する方法が詳しく説明されています。

Out of memory: Kill process 7429 (java) score 259 or sacrifice child

それは何のor sacrifice child内容ですか?まさか仕事を続けるためにどんな暗い意識を考えているのではないでしょうか。

ベストアンサー1

私が見つけたソースファイルからoom_kill.c、OOM Killerは、これらのメッセージがシステムログに書き込まれた後に識別されたプロセスの子プロセスを確認し、プロセス自体の代わりにそのプロセスの1つを終了できるかどうかを評価します。

以下は、これを説明するソースファイルから抽出したコメントです。

/*
 * If any of p's children has a different mm and is eligible for kill,
 * the one with the highest oom_badness() score is sacrificed for its
 * parent.  This attempts to lose the minimal amount of work done while
 * still freeing memory.
 */

おすすめ記事