
PowerJoular est un logiciel de ligne de commande à surveiller, en temps réel, la consommation d'énergie des composants logiciels et matériels.
La documentation détaillée (y compris les guides d'utilisateur et de référence) est disponible sur: https://joular.github.io/powerjoular/.
Powerjoular surveille les plates-formes suivantes:
Dans toutes les plates-formes, Powerjoular fonctionne actuellement uniquement sur GNU / Linux.
Sur PC / serveurs, PowerJoular utilise l'interface PowerCap Linux pour lire la consommation d'énergie Intel RAPL (exécution moyenne de puissance).
PowerJoular prend en charge le domaine du package RAPL (Core, y compris les graphiques intégrés, et DRAM), et pour les processeurs plus récents, nous prenons en charge le package PSYS (qui couvre la consommation d'énergie de l'ensemble du SOC).
Sur les machines virtuelles, Powerjoular nécessite deux étapes:
Sur Raspberry Pi et Asus Tinker Board, Powerjoular utilise ses propres modèles de régression empirique basés sur la recherche pour estimer la consommation d'énergie du processeur ARM.
La liste prise en charge des modèles Raspberry Pi et Asus Tinker Board est répertorié ci-dessous. Nous soutenons toutes les révisions de chaque gamme de modèles. Cependant, le modèle est généré et formé sur une révision spécifique (énumérée entre les supports), et la précision est la meilleure sur cette révision particulière.
Nous prenons actuellement en charge les modèles de cartes Raspberry Pi et Asus Tinker suivantes:
Powerjoular est écrit en ADA et peut être facilement compilé, et son binaire unique a ajouté à votre chemin système.
Des scripts d'installation faciles à utiliser sont disponibles dans le dossier installer . Ouvrez simplement le dossier d'installation et exécutez le fichier approprié pour construire et / ou installer ou désinstaller le service du programme et de SystemD.
build-install.sh : va construire (en utilisant gprbuild ) et installer le service Binary sur /usr/bin et Systemd Service. Il faut avoir installé le moucheron et le gprbuild (voir compilation).uninstall.sh : Supprime le service Binary et SystemD Service. Pour utiliser Powerjoular, exécutez simplement la commande powerjoular . Sur PC / Serveurs, PowerJoular utilise le RAPL d'Intel via les Sysfs Linux PowerCap, et nécessite donc un accès root / sudo sur les derniers noyaux Linux (5.10 et plus récent): sudo powerjoular .
Par défaut, le logiciel affichera la consommation d'énergie du CPU et son utilisation. La différence (augmentation ou diminution) de la consommation d'énergie de la dernière métrique sera également affichée.
Les options suivantes sont disponibles:
-h : Montrez le message d'aide-v : Afficher le numéro de version-p pid : spécifie un pid particulier à surveiller-a appName : spécifiez un nom d'application particulier à surveiller (surveillera toutes les PID de l'application)-f filename : enregistrez les données de surveillance sur le chemin de nom de fichier donné-o filename : Enregistrez uniquement les dernières données de surveillance sur le chemin de nom de fichier donné (fichier écrasé avec seulement les dernières mesures d'alimentation)-t : Imprimez les données d'énergie au terminal-d : imprimer les informations de débogage au terminal-l : Utilisez des modèles de régression linéaire (moins précis que les modèles polynomiaux par défaut) pour les modèles d'énergie Raspberry Pi-m : Spécifiez un nom de fichier pour la consommation d'énergie de la machine virtuelle-s : Spécifiez le format de la puissance VM, soit powerjoular Format (généré avec l'option -o : 3 colonnes CSV Fichier avec le 3ème contenant la consommation électrique de la machine virtuelle) ou watts Format (1 colonne contenant uniquement la consommation de puissance de la machine virtuelle) Vous pouvez mélanger des options, c'est-à-dire, powerjoular -tp 144 surveillera PID 144 et imprimera au terminal.
Powerjoular est écrit avec ADA et nécessite un compilateur ADA moderne, comme le moucheron.
PowerJoular dépend des commandes et bibliothèques suivantes pour certaines de ses fonctions, mais peut fonctionner sans elles:
Sur une distribution GNU / Linux moderne, installez simplement le compilateur GNAT (et GPRBuild), généralement disponible à partir des référentiels de la distribution:
Fedora:
sudo dnf install fedora-gnat-project-common gprbuild gcc-gnat
Debian, Ubuntu or Raspberry Pi OS:
sudo apt install gnat gprbuild
Pour d'autres distributions, utilisez leur gestionnaire de packages pour télécharger le compilateur ou consultez cet article pour des instructions faciles pour diverses distributions, y compris Rhel et ses clones qui ne sont pas expédiés avec le support ADA dans GCC.
Pour compiler le projet, tapez simplement gprbuild si vous utilisez les dernières versions GPRBuild.
Ou, sur les anciennes versions, créez d'abord le dossier /obj , puis tapez gprbuild powerjoular.gpr .
Le binaire Powerjoular sera créé dans le dossier obj/ .
Par défaut, le projet relie statiquement les bibliothèques requises, et donc le binaire Powerjoular peut être copié sur n'importe quel système compatible et utilisé tel quel.
Pour construire avec une liaison dynamique, supprimez ou commentez le commutateur statique dans le fichier powerjoular.gpr , en particulier ces lignes:
package Binder is
for Switches ("Ada") use ("-static");
end Binder;
Vous pouvez également compiler Powerjoular avec le compilateur GNAT uniquement (sans avoir besoin de gprbuild).
Il suffit de compiler à l'aide de Gnatmake. Par exemple, pour compiler à partir du dossier obj/ (donc .o et .ali Les fichiers y sont générés), saisissez ce qui suit:
mkdir -p obj
cd obj
gnatmake ../src/powerjoular.adb
Si vous avez installé Alire, vous pouvez l'utiliser pour construire Powerjoular avec:
alr build
Le script release-version.sh Cross-Compiles Powerjoular sur plusieurs plates-formes (pour l'instant x86_64 et AARCH64, mais peut être modifiée pour ajouter d'autres plates-formes). Le script génère ensuite des packages d'installation RPM et Deb pour ces plates-formes.
Le script a besoin d'un X86_64 et d'un compilateur GNAT AARCH64, ainsi que des outils de packaging Deb et RPM.
Installez-les en fonction de votre distribution. Par exemple, dans Ubuntu 22.04 x86_64:
sudo apt install gnat gnat-12-aarch64-linux-gnu dpkg rpm
Un service SystemD est fourni et peut être installé (en copiant powerjoular.service dans le dossier systemd vers /etc/systemd/system/ ). Le service exécutera le programme avec l'option -o (qui enregistre uniquement les dernières données d'alimentation) et enregistre des données sur /tmp/powerjoular-service.csv . Le service peut être activé d'exécuter automatiquement sur le démarrage.
Le service SystemD est automatiquement installé lors de l'installation de Powerjoular à l'aide des packages fournis GNU / Linux.
Pour citer notre travail dans un document de recherche, veuillez citer notre article lors de la 18e Conférence internationale sur les environnements intelligents (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 est concédé sous licence uniquement sous la licence GNU GPL 3 (GPL-3.0 uniquement).
Copyright (C) 2020-2024, Adel Noureddine, Université de Pau et des Pays de L'Adour. Tous droits réservés. Ce programme et les documents d'accompagnement sont mis à disposition aux termes de la licence publique générale GNU v3.0 uniquement (GPL-3.0-unique
Auteur: Adel Noureddine