1. Большинство приложений не обрабатывают ошибки выделения, это может приводить к неожиданному поведению. 2. Трудно найти оптимальное значение overcommit ratio, хотя это может быть не проблема не сервере с предсказуемой нагрузкой. - Если выставить большой ratio, то получим тот же эффект, что и при наличии дефолтного оверкоммита, и будет приходить киллер. При низком overcommit ratio просто получим неполную утилизацию физической памяти. - Процессы будуть падать при полупустом свопе или при полупустой памяти. - Если нужно огараничить память, то лучше использовать контрольные группы и MemoryMax и MemorySwapMax - эти параметры ограничивают физическую память, а не виртуальную, в отличие от случая с запретом оверкоммита. Еще альтератива - юзерспейсный демон earlyoom - он сначала отправляет SIGTERM, завершая процессы по возможности более корректно
Ты же понимаешь, что отключать оом киллер без отключения оверкоммита бессмысленно? Просто будешь вместо sigkill по OOM ловить sigsegv, но при этом с риском отказа ядра. Я-то не против оверкоммита (реальность такова, что большинству программ он нужен). Мой поинт в том, что если уж хочется жить без oom и софт это позволяет, то стоит просто отключить oom-киллер и оверкоммит, а не ныть. При грамотном подходе в отключении оверкоммита ничего страшного нет.