Biblioteca de monitoreo de consumo de energía y potencia de Linux fácil de usar. Monitorea CPU, GPU, RAM, E/S, red y el sistema general.
Esta biblioteca usa meson como sistema de construcción. Para instalar Meson, se requiere Python> = 3.8. Por favor, consulte las siguientes instrucciones de acuerdo con sus necesidades:
# Ubuntu
sudo apt install python3 python3-pip # Ubuntu
sudo apt install ninja-buildsudo pip3 install mesonDependencias
Primero, es importante recordar que esta es una biblioteca de Linux. Requiere las siguientes dependencias:
En Fedora 40, puede instalar algunas de estas dependencias usando:
# ProcPS
yum install procps-ng-devel.x86_64 procps-ng.x86_64
# Linux Perf
yum install perf
# SQLite
yum install libsqlite3x.x86_64 libsqlite3x-devel.x86_64
# ZeroMQ
yum install cppzmq-devel.x86_64
# JsonCPP
yum install jsoncpp-devel.x86_64En Ubuntu 20.04:
# ProcPS
apt install libprocps-dev libprocps8
# Linux Perf
apt install linux-tools-common linux-tools-generic
# SQLite
apt install libsqlite3-dev libsqlite3-0
# ZeroMQ
apt install libzmqpp4 libzmqpp-dev
# JsonCPP
apt install libjsoncpp-devOpcional
Para la documentación, necesitará otras dependencias como GraphViz, Java, TexLive y Doxygen. Por favor, instálelos usando:
# Ubuntu
sudo apt install doxygen graphviz openjdk-17-jre texlive-font-utilsPuede cambiar el "-dbuild-docs" o "-dbuild-docs-solo" a verdadero si desea compilar la documentación.
Compilar Efimon sigue el mismo proceso que cualquier proyecto de Meson. Por favor, siga los pasos para tener Efimon en su sistema:
meson builddir $OPTIONS
ninja -C builddinr
sudo ninja -C builddir Efimon se instalará bajo /usr/local/ prefix.
Para las $OPTIONS , puede seleccionar lo siguiente:
| Opción | Valor predeterminado | Valores | Descripción |
|---|---|---|---|
| Docs de construcción | FALSO | [Verdadero, Falso] | Habilitar compilación de documentos |
| Build-Docs solo | FALSO | [Verdadero, Falso] | Habilitar la compilación de solo documentos |
| Examen de construcción | verdadero | [Verdadero, Falso] | Habilitar la compilación de ejemplos |
| modo de desarrollador | verdadero | [Verdadero, Falso] | Habilitar el modo de desarrollador |
| Habilitar PCM | verdadero | [Verdadero, Falso] | Habilitar el PCM Intel |
| habilitar | verdadero | [Verdadero, Falso] | Habilitar la herramienta de perfil de Linux |
| habilitar rapl | verdadero | [Verdadero, Falso] | Habilitar la interfaz RAPL |
| Habilitar-SQL | verdadero | [Verdadero, Falso] | Habilitar el Logger SQL |
| habilitar-ipmi | verdadero | [Verdadero, Falso] | Habilitar el Logger IPMI |
TBD
El analizador de potencia de Efimon envuelve un proceso y realiza el análisis. Es autónomo y requiere raíz.
Actualmente, nos hemos centrado en un analizador para medir el consumo de energía basado en los histogramas.
PID=2000 # Process ID
STIME=10 # Metering during 10 seconds
sudo efimon-power-analyser -p ${PID} -s ${STIME} > consumption.csvOtra forma de ejecutarlo:
STIME=10 # Metering during 10 seconds
# the command is time sleep 1
sudo efimon-power-analyser -s ${STIME} -c time sleep 1El Daemon Efimon es un servidor que realiza observaciones de PID. Recibe la información sobre los procesos para analizar sobre IPC (TCP). Requiere raíz.
Ejemplo de uso:
efimon-daemonTiene opciones para:
El lanzador de Efimon envuelve una aplicación, lanzando su ejecución o interceptando un PID. Se conecta al demonio Efimon sobre IPC y extrae el análisis.
No requiere raíz.
APP= " ../NanoBenchmark/cpu 11 "
efimon-launcher -s 10 -c ${APP}Lanza un comando.
efimon-launcher -s 3 --pid 60603Monitorea un proceso ya en ejecución.
Tiene opciones para:
El lanzador requiere una instancia en ejecución del Daemon Efimon
Efimon ha sido probado en las siguientes plataformas:
Este proyecto se le otorga bajo la licencia LGPL V2.1. Se permite el enlace dinámico de aplicaciones comerciales a Efimon. El trabajo y las modificaciones derivadas deben publicarse bajo la misma licencia que Efimon (LGPL V2.1).