История изменений
Исправление AngryElf, (текущая версия) :
А причина мутной логики в том, что многие программы/библиотеки берут памяти больше, чем надо
Это я понимаю.
, если всем резервировать всю запрашиваемую ими память, то без swap'а совсем никак.
Только вот беда, что если в какой-то момент программы начинают использовать ту, выделенную когда-то давно память, вдруг оказывается, что её нету.
OOM-киллер на сервере бесит тем, что убивает самое жрущее, а не охреневшее приложение. Выглядит это так - база данных, в один процесс, настроена юзать 50% RAM. Апач с динамическим количеством воркеров вдруг начинает плодиться и, например, один из потоков еще начинает течь. В итоге, когда память кончается, приходит OOM-киллер и убивает самое жрущее - базу данных, которая вообще мирно работала и никого не трогала.
Я не уверен, как бы мне тут помог своп. Ну разве что эпичным тупняком вместо убийства лишних. А вот vm.oom_kill_allocating_task - видимо, то что надо.
Исходная версия AngryElf, :
А причина мутной логики в том, что многие программы/библиотеки берут памяти больше, чем надо
Это я понимаю.
, если всем резервировать всю запрашиваемую ими память, то без swap'а совсем никак.
Только вот беда, что если в какой-то момент программы начинают использовать ту, выделенную когда-то давно память, вдруг оказывается, что её нету.
OOM-киллер на сервере бесит тем, что убивает самое жрущее, а не охреневшее приложение. Выглядит это так - база данных, в один процесс, настроена юзать 50% RAM. Апач с динамическим количеством воркеров вдруг начинает плодится и, например, один из потоков еще начинает течь. В итоге, когда память кончается, приходит OOM-киллер и убивает самое жрущее - базу данных, которая вообще мирно работала и никого не трогала.
Я не уверен, как бы мне тут помог своп. Ну разве что эпичным тупняком вместо убийства лишних. А вот vm.oom_kill_allocating_task - видимо, то что надо.