adaptive-powerd: агентно-управляемый контроллер питания
Rust-контроллер питания и температуры для Linux-рабочей станции: режим компиляции, тихое охлаждение в простое, типизированные защитные состояния, cgroup-ограничения и JSON-статус для агентной эксплуатации.
Этот кейс доказывает инфраструктурную оркестрацию на уровне машины: производительность, шум, тепловая безопасность, давление cgroup и восстановление описаны типизированной политикой, а не ручными ритуалами настройки.
типизированные режимы
Состояния политики
через cgroup
Контракт сборки
восстановимый latch
Тепловая защита
> Закрытый репозиторий. Доступен для просмотра кода по запросу.
▍ Проблематика
AI-first разработка создаёт всплески тяжёлой Rust-компиляции, браузерной автоматизации, медиа-обработки и долгих локальных агентных сессий. Рабочую станцию нельзя один раз настроить и забыть.
- Конфликт приоритетов: Одна и та же машина должна быстро собирать код во время компиляции и оставаться тихой и прохладной в простое.
- Запоздалый человеческий сигнал: Если пользователь первым замечает подвисания или скачки вентиляторов, системе не хватает машинно-читаемой поверхности здоровья.
- Опасные защитные состояния: Тепловая защита должна быть строгой, но восстановимое событие перегрева не должно навсегда убивать обычное управление.
- Конкуренция ресурсов: Компиляторы, активная работа за рабочим столом и фоновые агенты требуют явных cgroup-границ вместо ручного контроля процессов.
▍ Архитектура
СЕНСОРЫ
температура hwmon | PWM вентилятора | давление cgroup | рабочие slice
↓
ДВИЖОК ПОЛИТИКИ
охлаждение простоя | режим компиляции | capped-режим | защитные состояния
↓
ДЕЙСТВИЯ
CPU governor | EPP | PWM вентилятора | CPU/RAM-лимиты cgroup
↓
ОБРАТНОЕ ЧТЕНИЕ
JSON-статус | структурные события | регрессионные тесты | systemd watchdog▍ Операционные доказательства
типизированные режимы
Состояния политики
через cgroup
Контракт сборки
восстановимый latch
Тепловая защита
JSON-статус
Обратное чтение
systemd watchdog
Надзор
регрессионные тесты
Проверки
▍ Ключевые инженерные решения
Проблема
Быстрые Rust-сборки и отзывчивый рабочий стол конкурируют за CPU, память, IO и температурный запас.
Решение
Разделены безлимитный режим компиляции и capped-режим сборки. Capped-режим резервирует мощность для рабочего стола через сгенерированные cgroup-лимиты, а режим компиляции сначала использует охлаждение, а не программное замедление.
Отвергнутая альтернатива
Ручные nice/kill-команды — реактивны, неповторяемы и невидимы будущим агентам.
Проблема
Критическая температура должна защищать железо, но возвращаться к обычному управлению после свежего доказательства охлаждения.
Решение
Во время критического тепла фиксируется максимальное охлаждение, затем только тепловой latch снимается после устойчивых безопасных показаний. Ошибки целостности управления остаются зафиксированными.
▍ Технологический стек
Ядро
Rust 2024, serde, toml, tracing
Linux-контроль
sysfs, cgroups, CPU governor, EPP
Надёжность
systemd notify, watchdog, типизированные защитные состояния
Проверка
fake sysfs, тесты политики вентиляторов и режимов сборки
▍ Что доказывает этот проект
Агентно-управляемая инфраструктура
Состояние локального железа доступно через типизированное обратное чтение, поэтому агенты могут диагностировать давление без просьб к пользователю наблюдать за машиной.
Инженерия надёжности
У каждого важного состояния есть законный переход: обычное управление, capped-сборка, критическое тепло, восстановимое охлаждение и зафиксированные ошибки управления.
Системная интеграция
CPU-политика, PWM вентилятора, cgroups и надзор systemd соединены в один управляющий цикл.
Практичная производительность
Цель не в абстрактном тюнинге, а в быстрых сборках без превращения рабочего стола в ненадёжный общий ресурс.