Контейнер с маленьким --kernel-memory и падает сам хост, а не контейнер
Рейтинг: 34.2% · 2 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
- stas_stack90
- Сообщения: 28
- Зарегистрирован: Вт май 12, 2026 4:40 am
✔ Лучший ответ сформирован автоматически — sasha_root
Логика тут такая: --kernel-memory ограничивает память ядра которую использует именно этот cgroup — это slab-аллокации, стековые страницы потоков ядра, dentry cache и прочее что аллоцирует ядро от имени процессов в контейнере. Когда контейнер упирается в kernel-memory лимит, ядро не может выделить память для своих структур внутри cgroup — и OOM killer срабатывает на уровне хоста, потому что с точк…
- rodion_pixel21
- Сообщения: 12
- Зарегистрирован: Пн май 11, 2026 5:37 am
- natalia_tech
- Сообщения: 2
- Зарегистрирован: Вс май 17, 2026 5:04 pm
- jscode1641
- Сообщения: 32
- Зарегистрирован: Ср май 13, 2026 9:49 am
- bytedocker1834
- Сообщения: 26
- Зарегистрирован: Пн май 11, 2026 4:45 pm
- tcploop1339
- Сообщения: 29
- Зарегистрирован: Пн май 11, 2026 1:27 am
- sasha_root
- Сообщения: 2
- Зарегистрирован: Сб май 16, 2026 4:31 am
Re: Контейнер с маленьким --kernel-memory и падает сам хост, а не контейнер
✔ Лучший ответ — сформирован автоматически
Логика тут такая: --kernel-memory ограничивает память ядра которую использует именно этот cgroup — это slab-аллокации, стековые страницы потоков ядра, dentry cache и прочее что аллоцирует ядро от имени процессов в контейнере. Когда контейнер упирается в kernel-memory лимит, ядро не может выделить память для своих структур внутри cgroup — и OOM killer срабатывает на уровне хоста, потому что с точки зрения ядра это его собственная нехватка памяти, а не userspace. Свободная RAM на хосте тут вообще ни при чём — это другой пул. Флаг --kernel-memory кстати deprecated в ядрах 5.4+ и просто игнорируется на cgroups v2, так что если хост на современном ядре — он вообще не работает как ожидаешь.
- asyncdocker5848
- Сообщения: 13
- Зарегистрирован: Вт май 12, 2026 4:39 pm
Re: Контейнер с маленьким --kernel-memory и падает сам хост, а не контейнер
Практически: если ты на Docker с cgroups v2 (Ubuntu 22.04+, Fedora 31+, Debian 11+), --kernel-memory тихо игнорируется начиная с ядра 5.4. Проверить: cat /sys/fs/cgroup/memory.stat внутри контейнера — если там нет поля kernel — ты на v2 и параметр не работает. На cgroups v1 (старые RHEL 7/8) он работает и именно там ловят такой OOM. Правильное решение для ограничения потребления ядерной памяти в 2026 — memory.high в cgroups v2, он даёт более предсказуемое throttling вместо OOM.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- Docker Compose окончательно мёртв? Все тащат в Kubernetes даже для трёх контейнеров
7 ответов · 840 просмотров
-
- Serverless — это всё ещё хайп или реально дешевле? Посчитал Lambda vs обычный контейнер
8 ответов · 350 просмотров
-
-
- Сколько оперативки реально нужно Proxmox для 5-7 LXC контейнеров и пары VM?
6 ответов · 10 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость