
PowerJoular adalah perangkat lunak baris perintah untuk memantau, secara real time, konsumsi daya komponen perangkat lunak dan perangkat keras.
Dokumentasi terperinci (termasuk panduan pengguna dan referensi) tersedia di: https://joular.github.io/powerejoular/.
Powerjoular memantau platform berikut:
Di semua platform, PowerJoular bekerja saat ini hanya di GNU/Linux.
Pada PC/Server, PowerJoular menggunakan antarmuka Linux PowerCap untuk membaca Intel RAPL (menjalankan batas daya rata -rata) Konsumsi energi.
Powerjoular mendukung domain paket rapl (Core, termasuk grafik terintegrasi, dan DRAM), dan untuk prosesor yang lebih baru, kami mendukung paket PSYS (yang mencakup konsumsi energi dari seluruh SOC).
Pada mesin virtual, Powerjoular membutuhkan dua langkah:
Pada dewan Raspberry Pi dan Asus Tinker, Powerjoular menggunakan model regresi empiris berbasis penelitiannya sendiri untuk memperkirakan konsumsi daya prosesor ARM.
Daftar yang didukung dari Raspberry Pi dan Asus Tinker Board Models tercantum di bawah ini. Kami mendukung semua revisi dari setiap lineup model. Namun, model ini dihasilkan dan dilatih pada revisi tertentu (tercantum antara tanda kurung), dan keakuratannya paling baik pada revisi khusus ini.
Kami saat ini mendukung model papan Raspberry Pi dan Asus Tinker berikut:
Powerjoular ditulis dalam ADA dan dapat dengan mudah dikompilasi, dan binernya yang unik ditambahkan ke jalur sistem Anda.
Skrip instalasi yang mudah digunakan tersedia di folder installer . Cukup buka folder installer dan jalankan file yang sesuai untuk membangun dan/atau menginstal atau menghapus instalasi program dan layanan SystemD.
build-install.sh : akan membangun (menggunakan gprbuild ) dan menginstal biner program ke /usr/bin dan layanan SystemD. Dibutuhkan memiliki Gnat dan GPRBUILD yang diinstal (lihat Kompilasi).uninstall.sh : Menghapus layanan biner dan sistem SystemD. Untuk menggunakan Powerjoular, jalankan saja perintah powerjoular . Pada PC/Server, PowerJoular menggunakan RAPL Intel melalui SYSF Linux PowerCap, dan karenanya membutuhkan akses root/sudo pada kernel Linux terbaru (5.10 dan lebih baru): sudo powerjoular .
Secara default, perangkat lunak akan menunjukkan konsumsi daya CPU dan pemanfaatannya. Perbedaan (peningkatan atau penurunan) konsumsi daya dari metrik terakhir juga akan ditampilkan.
Opsi berikut tersedia:
-h : Tampilkan pesan bantuan-v : Tampilkan nomor versi-p pid : spesifik PID tertentu untuk dipantau-a appName : Tentukan Nama Aplikasi tertentu yang akan dipantau (akan memantau semua PID dari aplikasi)-f filename : Simpan data pemantauan ke jalur nama file yang diberikan-o filename : Simpan hanya data pemantauan terakhir ke jalur nama file yang diberikan (file ditimpa hanya dengan ukuran daya terbaru)-t : Cetak data energi ke terminal-d : Cetak info debug ke terminal-l : Gunakan model regresi linier (kurang akurat dari model polinomial default) untuk model energi raspberry pi-m : Tentukan nama file untuk konsumsi daya mesin virtual-s : Tentukan format daya VM, baik format powerjoular (dihasilkan dengan opsi -o : 3 kolom file CSV dengan ke -3 yang berisi konsumsi daya VM), atau format watts (1 kolom yang berisi hanya konsumsi daya VM) Anda dapat mencampur opsi, yaitu, powerjoular -tp 144 akan memantau PID 144 dan akan mencetak ke terminal.
Powerjoular ditulis dengan ADA, dan membutuhkan kompiler ADA modern, seperti nyamuk.
Powerjoular tergantung pada perintah dan perpustakaan berikut untuk fungsinya, tetapi dapat berfungsi tanpa mereka:
Pada distribusi GNU/Linux modern, cukup instal kompiler GNAT (dan GPRBUILD), biasanya tersedia dari repositori distribusi:
Fedora:
sudo dnf install fedora-gnat-project-common gprbuild gcc-gnat
Debian, Ubuntu or Raspberry Pi OS:
sudo apt install gnat gprbuild
Untuk distribusi lainnya, gunakan manajer paket mereka untuk mengunduh kompiler, atau periksa artikel ini untuk instruksi mudah untuk berbagai distribusi, termasuk RHEL dan klonnya yang tidak dikirimkan dengan dukungan ADA di GCC.
Untuk mengkompilasi proyek, cukup ketik gprbuild jika menggunakan versi GPRBUILD terbaru.
Atau, pada versi yang lebih lama, buat folder /obj terlebih dahulu, lalu ketik gprbuild powerjoular.gpr .
Biner Powerjoular akan dibuat di folder obj/ .
Secara default, proyek akan secara statis menghubungkan pustaka yang diperlukan, dan oleh karena itu biner Powerjoular dapat disalin ke sistem apa pun yang kompatibel dan menggunakan apa adanya.
Untuk membangun dengan tautan dinamis, menghapus atau mengomentari sakelar statis di file powerjoular.gpr , khususnya baris ini:
package Binder is
for Switches ("Ada") use ("-static");
end Binder;
Anda juga dapat mengkompilasi Powerjoular dengan kompiler GNAT saja (tanpa perlu GPRBUILD).
Compile menggunakan gnatmake. Misalnya, untuk dikompilasi dari obj/ folder (jadi .o dan .Ali. File dihasilkan di sana), ketik yang berikut:
mkdir -p obj
cd obj
gnatmake ../src/powerjoular.adb
Jika Anda telah menginstal Alire, Anda dapat menggunakannya untuk membangun Powerjoular dengan:
alr build
Skrip release-version.sh Cross-Compiles PowerJoular ke beberapa platform (untuk saat ini x86_64 dan aarch64, tetapi dapat di-tweak untuk menambahkan platform lain). Skrip kemudian menghasilkan paket instalasi RPM dan Deb Binary untuk platform ini.
Script membutuhkan x86_64 dan kompiler GNAT aarch64, bersama dengan alat pengemasan Deb dan RPM.
Instal sesuai dengan distribusi Anda. Misalnya, dalam Ubuntu 22.04 x86_64:
sudo apt install gnat gnat-12-aarch64-linux-gnu dpkg rpm
Layanan SystemD disediakan dan dapat diinstal (dengan menyalin powerjoular.service di folder systemd ke /etc/systemd/system/ ). Layanan ini akan menjalankan program dengan opsi -o (yang hanya menyimpan data daya terbaru) dan menyimpan data ke /tmp/powerjoular-service.csv . Layanan dapat diaktifkan untuk dijalankan secara otomatis saat boot.
Layanan SystemD secara otomatis diinstal saat menginstal PowerJoular menggunakan paket yang disediakan GNU/Linux.
Untuk mengutip pekerjaan kami dalam makalah penelitian, silakan mengutip makalah kami di Konferensi Internasional ke -18 tentang Lingkungan Cerdas (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 dilisensikan di bawah lisensi GNU GPL 3 (GPL-3.0-only).
Hak Cipta (C) 2020-2024, Adel Noureddine, Université de Pau et des Pays de l'Adour. Semua hak dilindungi undang -undang. Program ini dan materi yang menyertainya tersedia berdasarkan ketentuan Lisensi Publik Umum GNU V3.0 saja (GPL-3.0-Only) yang menyertai distribusi ini, dan tersedia di: https://www.gnu.org/licenses/gpl-3.0.en.html
Penulis: Adel Noureddine