
Joularjx ist ein Java-basierter Agent für die Software-Stromüberwachung auf der Ebene der Quellcode.
Detaillierte Dokumentation (einschließlich Benutzer- und Referenzführer) finden Sie unter: https://joular.github.io/joularjx/.
Um Joularjx zu bauen, brauchen Sie Java 11+ und Maven und dann nur bauen:
mvn clean install -DskipTests
Alternativ können Sie den mit dem Projekt mit dem Projekt versandten Maven -Wrapper verwenden:
Linux: ./mvnw clean install -DskipTests
Windows: ./mvnw.cmd clean install -DskipTests
Joularjx hängt von den folgenden Software oder Paketen ab, um das Lesen von Strom zu erhalten:
config.properties an.powermetrics , ein mit MacOS gebündeltes Werkzeug, das mit sudo -Zugriff ausgeführt werden muss. Es wird empfohlen, die aktuellen Benutzer zum Ausführen /usr/bin/powermetrics zu autorisieren, ohne ein Kennwort zu benötigen, indem die ordnungsgemäße Änderung der sudoers -Datei vorgenommen wird.Wir unterstützen auch Asus Tinker Board (en).
Joularjx ist ein Java -Agent, bei dem Sie ihn einfach an die Java Virtual Machine anschließen können, wenn Sie die Hauptklasse Ihres Java -Programms starten:
java -javaagent:joularjx-$version.jar YourProgramMainClass
Wenn Ihr Programm eine JAR -Datei ist, führen Sie sie einfach wie gewohnt aus, während Sie Joularjx hinzufügen:
java -javaagent:joularjx-$version.jar -jar yourProgram.jar
Joularjx generiert mehrere CSV-Dateien gemäß den Konfigurationseinstellungen (in config.properties ) und erstellt diese Dateien in einem Ordner joularjx-results .
Die generierten Dateien sind unter der folgenden Ordnerstruktur verfügbar:
filter-method-names ) Joularjx kann konfiguriert werden, indem die Dateien config.properties geändert werden:
filter-method-names : Liste der Zeichenfolgen, mit denen die überwachten Methoden gefiltert werden (siehe unten generierte Dateien für Erläuterungen).save-runtime-data : Schreiben Sie den Stromverbrauch von Laufzeitmethoden in einer CSV-Datei.overwrite-runtime-data : Überschreibe Laufzeit-Power-Datendateien oder falls auf False festgelegt wird, schreibt es für jeden Überwachungszyklus neue Dateien.logger-level : Legen Sie die von Joularjx angegebene Informationsebene (nach Logger) im Terminal fest (zulässige Werte: AUS, Info, Warnung, schwerwiegend).powermonitor-path : Voller Pfad zum Power Monitor for Windows-Programm (nur für Windows).track-consumption-evolution : Generieren Sie CSV-Dateien für jede Methode, die Details zum Verbrauch der Methode über die Zeit enthält. Jeder Verbrauchswert wird einem Unix -Zeitstempel zugeordnet.hide-agent-consumption : Wenn auf True eingestellt, wird der Energieverbrauch der Agenten-Threads nicht gemeldet.enable-call-trees-consumption : Berechnen Sie die Methoden, die den Energieverbrauch von Bäumen nennen. Eine CSV -Datei wird am Ende der Ausführung des Agenten generiert, wobei jeder Anruf für den gesamten Energieverbrauch in Verbindung steht.save-call-trees-runtime-data : Schreiben Sie Laufzeit-Rennbäume Stromverbrauch in einer CSV-Datei. Für jeden Überwachungszyklus (1 Sekunde) wird eine neue CSV -Datei generiert, die den Laufzeitverbrauch der Anrufbäume enthält. Die generierten Dateien enthalten Zeitstempel in ihren Namen.overwrite-call-trees-runtime-data : Überschreibe Runtime Call Trees Power Datei Datei oder falls auf False festgelegt wird, schreibt sie für jeden Überwachungszyklus eine neue Datei.application-server : Geht ordnungsgemäß Anwendungsserver und Frameworks (Sprig Boot, Tomcat usw.). Setzen Sie true beim Ausführen auf Anwendungsservern. Wenn die Überwachung der Überwachungsschleife überprüft, ob die JVM zerstört wird, schließt er Joularjx, wenn die Anwendung endet (in regulärer Java -Anwendung). Wenn Joularjx wahr ist, überwacht Joularjx weiterhin korrekt, da die JVM auf einem Anwendungsserver nicht zerstört wird.vm-power-path : Der Weg zum Stromverbrauch der virtuellen Maschine. Geben Sie in einer virtuellen Maschine die Datei an, die den Stromverbrauch des VM enthält (was normalerweise eine Datei im Host ist, die mit dem Gast freigegeben wird).vm-power-format : Leistungsformat der freigegebenen VM-Leistungsdatei. Wir unterstützen derzeit zwei Formate: watts (eine Datei mit einem Schwimmerwert, der den Stromverbrauch der VM enthält) und powerjoular (eine von PowerJoular im Host generierte CSV -Datei, die 3 Spalten enthält: Zeitstempel, CPU -Nutzung der VM und CPU -Leistung der VM). Sie können das JAR -Paket (und den PowerMonitor.exe unter Windows) überall installieren und mit dem vollständigen Pfad im javaagent aufrufen. -Djoularjx.config=/path/to/config.properties config.properties
In virtuellen Maschinen benötigt Joularjx zwei Schritte:
Für Echtzeit-Leistungsdaten oder die Gesamtenergie am Programm Exit generierte Joularjx zwei CSV-Dateien:
config.properties konfiguriert werden). Diese Daten sind nicht nur eine Teilmenge der ersten Datendatei, sondern eine Neuberechnung von Joularjx, um genaue Daten bereitzustellen: Methoden, die mit dem gefilterten Schlüsselwort beginnen, wird die Leistung oder Energie zugewiesen, die von den von ihm aufgerufenen JDK -Methoden verbraucht werden. Wenn beispielsweise Package1.MethodA java.io.PrintStream.println aufruft, um einen Text an ein Terminal zu drucken, berechnen wir:
println getrennt von MethodA verbraucht. Der letztere Stromverbrauch beinhaltet nicht die von println konsumierten.Package1 filtern, wird der Stromverbrauch von println zum Verbrauch MethodA hinzugefügt, und die Datei bietet nur Strom oder Energie von Package1 -Methoden.Wir können dies tun, indem wir die Stacktrace aller laufenden Threads auf der Laufzeit analysieren.
Joularjx Reader ist eine GUI zur Verarbeitung, Analyse und Visualisierung von joularjx erzeugten Energiedateien. Es ist hier in einem eigenen Repository erhältlich.
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}
}
Joularjx ist nur gemäß der GNU GPL 3-Lizenz (nur GPL-3.0) lizenziert.
Copyright (C) 2021-2024, Adel Noureddine, Université de Pau et des 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