Я могу скомпилировать программу с 1 ГиБ ОЗУ на VPS, используя старое ядро 2.6.x. Но когда я пытался скомпилировать его на VPS с 1,1 ГиБ ОЗУ и ядром 3.9.x, компилятор всегда убивал OOM Killer.
Как сделать OOM более пассивным?
Убийцу OOM не меняешь - на то есть причина. но что вам следует сделать, так это уменьшить чрезмерную загрузку памяти. По умолчанию это 50% (см. / Proc / sys / vm /overcommit_ratio) для обработки случая, когда программы пытаются потребовать больше памяти, чем им когда-либо нужно. Но если у вас есть хорошо написанные программы, которые требуют только необходимый им объем памяти (или вы используете JVM, которые никогда не выполняют gc, потому что они не знают, что система ограничена в памяти), тогда OOM Killer начинает собирать материал .
Если у вас достаточно места на вашей FS, вы можете добавить временное пространство подкачки к вашей виртуальной машине с помощью:
# fallocate -l 4g /SWAP
# mkswap /SWAP
# swapon /SWAP
Но имейте в виду, что компиляция не будет быстрым процессом, если ваша система активно меняет местами.