Разработчик создал мод для Claude Code, показывающий нагрузку каждой сессии

Источник
Пятнадцать сессий Claude Code съели 11 ГБ памяти. Я написал мод, который показывает, кто именно

Автор статьи обычно держит открытыми от десяти до пятнадцати сессий Claude Code, каждая из которых запускает свои субагенты и MCP-серверы. Со временем такая нагрузка приводила к тому, что 64-гигабайтная машина начинала тормозить при переключении окон, а диспетчер задач показывал лишь общую картину потребления памяти процессами node и claude без привязки к конкретным окнам. Для решения этой проблемы был создан мод claude-load, который распределяет нагрузку по сессиям. Первый запуск инструмента показал 15 активных сессий, потребляющих вместе 10,8 ГБ оперативной памяти, большинство из которых простаивали со смёрженными PR или выполняли забытые задачи.

Мод работает за счет анализа файлов реестра сессий, расположенных в директории ~/.claude/sessions/, где для каждой сессии хранится файл .json с информацией о процессе. Поскольку формат этих файлов не документирован, мод извлекает только необходимые поля: PID, sessionId, имя сессии, статус и текущий рабочий каталог (cwd). Для определения нагрузки на процессы, не принадлежащие ни одной сессии (сироты), мод использует цепочку родительских процессов (PPID), поднимаясь от каждого процесса до корня, чтобы найти владельца. Сиротами считаются деревья процессов, у которых родитель мертв или был создан позже ребенка, при этом учитывается потребление ресурсов не менее 0,3% CPU или 150 МБ памяти.

Для предотвращения роста нагрузки от самого мониторинга мод использует один процесс-сэмплер, который пишет снимки состояния в файл ~/.claude/state/load/snapshot.json. Каждая сессия читает этот файл раз в пять секунд, а сэмплер обновляет данные каждые четыре секунды, используя дешевые команды Get-Process и запрашивая дерево родителей только при необходимости. На машине с 12 потоками и 15 сессиями такой мониторинг потребляет около 0,35% CPU и 130 МБ памяти. Интерфейс пейна отображает графики потребления CPU и памяти для каждой сессии, а также отдельный блок для сирот, позволяя пользователю завершать ненужные процессы одной кнопкой.

Разработка мода была выполнена с помощью Claude Code (Opus 5.5), который написал основной код за пару дней под руководством автора. Мод появился в версии 2.1.287 и представляет собой новый тип плагина на TypeScript с хуками внутри процесса агента. Инструмент включает в себя 59 тестов, проверяющих работу на разных операционных системах и поверхностях, а также механизм автоархивации, который отправляет запрос встроенному скиллу для очистки простаивающих сессий. В результате использования мода из 15 сессий в архив ушло 12, а потребление памяти снизилось с 35,2 до 31,2 ГБ. Автор отмечает, что мод не требует сетевого доступа или телеметрии, но требует обновления при изменении формата файлов сессий со стороны Anthropic.

Текст подготовлен нейросетью Loople по материалам источника.

Читайте также

Похожие новости

Поиск по Loople

Назад