Kernel

如何讓 OOM Killer 更被動

  • July 12, 2013

我能夠使用舊的 2.6.x 核心在 VPS 上編譯具有 1 GiB RAM 的程序。但是當我嘗試在具有 1.1 GiB RAM 和 3.9.x 核心的 VPS 上編譯它時,編譯器總是被 OOM Killer 殺死。

如何讓OOM更被動?

您不會更改 OOM 殺手 - 這樣做是有原因的。但你應該做的是減少記憶體過度使用。預設情況下,這是 50%(請參閱 /proc/sys/vm/ overcommit_ratio)以處理程序試圖申請比他們需要的更多記憶體的情況。但是,如果您有編寫良好的程序,它們只聲稱他們需要的記憶體量(或者您正在執行從不執行 gc 的 JVM,因為他們不知道系統記憶體緊張)然後 OOM Killer 開始收集東西.

如果您的 FS 上有足夠的空間,您可以通過以下方式向 VM 添加臨時交換空間:

# fallocate -l 4g /SWAP
# mkswap /SWAP
# swapon /SWAP

但請記住,如果您的系統正在積極交換,編譯將不會是一個快速的過程。

引用自:https://serverfault.com/questions/522264