Name what actually kills the heavy runs: a per-run cgroup ceiling, not the machine, and say why narrowing the run to fit is the one forbidden cure
This commit is contained in:
parent
d291e7766d
commit
524b2e2808
1 changed files with 13 additions and 0 deletions
13
CLAUDE.md
13
CLAUDE.md
|
|
@ -64,6 +64,19 @@ Go-бэкенд издательского художественного пер
|
|||
## Гардрейлы (жёсткие)
|
||||
|
||||
- **Греп по ЖИВОМУ дереву — с исключением отработанного архива:** `--exclude-dir=prompts --exclude-dir=reports` (либо `grep -rn … docs/ --exclude-dir=prompts --exclude-dir=reports`). Замер 02.09: греп `feed_cap` даёт 4 живых файла и 8 архивных, `bank-stop` — 12 и 14, то есть истории в выдаче больше, чем настоящего. ⚠ **`archive/architecture/` НЕ исключать** — там тела закрытых эр журнала решений, и канон велит грепать «живой файл → слайсы».
|
||||
- ⛔ **ТЯЖЁЛЫЙ ПРОГОН УБИВАЕТ НЕ НЕХВАТКА ПАМЯТИ НА МАШИНЕ, А ПОТОЛОК ЕГО СОБСТВЕННОГО CGROUP** (замерено
|
||||
11.09 после ЧЕТЫРЁХ убийств подряд у одной сессии). `dmesg` показывает **26** убийств, и все с
|
||||
`constraint=CONSTRAINT_MEMCG`, каждое в СВОЁМ транзиентном юните
|
||||
`tm.slice/tm-runs.slice/tm-test-<тег>-<pid>.service`. Сами слайсы при этом `memory.max = max` — лимита
|
||||
на них НЕТ. ⇒ **гасить чужие процессы бесполезно: машина в этот момент имела 5.7 ГБ доступных.**
|
||||
⚠ И потолок НЕ у всех одинаковый: прогон, запущенный одной сессией, попадал в capped-юнит, а тот же
|
||||
прогон из другой шёл в `/init.scope` с `memory.max = max` и доходил до конца. ⇒ **прежде чем объяснять
|
||||
падение нагрузкой, спроси `cat /proc/self/cgroup` и `memory.max` этого cgroup** — и если потолок есть,
|
||||
перенеси прогон, а не режь его.
|
||||
⛔ **И чего делать НЕЛЬЗЯ, даже когда убило четыре раза подряд: сужать мутационный прогон через `-run`,
|
||||
чтобы влезть в память.** Подмножество `-run` не есть пакет: базовый прогон перестаёт быть базовым, и
|
||||
вердикт «поймана» становится утверждением о другом предмете. **Лучше не измерить, чем измерить не то** —
|
||||
формулировка зоны, выбравшей честную сторону при максимальном соблазне.
|
||||
- ⛔ **ДВА СВОЙСТВА ЭТОЙ СРЕДЫ, каждое даёт ТИХИЙ ЛОЖНЫЙ НОЛЬ** (замерено 11.09, поймано двумя ролями независимо).
|
||||
**(а) `grep` здесь — не GNU grep, а shell-обёртка над ugrep с `--ignore-files`: она чтит `.gitignore` и
|
||||
НЕ ВИДИТ каталог `books/`,** то есть всё платное сырьё проекта. Замер: `grep -rl '^terms:' .` → **13**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue