
Powerjoular es un software de línea de comandos para monitorear, en tiempo real, el consumo de energía de los componentes de software y hardware.
La documentación detallada (incluidas las guías de usuario y de referencia) están disponibles en: https://joular.github.io/powerjoular/.
Powerjoular monitorea las siguientes plataformas:
En todas las plataformas, Powerjoular funciona actualmente solo en GNU/Linux.
En PC/servidores, Powerjoular utiliza la interfaz PowerCap Linux para leer el consumo de energía Intel RAPL (Ejecutar el límite de potencia promedio).
Powerjoular admite el dominio del paquete RAPL (núcleo, incluidos gráficos integrados y DRAM), y para procesadores más recientes, admitemos el paquete PSYS (que cubre el consumo de energía de todo el SOC).
En las máquinas virtuales, Powerjoular requiere dos pasos:
En Raspberry Pi y ASUS Tinker Board, Powerjoular utiliza sus propios modelos de regresión empírica basados en la investigación para estimar el consumo de energía del procesador ARM.
La lista compatible de modelos de tablero Raspberry Pi y Asus Tinker se enumera a continuación. Apoyamos todas las revisiones de cada alineación de modelos. Sin embargo, el modelo se genera y se capacita en una revisión específica (enumerada entre paréntesis), y la precisión es mejor en esta revisión particular.
Actualmente admitimos los siguientes modelos de tablero de Raspberry Pi y Asus Tinker:
Powerjoular está escrito en ADA y se puede compilar fácilmente, y su binario único agregado a su ruta del sistema.
Los scripts de instalación fáciles de usar están disponibles en la carpeta installer . Simplemente abra la carpeta del instalador y ejecute el archivo apropiado para construir y/o instalar o desinstalar el Servicio del Programa y Systemd.
build-install.sh : Build (usando gprbuild ) e instalará el programa Binario a /usr/bin y Systemd Service. Requiere haber instalado GNAT y GPRBuild (ver compilación).uninstall.sh : elimina el programa Binario y Systemd. Para usar Powerjoular, simplemente ejecute el comando powerjoular . En PC/servidores, PowerJoular usa el RAPL de Intel a través del SYSF de Linux PowerCap y, por lo tanto, requiere acceso a root/sudo en los últimos núcleos de Linux (5.10 y más nuevo): sudo powerjoular .
Por defecto, el software mostrará el consumo de energía de la CPU y su utilización. También se mostrará la diferencia (aumento o disminución) del consumo de energía de la última métrica.
Las siguientes opciones están disponibles:
-h : Muestra el mensaje de ayuda-v : Mostrar número de versión-p pid : especificando un PID particular para monitorear-a appName : especificando un nombre de aplicación particular para monitorear (monitoreará todos los PID de la aplicación)-f filename : Guardar datos de monitoreo en la ruta del nombre de archivo dada-o filename : Guarde solo los últimos datos de monitoreo en la ruta de nombre de archivo dada (archivo sobrescribido con solo las últimas medidas de energía)-t : imprimir datos de energía en el terminal-d : Imprimir información de depuración a la terminal-l : Use modelos de regresión lineal (menos precisos que los modelos polinomiales predeterminados) para los modelos de energía Raspberry Pi-m : especifique un nombre de archivo para el consumo de energía de la máquina virtual-s : Especifique el formato de la potencia de VM, ya sea el formato powerjoular (generado con la opción -o : 3 columnas Archivo CSV con el 3er que contiene el consumo de energía el VM) o el formato watts (1 columna que contiene solo el consumo de energía del VM) Puede mezclar opciones, es decir, powerjoular -tp 144 monitoreará PID 144 e imprimirá en el terminal.
Powerjoular está escrito con ADA y requiere un compilador ADA moderno, como Gnat.
Powerjoular depende de los siguientes comandos y bibliotecas para ciertas de sus funciones, pero puede funcionar sin ellas:
En una distribución moderna de GNU/Linux, simplemente instale el compilador GNAT (y GPRBuild), generalmente disponible en los repositorios de la distribución:
Fedora:
sudo dnf install fedora-gnat-project-common gprbuild gcc-gnat
Debian, Ubuntu or Raspberry Pi OS:
sudo apt install gnat gprbuild
Para otras distribuciones, use su administrador de paquetes para descargar el compilador o consulte este artículo para obtener una fácil instrucción para varias distribuciones, incluidos Rhel y sus clones que no envían con soporte ADA en GCC.
Para compilar el proyecto, simplemente escriba gprbuild si usa las últimas versiones GPRBuild.
O, en versiones anteriores, cree primero la carpeta /obj , luego escriba gprbuild powerjoular.gpr .
El binario Powerjoular se creará en la carpeta obj/ .
De manera predeterminada, el proyecto vinculará estáticamente las bibliotecas requeridas y, por lo tanto, el binario PowerJoular se puede copiar a cualquier sistema compatible y usarse como se usa.
Para construir con un enlace dinámico, elimine o comente el interruptor estático en el archivo powerjoular.gpr , en particular estas líneas:
package Binder is
for Switches ("Ada") use ("-static");
end Binder;
También puede compilar Powerjoular con el compilador GNAT solamente (sin la necesidad de GPRBuild).
Simplemente compile usando Gnatmake. Por ejemplo, para compilar desde obj/ Carpeta (por lo tanto, se generan archivos .o y .ali allí), escriba lo siguiente:
mkdir -p obj
cd obj
gnatmake ../src/powerjoular.adb
Si tiene instalado Alire, puede usarlo para construir Powerjoular con:
alr build
El script release-version.sh compila PowerJoular a múltiples plataformas (por ahora x86_64 y aarch64, pero se puede ajustar para agregar otras plataformas). El script luego genera paquetes de instalación binarios de RPM y DEB para estas plataformas.
El script necesita un compilador X86_64 y un compilador AARCH64 Gnat, junto con herramientas de embalaje DEB y RPM.
Instale de acuerdo con su distribución. Por ejemplo, en Ubuntu 22.04 x86_64:
sudo apt install gnat gnat-12-aarch64-linux-gnu dpkg rpm
Se proporciona un servicio Systemd y se puede instalar (copiando powerjoular.service en la carpeta systemd a /etc/systemd/system/ ). El servicio ejecutará el programa con la opción -o (que solo guarda los últimos datos de potencia) y guarda datos a /tmp/powerjoular-service.csv . El servicio se puede habilitar para ejecutarse automáticamente en el arranque.
El servicio SystemD se instala automáticamente al instalar PowerJoular utilizando los paquetes proporcionados por GNU/Linux.
Para citar nuestro trabajo en un trabajo de investigación, cite nuestro artículo en la 18ª Conferencia Internacional sobre entornos inteligentes (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 tiene licencia bajo la licencia GNU GPL 3 solamente (solo GPL-3.0).
Copyright (c) 2020-2024, Adel Noureddine, Université de Pau et des Pays de l'Adour. Reservados todos los derechos. Este programa y los materiales adjuntos están disponibles bajo los términos de la Licencia Pública General GNU V3.0 (GPL-3.0-Only) que acompaña a esta distribución, y está disponible en: https://www.gnu.org/licenses/gpl-3.0.en.html
Autor: Adel Noureddine