
PowerJoular ist eine Befehlszeilensoftware, um in Echtzeit den Stromverbrauch von Software- und Hardwarekomponenten zu überwachen.
Detaillierte Dokumentation (einschließlich Benutzer- und Referenzleitfäden) finden Sie unter: https://joular.github.io/powerjoular/.
PowerJoular überwacht die folgenden Plattformen:
In allen Plattformen arbeitet PowerJoular derzeit nur auf GNU/Linux.
Auf PC/Servern verwendet PowerJoular die PowerCap -Linux -Schnittstelle zum Lesen von Intel Rapl (Durchschnittsleistungslimit) den Energieverbrauch.
PowerJoular unterstützt die RAPL -Paketdomäne (Kern, einschließlich integrierter Grafiken und DRAM), und für neuere Prozessoren unterstützen wir das PSYS -Paket (das den Energieverbrauch des gesamten SOC abdeckt).
Auf virtuellen Maschinen benötigt PowerJoular zwei Schritte:
Im Raspberry Pi und Asus Tinker Board verwendet PowerJoular seine eigenen forschungsbasierten empirischen Regressionsmodelle, um den Stromverbrauch des ARM-Prozessors abzuschätzen.
Die unterstützte Liste der Modelle von Raspberry Pi und Asus Tinker Board ist unten aufgeführt. Wir unterstützen alle Revisionen jeder Modellaufstellung. Das Modell wird jedoch über eine bestimmte Überarbeitung (zwischen den Klammern aufgeführt) generiert und geschult, und die Genauigkeit ist am besten für diese spezielle Revision.
Derzeit unterstützen wir die folgenden Modelle von Raspberry PI und Asus Tinker Board:
PowerJoular ist in ADA geschrieben und kann leicht zusammengestellt werden, und sein einzigartiger Binärer ist Ihrem Systempfad hinzugefügt.
Einfach zu bedienende Installationsskripte sind im installer erhältlich. Öffnen Sie einfach den Installationsordner und führen Sie die entsprechende Datei aus, um das Programm und den Systemdienst zu erstellen und/oder zu installieren oder zu deinstallieren.
build-install.sh : Erstellt (mit gprbuild ) und installieren Sie das Programm Binary an /usr/bin und systemd Service. Es erfordert die Installation von Gnat und Gprbuild (siehe Zusammenstellung).uninstall.sh : Löscht den Programm Binär- und Systemdienst. Um PowerJoular zu verwenden, führen Sie einfach den Kommando powerjoular aus. Auf PC/Servern verwendet PowerJoular das Rapl von Intel durch das Linux PowerCap -SYSFs und erfordert daher Root/Sudo -Zugriff auf den neuesten Linux -Kerneln (5.10 und neuer): sudo powerjoular .
Standardmäßig zeigt die Software den Stromverbrauch der CPU und ihre Nutzung an. Die Differenz (Erhöhung oder Abnahme) des Stromverbrauchs von der letzten Metrik wird ebenfalls gezeigt.
Die folgenden Optionen sind verfügbar:
-h : Zeigen Sie die Hilfe zur Hilfe-v : Versionsnummer anzeigen-p pid : Spezifiziert eine bestimmte PID, um zu überwachen-a appName : Spezifiziert einen bestimmten Anwendungsnamen, um alle PIDs der Anwendung zu überwachen).-f filename : Überwachungsdaten auf dem angegebenen Dateinamenpfad speichern-o filename : Speichern Sie nur die letzten Überwachungsdaten auf dem angegebenen Dateinamenpfad (Datei überschrieben mit nur neuesten Leistungsmaßnahmen)-t : Energiendaten zum Terminal drucken-d : Debug -Informationen zum Terminal drucken-l : Verwenden Sie lineare Regressionsmodelle (weniger genau als die Standardpolynommodelle) für Himbeer -PI -Energiemodelle-m : Geben Sie einen Dateinamen für den Stromverbrauch der virtuellen Maschine an-s : Geben Sie das Format der VM -Leistung an, entweder powerjoular -Format (generiert mit der Option -o : 3 Spalten CSV -Datei mit dem dritten, der den Stromverbrauch enthält, das VM) oder watts -Format (1 Spalte enthalten nur den Stromverbrauch des VM)) Sie können Optionen mischen, dh powerjoular -tp 144 überwacht PID 144 und druckt zum Terminal.
PowerJoular ist mit ADA geschrieben und benötigt einen modernen ADA -Compiler wie Gnat.
PowerJoular hängt von den folgenden Befehlen und Bibliotheken für bestimmte Funktionen ab, kann aber ohne sie funktionieren:
Installieren Sie bei einer modernen GNU/Linux -Verteilung einfach den Gnat -Compiler (und GPRBuild), der normalerweise aus den Repositorys der Verteilung erhältlich ist:
Fedora:
sudo dnf install fedora-gnat-project-common gprbuild gcc-gnat
Debian, Ubuntu or Raspberry Pi OS:
sudo apt install gnat gprbuild
Verwenden Sie für andere Verteilungen den Paketmanager, um den Compiler herunterzuladen, oder überprüfen Sie diesen Artikel auf einfache Anweisungen für verschiedene Verteilungen, einschließlich RHEL und seine Klone, die nicht mit ADA -Unterstützung in GCC versendet werden.
Um das Projekt zu kompilieren, geben Sie einfach gprbuild ein, wenn Sie die neuesten GPRBuild -Versionen verwenden.
Oder erstellen Sie bei älteren Versionen den Ordner /obj zuerst und geben Sie dann gprbuild powerjoular.gpr ein.
Der PowerJoular -Binär wird im obj/ Ordner erstellt.
Standardmäßig verknüpft das Projekt die erforderlichen Bibliotheken statisch, und daher kann der PowerJoular-Binär an ein beliebiges System kopiert und als IS verwendet werden.
Erstellen Sie den statischen Schalter in der Datei powerjoular.gpr , insbesondere diese Zeilen mit dynamischer Verknüpfung, entfernen oder kommentieren Sie den statischen Schalter:
package Binder is
for Switches ("Ada") use ("-static");
end Binder;
Sie können PowerJoular auch nur mit dem Gnat -Compiler zusammenstellen (ohne dass GPRBuild erforderlich ist).
Kompilieren Sie einfach mit Gnatmake. Um beispielsweise von obj/ Ordner zu kompilieren (so .O und .ali -Dateien werden dort generiert) geben Sie Folgendes ein:
mkdir -p obj
cd obj
gnatmake ../src/powerjoular.adb
Wenn Sie Alire installiert haben, können Sie es verwenden, um PowerJoular mit:
alr build
Das Cross-Compiles-Powerjoular release-version.sh -Skript für mehrere Plattformen (für den Moment X86_64 und AArch64, kann jedoch optimiert werden, um andere Plattformen hinzuzufügen). Das Skript generiert dann RPM- und Deb -Binärinstallationspakete für diese Plattformen.
Das Skript benötigt einen x86_64 und einen AARG64 -GNAT -Compiler sowie DEB- und RPM -Verpackungswerkzeuge.
Installieren Sie sie gemäß Ihrer Verteilung. Zum Beispiel in Ubuntu 22.04 x86_64:
sudo apt install gnat gnat-12-aarch64-linux-gnu dpkg rpm
Ein Systemd -Dienst wird bereitgestellt und kann installiert werden (durch Kopieren von powerjoular.service im systemd -Ordner zu /etc/systemd/system/ ). Der Dienst wird das Programm mit der Option -o ausführen (die nur die neuesten Stromversorgungsdaten speichert) und Daten auf /tmp/powerjoular-service.csv powerjoular -service.csv speichert. Der Dienst kann aktiviert werden, um automatisch mit dem Start auszuführen.
Der SystemD -Dienst wird automatisch installiert, wenn PowerJoular mithilfe der von GNU/Linux bereitgestellten Pakete installiert wird.
Um unsere Arbeit in einem Forschungsarbeit zu zitieren, zitieren Sie bitte unser Papier auf der 18. Internationalen Konferenz über intelligente Umgebungen (dh 2022).
@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 ist nur gemäß der GNU GPL 3-Lizenz (Nur GPL-3.0) lizenziert.
Copyright (C) 2020-2024, Adel Noureddine, Université de Pau et des zahlt de l'adour. Alle Rechte vorbehalten. Dieses Programm und die dazugehörigen Materialien werden gemäß den Bestimmungen der GNU General Public License V3.0 (GPL-3.0-Only) zur Verfügung gestellt, die diese Verteilung begleitet und unter: https://www.gnu.org/licenses/gpl-3.0.en.html verfügbar ist
Autor: Adel Noureddine