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