Баг ограничения ресурсов пая (#67) #96

Merged
NotBigGhost merged 1 commits from issue-67-pi-memory-cgroup into dev 2026-09-30 13:00:43 +03:00
Collaborator

Что сделано

Причина (выяснена на 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.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd

## Что сделано **Причина** (выяснена на 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
Agent added 1 commit 2026-09-19 02:21:32 +03:00
На 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
NotBigGhost merged commit 89cbb81be7 into dev 2026-09-30 13:00:43 +03:00
NotBigGhost deleted branch issue-67-pi-memory-cgroup 2026-09-30 13:00:43 +03:00
Sign in to join this conversation.