OpenClaw v2026.4.26 CPU шлюза

2026 OpenClaw v2026.4.26: CPU шлюза 100 %, перезапуск 3–4 мин, chat.history блокирует старт — матрица отката

После OpenClaw v2026.4.26: CPU 100 %, restart 3–4 мин, RPC недоступен до cold start. chat.history блокирует готовность. Матрица L0–L4. Ссылки: официальная лестница, перезапуск macOS, логи, split brain, откат.

Почему CPU 100 % — не всегда поломка launchd

Боль 1: процесс жив ≠ шлюз готов. Пока chat.history сканирует или сжимает, probe может мигать зелёным, хотя RPC ещё нестабилен. Сверяйте gateway status, логи и каналы.

Боль 2: 3–4 минуты ≠ сломанный launchd. Чаще однопоточный индекс и диск. Сначала; сначала перезапуск.

Боль 3: архив, не rm -rf.

Боль 4: split brain до L3.

Боль 5: retry при 429 — снизить нагрузку.

Боль 6: history и rsync на одном томе.

Полный скан history после апгрейда на одном ядре 100 %.

launchd ждёт exit — не kill без bootout.

L2 для малых, L4 для больших JSONL.

Один командир, протокол L0–L4.

Staging с большим history.

ExitTimeOut из P95.

Post-mortem: du, doctor, слой L.

Pin OpenClaw с plist в одном тикете.

history как рост БД.

Дашборд history + probe.

NAS: апгрейды по очереди.

Вендору — редактированные логи.

После L4 — тест на канал.

Документируйте переход L в change-тикете.

Alert: CPU процесса + disk read.

Ссылка на лестницу 429 после L2.

Два зелёных probe подряд обязательны.

Legal hold может запретить L4.

Квартальный drill L2 быстрее L4.

Принцип матрицы: сначала наблюдать, смягчить конфиг, закрепить пакет, затем трогать данные. Записывайте время старта, хеш вывода команд и вернулись ли probe к приемлемой задержке (цель cold start менее 60 секунд после мер). Не переходите на следующий слой без результата по времени на предыдущем.

L0 только чтение: sample PID, экспорт doctor, корреляция IOPS и строк chat.history. L1 отключает некритичные плагины и снижает параллелизм. L2 задаёт lazyLoad и паузу compaction в согласованное окно. L3 pin 2026.4.25 при документированной регрессии 4.26. L4 — архив поддерева с меткой времени, никогда rm -rf без бэкапа и списка checksum.

Перед L3/L4 сделайте снимки по runbook отката и пакет логов с редактированием — иначе в тикете нельзя сравнить поведение до и после апгрейда и доказать, регрессировал ли 4.26 или вскрыл старую нагрузку history.

Семь шагов: заморозить изменения; воспроизвести зависание с секундомером до двух зелёных probe; L0 закрепить причину в history/index; L1–L2 снизить CPU ниже 40%; L3 pin при конфликте версий; L4 архив с проверкой cold start <60 с; приёмка channels probe и E2E.

Таблица данных — медианы полей; калибруйте алерты у себя. Cold start без L4 регулярно >120 с — change на L2. Поддерево history >5 ГБ — плановый L4 в окне обслуживания.

Матрица L0–L4

Наблюдать → конфиг → пакет → данные. Cold start <60 с.

УровеньСигналДействиеРиск
L0CPU+historysample, doctorНизкий
L1180–240сминимум плагиновСредний
L2повтор индексаlazyLoadСредний
L3L2 нетpin 4.25Высокий
L4>5ГБархивВысокий

Семь шагов

Снимки откат и логи до L3/L4.

# v2026.4.26 — gateway CPU / chat.history stall
openclaw --version
openclaw gateway --version
which -a openclaw
openclaw status
openclaw gateway status
openclaw doctor
openclaw logs --since 20m | rg -i 'chat\.history|index|migrate|compact|startup'
# archive history dir, then gateway restart ; pin 2026.4.25 after snapshot
  1. Заморозка
  2. Воспроизведение
  3. L0
  4. L1–L2
  5. L3
  6. L4
  7. Приёмка

Два probe подряд.

Цифры

Медианы — свои замеры.

МетрикаНабл.ПорогДальше
Cold start185–240s>120сL2
После архива35–55s<60сcompaction
history2–8 GB>5ГБL4
CPU1 ядро 100%90сL0
CLI180–240slaunchdno double kick

В окне зависания снимите sample на PID шлюза на тридцать секунд и сопоставьте чтение диска со строками chat.history, compact и migrate. Если стек указывает на MCP или handshake канала, идите по официальной лестнице, а не форсируйте L4.

