Linux-Kernel
什麼是 Out of Memory 資訊:犧牲孩子?
我的電腦最近記憶體不足(在處理大型 GIS 數據集時編譯軟體的意外結果)。在詳細說明它如何處理 OOM 條件的系統日誌中是以下行:
Out of memory: Kill process 7429 (java) score 259 or sacrifice child
那是
or sacrifice child
關於什麼的?當然,這不是在思考一些黑暗的儀式來讓事情繼續下去嗎?
從我找到oom_kill.c的源文件中,OOM Killer 在將此類消息寫入系統日誌後,會檢查已辨識程序的子程序,並評估是否可能殺死其中一個程序來代替程序本身。
這裡從源文件中提取的註釋解釋了這一點:
/* * 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. */