Выбор ответа Middle Память и OOM спрашивают часто обновлено

OOM при свободной памяти узла

Вопрос

Контейнер убит с OOMKilled, хотя на узле свободно 10 ГБ. Почему?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Сработал лимит памяти cgroup контейнера, а не узла. Лимит памяти контейнера (limits.memory, --memory) это memory.max его cgroup.

Варианты ответа

  1. Kubernetes ошибается в статусе, контейнер упал сам
  2. Сработал лимит памяти cgroup контейнера, а не узлаправильный ответ
  3. Узел перегрелся, и ядро убивает самые тяжёлые процессы
  4. Контейнер исчерпал лимит CPU, и его убили как зависший

Разбор

Лимит памяти контейнера (limits.memory, --memory) это memory.max его cgroup. При превышении ядро запускает OOM в пределах группы. Свободная память узла этому не мешает. Лимит CPU приводит к троттлингу, а не к убийству.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме