
O PowerJoular é um software de linha de comando para monitorar, em tempo real, o consumo de energia de componentes de software e hardware.
A documentação detalhada (incluindo guias de usuário e referência) está disponível em: https://joular.github.io/powerjoular/.
Powerjoular monitora as seguintes plataformas:
Em todas as plataformas, o Powerjoular funciona atualmente apenas no GNU/Linux.
Em PC/servidores, o PowerJoular usa a interface PowerCap Linux para ler o consumo de energia do Intel Rapl (executando o limite médio de energia).
O PowerJoular suporta o Domínio do Pacote Rapl (Core, incluindo gráficos integrados e DRAM) e, para processadores mais recentes, apoiamos o pacote PSYS (que cobre o consumo de energia de todo o SOC).
Em máquinas virtuais, o Powerjoular requer duas etapas:
No Raspberry Pi e no Asus Tinker Board, Powerjoular usa seus próprios modelos de regressão empírica baseada em pesquisa para estimar o consumo de energia do processador ARM.
A lista suportada dos modelos Raspberry Pi e Asus Tinker Board está listada abaixo. Apoiamos todas as revisões de cada linha de modelo. No entanto, o modelo é gerado e treinado em uma revisão específica (listada entre colchetes), e a precisão é a melhor nesta revisão específica.
Atualmente, apoiamos os seguintes modelos Raspberry Pi e Asus Tinker Board:
Powerjoular está escrito em ADA e pode ser facilmente compilado, e seu binário exclusivo adicionado ao caminho do sistema.
Os scripts de instalação fáceis de usar estão disponíveis na pasta installer . Basta abrir a pasta do instalador e executar o arquivo apropriado para criar e/ou instalar ou desinstalar o programa e o serviço Systemd.
build-install.sh : construirá (usando gprbuild ) e instalará o programa binário do programa para /usr/bin e serviço systemd. Requer ter instalado o Gnat e GPRBuild (consulte a compilação).uninstall.sh : exclui o serviço Binário e Systemd. Para usar o PowerJoular, basta executar o comando powerjoular . Em PC/servidores, o PowerJoular usa o Rapl da Intel através do Linux PowerCap Sysfs e, portanto, requer acesso root/sudo nos mais recentes kernels Linux (5.10 e mais recente): sudo powerjoular .
Por padrão, o software mostrará o consumo de energia da CPU e sua utilização. A diferença (aumento ou diminuição) do consumo de energia da última métrica também será mostrada.
As seguintes opções estão disponíveis:
-h : mostre a mensagem de ajuda-v : mostre o número da versão-p pid : Especificar um PID específico para monitorar-a appName : Especifiy Um nome de aplicativo específico para monitorar (monitorará todos os PIDs do aplicativo)-f filename : salve os dados de monitoramento no caminho do nome do arquivo fornecido-o filename : salve apenas os últimos dados de monitoramento no caminho do nome de arquivo fornecido (arquivo substituído apenas com as mais recentes medidas de energia)-t : Imprimir dados de energia para o terminal-d : Imprimir informações de depuração para o terminal-l : use modelos de regressão linear (menos precisos que os modelos polinomiais padrão) para modelos de energia Raspberry Pi-m : especifique um nome de arquivo para o consumo de energia da máquina virtual-s : especifique o formato da potência da VM, formato powerjoular (gerado com a opção -o : 3 colunas Arquivo CSV com o terceiro contendo o consumo de energia da VM) ou formato watts (1 coluna que contém apenas o consumo de energia da VM) Você pode misturar opções, ou seja, powerjoular -tp 144 monitorará o PID 144 e imprimirá o terminal.
Powerjoular está escrito com ADA e requer um compilador ADA moderno, como o Gnat.
Powerjoular depende dos seguintes comandos e bibliotecas para algumas de suas funções, mas pode funcionar sem eles:
Em uma distribuição moderna do GNU/Linux, basta instalar o compilador de Gnat (e GPRBuild), geralmente disponível nos repositórios da distribuição:
Fedora:
sudo dnf install fedora-gnat-project-common gprbuild gcc-gnat
Debian, Ubuntu or Raspberry Pi OS:
sudo apt install gnat gprbuild
Para outras distribuições, use seu gerenciador de pacotes para baixar o compilador ou verifique este artigo para obter instruções fáceis para várias distribuições, incluindo RHEL e seus clones que não são enviados com suporte da ADA no GCC.
Para compilar o projeto, basta digitar gprbuild se estiver usando as mais recentes versões GPRBuild.
Ou, em versões mais antigas, crie a pasta /obj primeiro e digite gprbuild powerjoular.gpr .
O binário Powerjoular será criado na Pasta obj/ .
Por padrão, o projeto vinculará estaticamente as bibliotecas necessárias e, portanto, o binário do Powerjoular pode ser copiado a qualquer sistema compatível e usado como como.
Para construir com vinculação dinâmica, remover ou comentar o interruptor estático no arquivo powerjoular.gpr , em particular essas linhas:
package Binder is
for Switches ("Ada") use ("-static");
end Binder;
Você também pode compilar o PowerJoular apenas com o compilador de mosquitos (sem a necessidade de GPRBUILD).
Basta compilar usando Gnatmake. Por exemplo, para compilar a partir de obj/ pasta (os arquivos .O e .Ali são gerados lá), digite o seguinte:
mkdir -p obj
cd obj
gnatmake ../src/powerjoular.adb
Se você instalou o Alire, pode usá -lo para construir o PowerJoular com:
alr build
O script release-version.sh script cross-compiles PowerJoular para várias plataformas (por enquanto x86_64 e AARCH64, mas pode ser aprimorado para adicionar outras plataformas). O script gera pacotes de instalação binária RPM e Deb para essas plataformas.
O script precisa de um compilador X86_64 e um AARCH64 GNAT, juntamente com as ferramentas de embalagem Deb e RPM.
Instale -os de acordo com sua distribuição. Por exemplo, no Ubuntu 22.04 x86_64:
sudo apt install gnat gnat-12-aarch64-linux-gnu dpkg rpm
Um serviço Systemd é fornecido e pode ser instalado (copiando powerjoular.service na pasta systemd para /etc/systemd/system/ ). O serviço executará o programa com a opção -o (que salva apenas os dados de energia mais recentes) e salva dados para /tmp/powerjoular-service.csv . O serviço pode ser ativado para ser executado automaticamente na inicialização.
O serviço Systemd é instalado automaticamente ao instalar o PowerJoular usando os pacotes GNU/Linux fornecidos.
Para citar nosso trabalho em um artigo de pesquisa, cite nosso artigo na 18ª Conferência Internacional sobre Ambientes Inteligentes (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}
}
O PowerJoular é licenciado apenas sob a licença GNU GPL 3 (apenas GPL-3.0).
Copyright (c) 2020-2024, Adel Nounddine, Université de Pau et des Pays de l'Dour. Todos os direitos reservados. Este programa e os materiais que o acompanham são disponibilizados apenas nos termos da licença pública pública geral da GNU v3.0 (GPL-3.0-somente) que acompanha essa distribuição e está disponível em: https://www.gnu.org/license/gpl-3.0.html
Autor: Adel Nouderdine