
PowerJoular是一種命令行軟件,可實時監視軟件和硬件組件的功耗。
詳細的文檔(包括用戶和參考指南)可用:https://joular.github.io/powerjoular/。
PowerJoular監視以下平台:
在所有平台中,PowerJoular目前僅在GNU/Linux上工作。
在PC/服務器上,PowerJoular使用PowerCap Linux接口讀取英特爾RAPL(運行平均功率限制)能耗。
PowerJoular支持RAPL軟件包域(包括集成圖形和DRAM),對於最近的處理器,我們支持PSYS軟件包(涵蓋了整個SOC的能耗)。
在虛擬機上,PowerJoular需要兩個步驟:
在Raspberry Pi和Asus Tinker Board上,PowerJoular使用其自己的基於研究的經驗回歸模型來估計ARM處理器的功耗。
下面列出了Raspberry Pi和Asus Tinker板模型的支持的列表。我們支持每個模型陣容的所有修訂。但是,該模型是在特定的修訂版中生成和培訓的(在括號之間列出的),並且在此特定修訂中的準確性最好。
我們目前支持以下Raspberry Pi和Asus Tinker董事會模型:
PowerJoular用ADA編寫,可以輕鬆編譯,其獨特的二進制添加到您的系統路徑中。
易於使用的安裝腳本在installer文件夾中可用。只需打開安裝程序文件夾並運行適當的文件以構建和/或安裝或卸載程序和SystemD服務。
build-install.sh :將構建(使用gprbuild )並將程序二進制安裝到/usr/bin and SystemD服務。它需要安裝GNAT和GPRBUILD(請參閱彙編)。uninstall.sh :刪除程序二進制和SystemD服務。 要使用PowerJoular,只需運行命令powerjoular即可。在PC/服務器上,PowerJoular通過Linux PowerCap SYSFS使用Intel的Rapl,因此需要在最新的Linux內核(5.10及更新)上進行root/sudo訪問: sudo powerjoular 。
默認情況下,該軟件將顯示CPU及其利用的功耗。還將顯示上次度量的功耗的差異(增加或減少)。
可用以下選項:
-h :顯示幫助消息-v :顯示版本號-p pid :特定的特定PID監測-a appName :指定要監視的特定應用程序名稱(將監視應用程序的所有PID)-f filename :將監視數據保存到給定的文件名路徑-o filename :僅保存最後一個監視數據到給定的文件名路徑(僅使用最新功率測量覆蓋文件)-t :將能源數據打印到終端-d :將調試信息打印到終端-l :使用線性回歸模型(不如默認多項式模型準確)-m :指定虛擬機功耗的文件名-s :指定VM功率的格式,要么powerjoular格式(使用-o選項生成:3列CSV文件,其中包含VM的第3列)或watts格式(僅包含VM功耗的1列)您可以混合選項,即powerjoular -tp 144將監視PID 144,並將打印到終端。
PowerJoular用ADA編寫,需要一個現代的ADA編譯器,例如GNAT。
PowerJoular取決於其某些功能的以下命令和庫,但可以在沒有它們的情況下運行:
在現代GNU/Linux發行版中,只需安裝GNAT編譯器(和GPRBuild),通常可從分發存儲庫中獲得:
Fedora:
sudo dnf install fedora-gnat-project-common gprbuild gcc-gnat
Debian, Ubuntu or Raspberry Pi OS:
sudo apt install gnat gprbuild
對於其他發行版,請使用其軟件包管理器下載編譯器,或檢查本文以簡單地說明各種分佈,包括RHEL及其克隆,這些克隆不會在GCC中提供ADA支持。
要編譯該項目,請鍵入gprbuild如果使用最新的GPRBUILD版本。
或者,在較舊版本上,首先創建/obj文件夾,然後鍵入gprbuild powerjoular.gpr 。
PowerJoular二進制將在obj/文件夾中創建。
默認情況下,項目將在靜態地鏈接所需的庫,因此可以將PowerJoular二進制複製到任何兼容系統並使用AS-IS。
要使用動態鏈接構建,請刪除或評論powerjoular.gpr文件中的靜態開關,特別是這些行:
package Binder is
for Switches ("Ada") use ("-static");
end Binder;
您還可以僅使用GNAT編譯器編譯PowerJoular(無需GPRBuild)。
只需使用gnatmake編譯即可。例如,從obj/文件夾中編譯(在此生成.o和.ali文件),請鍵入以下內容:
mkdir -p obj
cd obj
gnatmake ../src/powerjoular.adb
如果您安裝了Alire,則可以使用它來構建PowerJoular:
alr build
release-version.sh腳本交叉編譯powerjoular到多個平台(現在x86_64和aarch64,但可以調整以添加其他平台)。然後,該腳本為這些平台生成RPM和DEB Binary安裝軟件包。
該腳本需要X86_64和AARCH64 GNAT編譯器,以及DEB和RPM包裝工具。
根據您的發行版安裝它們。例如,在Ubuntu 22.04 x86_64中:
sudo apt install gnat gnat-12-aarch64-linux-gnu dpkg rpm
提供了系統D服務並可以安裝(通過將systemd文件夾中的powerjoular.service複製到/etc/systemd/system/ )。該服務將使用-o選項(僅保存最新的電源數據)運行該程序,並將數據保存到/tmp/powerjoular-service.csv 。該服務可以啟用在啟動時自動運行。
使用GNU/Linux提供的軟件包安裝PowerJoular時,SystemD服務將自動安裝。
為了在研究論文中引用我們的作品,請在第18屆智能環境國際會議(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僅根據GNU GPL 3許可(僅GPL-3.0)獲得許可。
版權所有(C)2020-2024,Adel Noureddine,De Pau des de L'AdourUniversiténoureddine。版權所有。該程序和隨附的材料可根據GNU通用公共許可證v3.0(僅GPL-3.0-)的條款提供,該條款伴隨此分配,可在以下網址提供:
作者:阿德爾·諾雷丁