ошибки выделения, это может приводить к неожиданному поведению.
2. Трудно найти оптимальное значение overcommit ratio, хотя это может быть не проблема не сервере с предсказуемой нагрузкой. - Если выставить большой ratio, то получим тот же эффект, что и при наличии дефолтного оверкоммита, и будет приходить киллер. При низком overcommit ratio просто получим неполную утилизацию физической памяти. - Процессы будуть падать при полупустом свопе или при полупустой памяти. - Если нужно огараничить память, то лучше использовать контрольные группы и MemoryMax и MemorySwapMax - эти параметры ограничивают физическую память, а не виртуальную, в отличие от случая с запретом оверкоммита. Еще альтератива - юзерспейсный демон earlyoom - он сначала отправляет SIGTERM, завершая процессы по возможности более корректно
1. Я знаю один способ отключения киллера - panic on oom. Разве есть другие? 2. оом киллер надо не отключать, а вызывать по возможности раньше. Не вызванный киллер - умершая система. Киллер - это лекарство от смерти. "если уж хочется жить без oom" - то я предпочитаю earlyoom - процессы завершаются по SIGTERM, до дедлоков с зависаниями не доходит дело.
Ограничение оверкоммита не всегда означает отключение киллера - многое еще зависит от overcommit ratio
Еще момент: киллер убивает процесс с наибольшим oom_score - обычно самый жирный. С ограничением оверкоммита упадет не обязатено самый жирный - могут падать и мелкие процессы, если жирный процесс протекает, но при этом обрабатывает ошибки выделения
Спасибо. MemoryMax это параметр какой системы? Где его указывать?
Обсуждают сегодня