Инженер по робототехнике и машинному обучению Навин Куландаивелу (Naveen Kulandaivelu) представил открытый инструментарий под названием WattWise, предназначенный для мониторинга энергопотребления умных розеток в режиме реального времени, как напрямую, так и через Home Assistant, а также для регулирования производительности ПК и серверов на основе цен на электроэнергию и часов пиковой нагрузки. Исходный код проекта написан на Python и опубликован на GitHub под лицензией MIT.
Куландаивелу собрал дома двухсокетную рабочую станцию на базе AMD EPYC с планами добавить четыре графических процессора. Это энергоёмкая установка, поэтому он захотел найти способ контролировать её энергопотребление с помощью интеллектуальной розетки TP-link Kasa EP25 Smart Plug.
Разработчик выяснил, что штатные возможности приложения Kasa Smart и панели инструментов Home Assistant были неудобны и не могли делать всё, что ему нужно. У него уже было окно терминала с запущенными инструментами мониторинга, такими как htop, nvtop и nload, и он решил взять дело в свои руки, а не иметь дело с очередным неудобным приложением.
Куландаивелу создал пользовательский интерфейс в терминале, который показывает данные о потреблении энергии через Home Assistant и интеграцию с TP-link Kasa EP25 Smart Plug. В проекте используется динамическая цветовая индикация мощности (зелёный цвет 1200 Вт).
Приложение WattWise отслеживает уровень энергопотребления компьютерной системы в реальном времени, показывая мощность и ток, а также предоставляет временные графики с нужной Куландаивелу статистикой.
Что ещё важнее, инструмент WattWise предназначен для автоматического регулирования производительности ЦП и ГП. Поставщик электроэнергии Куландаивелу использует ценообразование по времени использования (ToU), поэтому использование большого количества электроэнергии в часы пик может обойтись значительно дороже. Рабочая станция может потреблять до 1400 Вт при полной нагрузке, но, снизив частоту ЦП с 3,7 ГГц до 1,5 ГГц, разработчик смог сократить потребление примерно на 225 Вт.
Проект WattWise оптимизирует тактовую частоту процессора ПК на основе текущей нагрузки системы, энергопотребления, сообщаемого умной розеткой, и времени — причём последнее помогает учитывать пиковые периоды. Также WattWise использует контроллер Proportional-Integral (PI) controller для управления питанием ПК и адаптирует параметры системы.
Результаты работы WattWise могут различаться в зависимости от используемого оборудования, естественно, и серверы могут потреблять гораздо больше энергии, чем типичный настольный компьютер — даже разработанный и используемый для игр. Автор планирует добавить в проект возможность более точного регулирования производительности GPU, которое потенциально может обеспечить ещё большую экономию электричества в пиковое время.
Источник: habr.com