Einfach zu bedienende Linux-Strom- und Ressourcenverbrauchsüberwachungsbibliothek und Daemon. Überwacht CPU, GPU, RAM, E/A, Netzwerk und das Gesamtsystem.
Diese Bibliothek verwendet meson als Gebäudesystem. Um Meson zu installieren, ist Python> = 3,8 erforderlich. Bitte überprüfen Sie die folgenden Anweisungen entsprechend Ihren Anforderungen:
# Ubuntu
sudo apt install python3 python3-pip # Ubuntu
sudo apt install ninja-buildsudo pip3 install mesonAbhängigkeiten
Erstens ist es wichtig zu erinnern, dass dies eine Linux -Bibliothek ist. Es erfordert die folgenden Abhängigkeiten:
In Fedora 40 können Sie einige dieser Abhängigkeiten mit:
# 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_64Auf 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-devOptional
Für die Dokumentation benötigen Sie andere Abhängigkeiten wie Graphviz, Java, Texlive und Doxygen. Bitte installieren Sie sie mithilfe:
# Ubuntu
sudo apt install doxygen graphviz openjdk-17-jre texlive-font-utilsSie können die "-dbuild-docs" oder "-dbuild-docs" zu true wechseln, wenn Sie die Dokumentation kompilieren möchten.
Das Kompilieren von Efimon folgt dem gleichen Prozess wie jedes Meson -Projekt. Bitte befolgen Sie die Schritte, um Efimon in Ihrem System zu haben:
meson builddir $OPTIONS
ninja -C builddinr
sudo ninja -C builddir Efimon wird unter dem /usr/local/ Präfix installiert.
Für die $OPTIONS können Sie Folgendes auswählen:
| Option | Standardwert | Werte | Beschreibung |
|---|---|---|---|
| Build-Docs | FALSCH | [wahr, falsch] | Aktivieren Sie die Zusammenstellung von Dokumenten |
| Nur-Build-Docs | FALSCH | [wahr, falsch] | Aktivieren Sie die Zusammenstellung von Docs-Nur-Dokumenten |
| Aufbau-Beispiele | WAHR | [wahr, falsch] | Aktivieren Sie Beispiele Compilation |
| Entwicklermodus | WAHR | [wahr, falsch] | Entwicklermodus aktivieren |
| Aktivieren Sie-PCM | WAHR | [wahr, falsch] | Aktivieren Sie das Intel PCM |
| aktivieren-perf | WAHR | [wahr, falsch] | Aktivieren Sie das Linux -Perf -Werkzeug |
| Aktivieren Sie RAPL | WAHR | [wahr, falsch] | Aktivieren Sie die Rapl -Schnittstelle |
| aktivieren sql | WAHR | [wahr, falsch] | Aktivieren Sie den SQL -Logger |
| aktivieren-ipmi | WAHR | [wahr, falsch] | Aktivieren Sie den IPMI -Logger |
TBD
Der Efimon Power Analyzer wickelt einen Prozess und führt die Analyse durch. Es ist in sich geschlossen und benötigt Wurzel.
Derzeit konzentrierten wir uns auf einen Analysator, um den Stromverbrauch basierend auf den Histogrammen zu messen.
PID=2000 # Process ID
STIME=10 # Metering during 10 seconds
sudo efimon-power-analyser -p ${PID} -s ${STIME} > consumption.csvEine andere Möglichkeit, es auszuführen:
STIME=10 # Metering during 10 seconds
# the command is time sleep 1
sudo efimon-power-analyser -s ${STIME} -c time sleep 1Der Efimon -Daemon ist ein Server, der Beobachtungen von PID durchführt. Es empfängt die Informationen über die Prozesse, die über IPC (TCP) analysiert werden sollen. Es erfordert Wurzel.
Beispiel der Nutzung:
efimon-daemonEs hat Optionen zu:
Der Efimon -Launcher beendet eine Anwendung, startet seine Ausführung oder stellt eine PID ab. Es stellt eine Verbindung zum Efimon -Daemon über IPC her und extrahiert die Analyse.
Es erfordert keine Wurzel.
APP= " ../NanoBenchmark/cpu 11 "
efimon-launcher -s 10 -c ${APP}Es startet einen Befehl.
efimon-launcher -s 3 --pid 60603Es überwacht einen bereits laufenden Prozess.
Es hat Optionen zu:
Der Launcher benötigt eine laufende Instanz des Efimon -Daemons
Efimon wurde in den folgenden Plattformen getestet:
Dieses Projekt wird Ihnen gemäß der LGPL V2.1 -Lizenz gegeben. Eine dynamische Verknüpfung von kommerziellen Anwendungen zu Efimon ist zulässig. Abgeleitete Arbeiten und Änderungen müssen unter derselben Lizenz wie Efimon (LGPL v2.1) veröffentlicht werden.