/proc/cmdline содержит cgroup_disable=memory. Его подставляет прошивка Raspberry Pi — в cmdline.txt этого параметра нет.
/sys/fs/cgroup/cgroup.controllers = cpuset cpu io pids — контроллера memory нет.
docker info выдаёт WARNING: No memory limit support (Debian 13 trixie, ядро 6.18.34+rpt-rpi-v8, cgroup v2).
Отсюда сообщение «Your kernel does not support memory limit capabilities… Limitation discarded.». Главное — mem_limit из compose (app 512m, tunnel 64m, backup 384m) на проде молча не действуют.
Что изменено — по решению владельца, только документация; на Pi владелец применяет сам:
deploy/pi/README.md, раздел 1 — подраздел «Лимиты памяти (memory cgroup)»: зачем это нужно, проверка, дописывание cgroup_enable=memory в ту же строку /boot/firmware/cmdline.txt с бэкапом и защитой от повторного добавления, sudo reboot, контроль и откат;
«Если что-то не так» — строка про это сообщение;
пояснения у mem_limit в docker-compose.yml и в блоке «РЕСУРСЫ» .env.example.
Коммиты
00bd3c7 Деплой: как включить memory cgroup на Pi, иначе mem_limit не действует
## Что сделано
**Причина** (выяснена на Pi, только чтением):
- `/proc/cmdline` содержит `cgroup_disable=memory`. Его подставляет прошивка Raspberry Pi — в `cmdline.txt` этого параметра нет.
- `/sys/fs/cgroup/cgroup.controllers` = `cpuset cpu io pids` — контроллера `memory` нет.
- `docker info` выдаёт `WARNING: No memory limit support` (Debian 13 trixie, ядро 6.18.34+rpt-rpi-v8, cgroup v2).
Отсюда сообщение «Your kernel does not support memory limit capabilities… Limitation discarded.». Главное — `mem_limit` из compose (app 512m, tunnel 64m, backup 384m) на проде **молча не действуют**.
**Что изменено** — по решению владельца, только документация; на Pi владелец применяет сам:
- `deploy/pi/README.md`, раздел 1 — подраздел «Лимиты памяти (memory cgroup)»: зачем это нужно, проверка, дописывание `cgroup_enable=memory` в ту же строку `/boot/firmware/cmdline.txt` с бэкапом и защитой от повторного добавления, `sudo reboot`, контроль и откат;
- «Если что-то не так» — строка про это сообщение;
- пояснения у `mem_limit` в `docker-compose.yml` и в блоке «РЕСУРСЫ» `.env.example`.
## Коммиты
- `00bd3c7` Деплой: как включить memory cgroup на Pi, иначе mem_limit не действует
## Проверки
- `docker compose -f docker-compose.yml --env-file .env.example config -q` — ок, YAML не сломан.
- Диагностика на Pi — команды выше, только чтение. Сам Pi не менялся.
## Отклонения от плана
Нет.
## Что остаётся владельцу
- [ ] На Pi выполнить шаги из `deploy/pi/README.md`, раздел 1, «Лимиты памяти». Прод будет недоступен на время перезагрузки, около минуты.
- [ ] После перезагрузки проверить: `cat /sys/fs/cgroup/cgroup.controllers` содержит `memory`, при `docker compose up -d` предупреждения нет.
Closes #67
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
На Pi при каждом `docker compose up` контейнеры пишут «Your kernel does not
support memory limit capabilities…». Причина — прошивка Raspberry Pi добавляет
ядру cgroup_disable=memory: контроллера memory нет, и Docker молча игнорирует
mem_limit (app 512m, tunnel 64m, backup 384m).
deploy/pi/README.md: проверка, дописывание cgroup_enable=memory в cmdline.txt с
бэкапом, перезагрузка и контроль; строка в «Если что-то не так». Пояснения
у mem_limit в compose и в .env.example. #67
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Что сделано
Причина (выяснена на Pi, только чтением):
/proc/cmdlineсодержитcgroup_disable=memory. Его подставляет прошивка Raspberry Pi — вcmdline.txtэтого параметра нет./sys/fs/cgroup/cgroup.controllers=cpuset cpu io pids— контроллераmemoryнет.docker infoвыдаётWARNING: No memory limit support(Debian 13 trixie, ядро 6.18.34+rpt-rpi-v8, cgroup v2).Отсюда сообщение «Your kernel does not support memory limit capabilities… Limitation discarded.». Главное —
mem_limitиз compose (app 512m, tunnel 64m, backup 384m) на проде молча не действуют.Что изменено — по решению владельца, только документация; на Pi владелец применяет сам:
deploy/pi/README.md, раздел 1 — подраздел «Лимиты памяти (memory cgroup)»: зачем это нужно, проверка, дописываниеcgroup_enable=memoryв ту же строку/boot/firmware/cmdline.txtс бэкапом и защитой от повторного добавления,sudo reboot, контроль и откат;mem_limitвdocker-compose.ymlи в блоке «РЕСУРСЫ».env.example.Коммиты
00bd3c7Деплой: как включить memory cgroup на Pi, иначе mem_limit не действуетПроверки
docker compose -f docker-compose.yml --env-file .env.example config -q— ок, YAML не сломан.Отклонения от плана
Нет.
Что остаётся владельцу
deploy/pi/README.md, раздел 1, «Лимиты памяти». Прод будет недоступен на время перезагрузки, около минуты.cat /sys/fs/cgroup/cgroup.controllersсодержитmemory, приdocker compose up -dпредупреждения нет.Closes #67
🤖 Generated with Claude Code
https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd