Есть ли способ заставить OOM Killer работать и предотвратить зависание Linux? Я запускаю приложения на Java и C #, где обычно используется любая выделенная память, и (если я правильно понимаю) чрезмерные коммиты приводят к зависанию машины. Прямо сейчас, как временное решение, я добавил,
vm.overcommit_memory = 2
vm.overcommit_ratio = 10
в /etc/sysctl.conf.
Спасибо всем, кто может объяснить, почему существующий OOM killer не может работать правильно гарантированным образом, убивая процессы всякий раз, когда ядру не хватает «реальной» памяти.
РЕДАКТИРОВАТЬ - многие ответы совпадают с ответами Майкла «если вы испытываете проблемы, связанные с убийцей ООМ, вам, вероятно, нужно исправить то, что заставляет вас исчерпать память». Я не думаю, что это правильное решение. Всегда будут приложения с ошибками, и я бы хотел настроить ядро так, чтобы вся моя система не зависала. Учитывая мое текущее техническое понимание, это не кажется невозможным.