
Joularjx는 소스 코드 수준에서 소프트웨어 전원 모니터링을위한 Java 기반 에이전트입니다.
자세한 문서 (사용자 및 참조 안내서 포함)는 https://joular.github.io/joularjx/에서 제공됩니다.
Joularjx를 만들려면 Java 11+와 Maven이 필요합니다.
mvn clean install -DskipTests
또는 명령과 함께 프로젝트와 함께 배송 된 Maven 래퍼를 사용할 수 있습니다.
Linux: ./mvnw clean install -DskipTests
Windows: ./mvnw.cmd clean install -DskipTests
Joularjx는 전원 판독 값을 얻기 위해 다음 소프트웨어 또는 패키지에 따라 다릅니다.
config.properties 에서 경로를 지정하십시오.sudo 액세스로 실행 해야하는 MacOS와 함께 번들로 제공되는 powermetrics 사용합니다. sudoers 파일을 적절히 수정하여 암호를 필요로하지 않고 현재 사용자가 실행 /usr/bin/powermetrics 실행하도록 권한을 부여하는 것이 좋습니다.우리는 또한 ASUS Tinker Board를 지원합니다.
Joularjx는 Java 프로그램의 메인 클래스를 시작할 때 간단히 Java 가상 머신에 연결할 수있는 Java 에이전트입니다.
java -javaagent:joularjx-$version.jar YourProgramMainClass
귀하의 프로그램이 Jar 파일 인 경우 Joularjx를 추가하면서 평소와 같이 실행합니다.
java -javaagent:joularjx-$version.jar -jar yourProgram.jar
Joularjx는 구성 설정 ( config.properties )에 따라 여러 CSV 파일을 생성하며 joularjx-results 폴더에서 이러한 파일을 생성합니다.
생성 된 파일은 다음 폴더 구조에서 사용할 수 있습니다.
filter-method-names 설정에 따라 모니터링 된 응용 프로그램 방법에 대한 전원/에너지 데이터) Joularjx는 config.properties 파일을 수정하여 구성 할 수 있습니다.
filter-method-names : 모니터링 된 방법을 필터링하는 데 사용되는 문자열 목록 (설명은 아래의 생성 파일 참조).save-runtime-data : CSV 파일에서 런타임 메소드 전원 소비를 쓰십시오.overwrite-runtime-data : 런타임 전원 데이터 파일을 덮어 쓰거나 False로 설정된 경우 각 모니터링주기에 대한 새 파일을 작성합니다.logger-level : 터미널에서 Joularjx가 제공 한 정보 수준 (로거 별)을 설정합니다 (허용 값 : OFF, 정보, 경고, 심각).powermonitor-path : Windows 프로그램을위한 Power Monitor의 전체 경로 (Windows의 경우 전용).track-consumption-evolution : 시간에 따른 방법의 소비에 대한 세부 사항이 포함 된 각 방법에 대해 CSV 파일을 생성합니다. 각 소비 값은 UNIX 타임 스탬프에 매핑됩니다.hide-agent-consumption : True로 설정되면 에이전트 스레드의 에너지 소비는보고되지 않습니다.enable-call-trees-consumption : 계산 방법을 트리 에너지 소비를 호출합니다. CSV 파일은 에이전트 실행 종료시 생성되어 각 통화 트리와 관련하여 총 에너지 소비량입니다.save-call-trees-runtime-data : 런타임 통화 트리 CSV 파일로 전력 소비를 쓰십시오. 각 모니터링주기 (1 초)에 대해 콜 트리의 런타임 전력 소비가 포함 된 새로운 CSV 파일이 생성됩니다. 생성 된 파일에는 이름에 타임 스탬프가 포함됩니다.overwrite-call-trees-runtime-data : 런타임 통화 트리 전원 데이터 파일을 덮어 올리거나 false로 설정된 경우 각 모니터링주기에 새 파일을 작성합니다.application-server : 응용 프로그램 서버 및 프레임 워크 (Sprig Boot, Tomcat 등)를 적절히 처리합니다. 애플리케이션 서버에서 실행할 때 true 설정하십시오. False 인 경우 모니터링 루프는 JVM이 파괴되었는지 확인하므로 응용 프로그램이 종료되면 (일반 Java 응용 프로그램에서) Joularjx를 폐쇄합니다. True 인 경우 Application Server에서 JVM이 파괴되지 않으므로 Joularjx는 계속 올바르게 모니터링됩니다.vm-power-path : 가상 머신의 전력 소비 경로. 가상 머신 내에서 VM의 전력 소비가 포함 된 파일 (일반적으로 게스트와 공유되는 호스트의 파일)을 나타냅니다.vm-power-format : 공유 VM 전원 파일의 전력 형식. 우리는 현재 watts (VM의 전력 소비 인 1 개의 플로트 값을 포함하는 파일)와 powerjoular (호스트에서 PowerJoular가 생성 한 CSV 파일, 3 개의 열이 포함 된 Timestamp, VM의 CPU 활용 및 VM의 CPU 전력)의 두 가지 형식을 지원합니다. 원하는 곳에서 JAR 패키지 (및 Windows의 PowerMonitor.exe)를 설치하고 전체 경로가있는 javaagent 에서 호출 할 수 있습니다. 그러나 config.properties Java 명령을 실행하는 곳과 동일한 폴더에 복사해야하거나 해당 위치가 프로그램을 실행할 때 -Djoularjx.config=/path/to/config.properties 속성으로 설정해야합니다.
가상 머신에서는 Joularjx가 두 단계가 필요합니다.
실시간 전원 데이터 또는 프로그램 종료시 총 에너지의 경우 Joularjx는 두 개의 CSV 파일을 생성했습니다.
config.properties 에서 구성 할 수 있음). 이 데이터는 첫 번째 데이터 파일의 하위 집합 일뿐 만 아니라 Joularjx가 정확한 데이터를 제공하기 위해 수행 한 재 계산입니다. 필터링 된 키워드로 시작하는 메소드는 JDK 메소드에 의해 소비되는 전력 또는 에너지가 할당됩니다. 예를 들어, Package1.MethodA 가 java.io.PrintStream.println 호출하여 일부 텍스트를 터미널에 인쇄 한 다음 다음을 계산합니다.
MethodA 와 별도로 println 에 의해 소비되는 전력 또는 에너지. 후자의 전력 소비에는 println 이 소비 한 전력 소비는 포함되지 않습니다.Package1 에서 메소드를 필터링하면 println 의 전력 소비가 MethodA 전력 소비에 추가되며 파일은 Package1 메소드의 전력 또는 에너지 만 제공합니다.우리는 런타임에 실행중인 스레드의 스택 트레이스를 분석하여이를 수행합니다.
Joularjx Reader는 Joularjx 생성 에너지 파일을 처리, 분석 및 시각화하는 GUI입니다. 여기에서 자체 저장소에서 사용할 수 있습니다.
연구 논문에서 우리의 작업을 인용하려면, 지능형 환경에 관한 제 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}
}
Joularjx는 GNU GPL 3 라이센스 만 (GPL-3.0 전용)에 따라 라이센스를 부여합니다.
저작권 (C) 2021-2024, Adel Noureddine, Université de Pau et des는 De l 'Adour를 지불합니다. 모든 권리 보유. 이 프로그램과 함께 제공되는 자료는이 배포와 함께 제공되는 GNU General Public License v3.0 전용 (GPL-3.0 전용)의 조건에 따라 제공되며 https://www.gnu.org/licenses/gpl-3.0.en.html에서 제공됩니다.
저자 : Adel Noureddine