
PowerJoular - это программное обеспечение командной строки для мониторинга в режиме реального времени энергопотребления программных и аппаратных компонентов.
Подробная документация (включая пользовательские и справочные гиды) доступна по адресу: https://joular.github.io/powerjoular/.
PowerJoular контролирует следующие платформы:
На всех платформах PowerJoular работает в настоящее время только на GNU/Linux.
На ПК/серверах PowerJoular использует интерфейс PowerCap Linux для чтения Intel RAPL (средний предел мощности).
PowerJoular поддерживает домен пакета RAPL (Core, включая интегрированную графику и DRAM), и для более поздних процессоров мы поддерживаем пакет PSYS (который охватывает потребление энергии всего SOC).
На виртуальных машинах PowerJoular требует двух шагов:
На плате Raspberry Pi и Asus Tinker Powerjoular использует свои собственные исследовательские модели эмпирической регрессии для оценки энергопотребления процессора ARM.
Поддерживаемый список моделей Raspberry Pi и Asus Tinker перечислены ниже. Мы поддерживаем все изменения каждой модельной линейки. Тем не менее, модель генерируется и обучена конкретной пересмотре (перечисленной между скобками), и точность лучше всего подходит для этой конкретной ревизии.
В настоящее время мы поддерживаем следующие модели Raspberry Pi и Asus Tinker Board:
PowerJoular написан в ADA и может быть легко скомпилирован, а его уникальный двоичный проезд добавляется в ваш системный путь.
Простые в использовании сценарии установки доступны в папке installer . Просто откройте папку установщика и запустите соответствующий файл для создания и/или установки или удаления программы и Systemd Service.
build-install.sh : построит (используя gprbuild ) и установит программу BINARY TO /usr/bin и SYSTERD. Это требует установки GNAT и GPRBUILD (см. Компиляцию).uninstall.sh : удаляет программу бинарный и системный сервис. Чтобы использовать PowerJoular, просто запустите команду powerjoular . На ПК/серверах PowerJoular использует Intel's Rapl через Linux PowerCap SYSFS, и, следовательно, требует доступа к корнеу/SUDO на последних ядрах Linux (5.10 и новее): sudo powerjoular .
По умолчанию программное обеспечение будет показывать энергопотребление процессора и его использование. Разница (увеличение или уменьшение) энергопотребления от последней метрики также будет показана.
Доступны следующие варианты:
-h : Покажите сообщение о справке-v : Показать номер версии-p pid : Укажите конкретный пид для мониторинга-a appName : Укажите конкретное имя приложения для мониторинга (будет следить за всеми PID приложения)-f filename : Сохранить данные мониторинга в данном пути имени файла-o filename : Сохраните только данные о последнем мониторинге в данном пути имени файла (перезаписан файл только с последними показателями мощности)-t : данные энергии печати на терминал-d : информация о отладке печати на терминал-l : используйте модели линейной регрессии (менее точные, чем полиномиальные модели по умолчанию) для моделей энергетики Raspberry Pi-m : укажите имя файла для энергопотребления виртуальной машины-s : Укажите формат мощности виртуальной машины, либо формат powerjoular (сгенерированный с опцией -o : 3 CSV -файл столбцов с 3 -м, содержащим энергопотребление виртуальной машины) или форматом watts (1 столбец, содержащий только энергопотребление VM) Вы можете смешать варианты, то есть powerjoular -tp 144 будет контролировать PID 144 и будет печатать на терминал.
PowerJoular написан с ADA и требует современного компилятора ADA, такого как GNAT.
PowerJoular зависит от следующих команд и библиотек для определенных его функций, но может функционировать без них:
На современном распределении GNU/Linux просто установите компилятор GNAT (и GPRBUILD), обычно доступный в репозиториях распределения:
Fedora:
sudo dnf install fedora-gnat-project-common gprbuild gcc-gnat
Debian, Ubuntu or Raspberry Pi OS:
sudo apt install gnat gprbuild
Для других распределений используйте менеджер пакетов для загрузки компилятора или проверьте эту статью на предмет удобной инструкции для различных распределений, включая RHEL и его клоны, которые не поставляются с поддержкой ADA в GCC.
Чтобы скомпилировать проект, просто введите gprbuild если использовать последние версии Gprbuild.
Или, на более старых версиях, сначала создайте папку /obj , затем введите gprbuild powerjoular.gpr .
PowerJoular Binary будет создан в папке obj/ .
По умолчанию проект будет статически связывать необходимые библиотеки, и, следовательно, двоичный файл PowerJoular может быть скопирован в любую совместимую систему и используется как есть.
Чтобы построить с помощью динамического связывания, удалить или прокомментировать статический переключатель в файле powerjoular.gpr , в частности эти строки:
package Binder is
for Switches ("Ada") use ("-static");
end Binder;
Вы также можете компилировать PowerJoular только с компилятором GNAT (без необходимости в GPRBUILD).
Просто компилируйте с помощью Gnatmake. Например, для компиляции из obj/ FOLDE (SO .O и .ALI -файлы генерируются там), введите следующее:
mkdir -p obj
cd obj
gnatmake ../src/powerjoular.adb
Если у вас установлена алира, вы можете использовать его для создания PowerJoular с:
alr build
Сценарий release-version.sh Кросс-Компиляции PowerJoular на несколько платформ (на данный момент x86_64 и AARCH64, но можно настроить, чтобы добавить другие платформы). Затем сценарий генерирует RPM и Deb Birance Installation Packages для этих платформ.
Скрипт нуждается в компиляторе x86_64 и компилятора Aarch64, а также инструментами Deb и RPM упаковки.
Установите их в соответствии с вашим распространением. Например, в Ubuntu 22.04 x86_64:
sudo apt install gnat gnat-12-aarch64-linux-gnu dpkg rpm
Предназначенная служба Systemd и может быть установлена (путем копирования powerjoular.service в systemd папке в /etc/systemd/system/ ). Служба будет запускать программу с опцией -o (которая сохраняет только последние данные о питании) и сохраняет данные в /tmp/powerjoular-service.csv . Сервис может быть включен для автоматического запуска при загрузке.
Сервис Systemd автоматически устанавливается при установке PowerJoular с помощью GNU/Linux, предоставленных пакетами.
Чтобы привести нашу работу в исследовательской статье, пожалуйста, процитируйте нашу статью на 18 -й Международной конференции по интеллектуальной среде (IE2022).
@inproceedings{noureddine-ie-2022,
title = {PowerJoular and JoularJX: Multi-Platform Software Power Monitoring Tools},
author = {Noureddine, Adel},
booktitle = {18th International Conference on Intelligent Environments (IE2022)},
address = {Biarritz, France},
year = {2022},
month = {Jun},
keywords = {Power Monitoring; Measurement; Power Consumption; Energy Analysis}
}
PowerJoular лицензируется только в рамках лицензии GNU GPL 3 (только GPL-3.0).
Copyright (C) 2020-2024, Адель Нилдин, Université de Pau et des Pays de l'Adour. Все права защищены. Эта программа и сопровождающие материалы предоставляются только в соответствии с условиями только общей публичной лицензии GNU v3.0 (gpl-3.0), которые сопровождают это распределение, и доступно по адресу: https://www.gnu.org/licenses/gpl-3.0.en.html
Автор: Адель Нилдин