Bibliothèque de surveillance et démon de consommation de puissance et de ressources linux faciles à utiliser et démon. Surveille le processeur, le GPU, la RAM, les E / S, le réseau et le système global.
Cette bibliothèque utilise meson comme système de construction. Pour installer Meson, Python> = 3,8 est requis. S'il vous plaît, vérifiez les instructions suivantes en fonction de vos besoins:
# Ubuntu
sudo apt install python3 python3-pip # Ubuntu
sudo apt install ninja-buildsudo pip3 install mesonDépendances
Premièrement, il est important de rappeler qu'il s'agit d'une bibliothèque Linux. Il nécessite les dépendances suivantes:
Sur Fedora 40, vous pouvez installer certaines de ces dépendances en utilisant:
# 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_64Sur 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-devFacultatif
Pour la documentation, vous aurez besoin d'autres dépendances comme Graphviz, Java, Texlive et Doxygen. S'il vous plaît, installez-les en utilisant:
# Ubuntu
sudo apt install doxygen graphviz openjdk-17-jre texlive-font-utilsVous pouvez changer les "-dbuild-docs" ou "-dbuild-docs-only" sur true si vous souhaitez compiler la documentation.
La compilation d'Efimon suit le même processus que n'importe quel projet Meson. S'il vous plaît, suivez les étapes pour avoir EFimon sur votre système:
meson builddir $OPTIONS
ninja -C builddinr
sudo ninja -C builddir Efimon sera installé sous le /usr/local/ préfixe.
Pour les $OPTIONS , vous pouvez sélectionner ce qui suit:
| Option | Valeur par défaut | Valeurs | Description |
|---|---|---|---|
| build-docs | FAUX | [vrai, faux] | Activer la compilation des documents |
| build-docs uniquement | FAUX | [vrai, faux] | Activer la compilation des documents sur les documents |
| build-exemples | vrai | [vrai, faux] | Activer la compilation d'exemples |
| mode développeur | vrai | [vrai, faux] | Activer le mode développeur |
| Activer PCM | vrai | [vrai, faux] | Activer le PCM Intel |
| Activer Perf | vrai | [vrai, faux] | Activer l'outil Linux Perf |
| Activer Rapl | vrai | [vrai, faux] | Activer l'interface RAPL |
| Activer-SQL | vrai | [vrai, faux] | Activer le SQL Logger |
| activer-ipmi | vrai | [vrai, faux] | Activer le journaliste IPMI |
TBD
L'analyseur d'alimentation Efimon enroule un processus et effectuer l'analyse. Il est autonome et nécessite de la racine.
Actuellement, nous nous sommes concentrés sur un analyseur pour mesurer la consommation d'énergie en fonction des histogrammes.
PID=2000 # Process ID
STIME=10 # Metering during 10 seconds
sudo efimon-power-analyser -p ${PID} -s ${STIME} > consumption.csvUne autre façon de l'exécuter:
STIME=10 # Metering during 10 seconds
# the command is time sleep 1
sudo efimon-power-analyser -s ${STIME} -c time sleep 1Le démon d'Efimon est un serveur qui effectue des observations de PID. Il reçoit les informations sur les processus à analyser sur IPC (TCP). Cela nécessite de la racine.
Exemple d'utilisation:
efimon-daemonIl a des options pour:
Le lanceur d'Efimon enveloppe une application, lançant son exécution ou interceptant un PID. Il se connecte au démon d'Efimon sur IPC et extrait l'analyse.
Il ne nécessite pas de racine.
APP= " ../NanoBenchmark/cpu 11 "
efimon-launcher -s 10 -c ${APP}Il lance une commande.
efimon-launcher -s 3 --pid 60603Il surveille un processus déjà en cours d'exécution.
Il a des options pour:
Le lanceur nécessite une instance en cours d'exécution du démon d'Efimon
Efimon a été testé sur les plates-formes suivantes:
Ce projet vous est donné dans le cadre de la licence LGPL V2.1. La liaison dynamique des applications commerciales à Efimon est autorisée. Les travaux et modifications dérivés doivent être publiés sous la même licence que EFimon (LGPL V2.1).