Управление изменениями: pin пакета L3 и архив L4 — разные согласования. Pin без снимка обратим; архив без манифеста — нет. Вставляйте вывод openclaw doctor после каждого слоя в тикет.

Staging с размером history как в проде ловит регрессии 4.26 раньше пользователей. Мини-каталог на ноутбуке не заменяет объёмный тест.

ExitTimeOut в launchd берите из измеренного P95, а не из старых статей.

В post-mortem приложите du history, выжимку doctor и слой L, который снял блокировку.

При IaC для plist шлюза pin OpenClaw в том же тикете, что правки plist — иначе split brain вернётся при автодеплое.

Относитесь к chat.history как к росту БД: квартальный обзор ёмкости, а не только аварийный L4.

Размер history и latency gateway probe — на одном дашборде, чтобы видеть корреляцию до тикетов.

Несколько шлюзов на NAS: сериализуйте крупные апгрейды — параллельные cold start похожи на отказ хранилища.

Вендору — редактированные логи со строками chat.history, не полные каталоги.

После частичного L4 — контролируемый диалог на канал перед трафиком.

Пока gateway probe не стабилен два интервала, держите консервативные rate limits провайдера.

Батарейный Mac mini при долгом индексе — thermal throttle; смотрите powermetrics при разбросе cold start.

Пустой Web UI при зелёном probe: кэш браузера и готовность шлюза — разные вещи.

Держите матрицу в wiki рядом с официальной лестницей — не ищите путь mv L4 в Slack ночью.

Удалённый Mac

history вне сборки.

ionice для rsync.

Не запускайте ad hoc CLI под личным user, пока launchd держит daemon. В post-mortem укажите слой L, du -sh history и была ли пауза compaction — иначе следующий апгрейд повторит тот же трёхминутный restart. Staging с копией prod history ловит регрессии 4.26 раньше пользователей; мини-каталог на ноутбуке не заменяет объёмный тест.

FAQ

L4 без L2? Только авария.

Probe зелёный? лестница.

4.5 JSONL? runbook.

4.25 или 4.23? Сначала 4.25.

В окне зависания снимите sample на PID шлюза и сопоставьте disk read с строками chat.history — если стек указывает на MCP, идите по официальной лестнице, а не сразу на L4.

Управление изменениями: pin OpenClaw и правка plist launchd в одном тикете, иначе split brain вернётся при следующем автодеплое.

L0 только чтение: doctor и логи. L1 убирает лишние плагины и снижает параллелизм. L2 задаёт lazyLoad и паузу compaction в согласованное окно.

L3 pin 2026.4.25 только при регрессии 4.26 в doctor или release notes. L4 — архив с меткой времени и sha256, не rm -rf без манифеста.

Шаг 2: секундомер до двух зелёных probe подряд. После L4 решите re-import или пустой старт до плановой compaction.

Пороги: cold start без L4 >120 с → change L2; поддерево history >5 ГБ → L4 в maintenance.

Удалённый Mac: history вне тома сборки; ExitTimeOut ≥ P95. ionice для rsync на общем NVMe.

Не запускайте ad hoc CLI под личным user, пока launchd держит daemon — двойной индекс частая самоинфликция.

Staging с размером history как в проде ловит 4.26 раньше пользователей.

Тикеты вендору: редактированные логи, не полные каталоги. Legal hold может запретить L4.

После L4: тест-диалог на канал. До двух стабильных probe — консервативные rate limits провайдера.

Mac mini на батарее: длинный индекс и thermal throttle — смотрите powermetrics.

Пустой Web UI при зелёном probe: кэш браузера ≠ готовность шлюза.

Успех: закрыть инцидент 4.26 с документированным слоем L менее чем за два часа.

Аренда SFTPMAC Remote Mac разделяет history и IO сборки и выносит окна апгрейда.

В зависании сопоставьте CPU процесса шлюза и чтение диска со строками chat.history в логах.

Не переустанавливайте launchd до bootout/bootstrap из руководства по перезапуску macOS.

Каждый переход L0-L4 фиксируйте в тикете с временем и хешем вывода команд.

После L4 проверьте cold start менее 60 секунд, затем channels probe и E2E на канал.

Матрица L0–L4 превращает хаос ночного дежурства в измеримые сигналы и осознанный выбор слоя вместо бессмысленного повторного restart.

Self-host: рост history и диск остаются вашей нагрузкой; шлюз и CI на одной машине — риск SLA.

Аренда SFTPMAC Remote Mac разделяет history и IO артефактов заранее.

Два зелёных probe подряд обязательны; один зелёный при индексации обманчив.

Legal hold может запретить L4 — согласуйте с юристами до архива.

Квартальный drill восстановления через L2 дешевле аварийного L4.

Alert на CPU процесса шлюза 90 секунд плюс disk read снижает ложные тревоги.

Web UI пуст при зелёном probe — проверьте кэш браузера отдельно.

Pin OpenClaw и plist в одном change-тикете против split brain.

Staging с большим history ловит регрессии 4.26 раньше продакшена.

Тикеты вендору — редактированные логи, не каталоги history целиком.

Русскоязычным командам полезно держать матрицу в wiki рядом с лестницей диагностики — не искать путь mv L4 в чате во время аварии.

Cold start 185-240 секунд без L4 — повод на L2 по change, а не на бесконечный restart.

Для Docker/VM шлюза смотрите квоту CPU и latency тома — два vCPU объясняют 100% одного ядра.

Статус-страница: различайте «шлюз стартует» и «шлюз готов» — три минуты индекса переносимее для пользователей.

Хранение архива L4: сроки 90/180/365 дней, доступ по ролям, GDPR/152-ФЗ если в history есть ПДн.

Сравните cold start на staging с копией prod history до обвинения 4.26 в регрессии.

MCP-плагины, читающие history при старте, продлевают индекс — отключите их на L1.

Успех: закрыть 4.26 за два часа с задокументированным слоем L.

Аренда SFTPMAC Remote Mac на Apple Silicon разделяет history и IO заранее.

Два зелёных probe подряд — обязательная приёмка; один зелёный при индексации обманчив.

После стабилизации probe держите rate limit провайдера консервативным 48 часов.

Не смешивайте смену модели и L4 в одном тикете — иначе post-mortem неразличим.

Зафиксируйте du history, doctor и версию npm в начале инцидента.

При split brain сначала выровняйте which openclaw и plist, потом kickstart.

Квартальный drill L2 укрепляет on-call дешевле ночного L4.

Шаг два чаще всего проваливается на одном зелёном probe: секундомер до двух зелёных подряд, не до первого.

После L4 зафиксируйте, будет ли re-import тредов или пустой старт до плановой compaction.

Медианы в таблице — для планирования алертов; переснимите на своём железе перед продакшеном.

На удалённом Mac держите history и workspace вне тома CI; ExitTimeOut не ниже P95 cold start.

ionice для rsync/SFTP на общем NVMe — иначе ночной рестарт зелёный, утром каналы красные.

Не запускайте openclaw CLI под личным пользователем, пока launchd ведёт daemon — двойной индекс типичен.

Вопрос: пропустить L2 и сразу L4? Только авария со снимком; в штате — L1/L2.

Probe зелёный, чат медленный? Cold start >120 с — лестница для модели и канала.

Связь с JSONL 4.5: runbook сессий + эта статья про блокировку индекса при старте.

Pin 4.25 или 4.23? Сначала 4.25, tarball на откат.

Суть не в «ещё одном restart», а в замерах и выборе L0–L4.

Self-host: растущий history и диск — ваша постоянная нагрузка.

Аренда SFTPMAC Remote Mac разделяет history и IO артефактов. Тарифы на главной.

Политика on-call для команды: один командир инцидента, один протоколист переходов L0–L4; заморозить посторонние изменения конфигурации, пока gateway probe и channels probe не стабилизируются два интервала подряд.

Квартальные учения, восстанавливающие сервис только через L2 менее чем за шестьдесят секунд, обходятся заметно дешевле, чем ночной аварийный L4 в продакшене без снимков и без манифеста архива.

Если вы долго держите OpenClaw на Apple Silicon и раздаёте артефакты сборки с той же машины, аренда SFTPMAC Remote Mac заранее разделяет тома и выносит окна апгрейда — history и rsync перестают делить один NVMe.

Держите tarball последней рабочей версии OpenClaw и снимок config рядом с архивом history: откат тогда осознанный pin плюс при необходимости выборочный re-import, а не хаотичная переустановка под давлением ночного дежурства.

Итог и SFTPMAC Remote Mac

Замеры CPU, мёртвого времени перезапуска и блокировки chat.history, затем осознанный выбор L0–L4 — не бесконечный «ещё один restart».

Self-host: рост history, планирование диска и окна изменений остаются на вашей стороне; шлюз на одной машине с CI превращает зависание cold start в риск для SLA поставки.

Аренда SFTPMAC Remote Mac заранее разделяет history и IO артефактов и выносит окна апгрейда OpenClaw. Смотрите тарифы и продолжайте серию материалов в блоге.