
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-)的条款提供,该条款伴随此分配,可在以下网址提供:
作者:阿德尔·诺雷丁