
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 .powermetrics ، وهي أداة مزودة بماكوسات التي تتطلب تشغيلها مع وصول sudo . يوصى بإذن المستخدمين الحاليين بتشغيل /usr/bin/powermetrics دون الحاجة إلى كلمة مرور عن طريق إجراء التعديل المناسب إلى ملف sudoers .نحن ندعم أيضا Asus Tinker Board (ق).
Joularjx هو وكيل Java حيث يمكنك ببساطة ربطه بجهاز Java الظاهري عند بدء الفصل الرئيسي لبرنامج Java:
java -javaagent:joularjx-$version.jar YourProgramMainClass
إذا كان برنامجك عبارة عن ملف جرة ، فما عليك سوى تشغيله كالمعتاد أثناء إضافة joularjx:
java -javaagent:joularjx-$version.jar -jar yourProgram.jar
ستقوم Joularjx بإنشاء ملفات CSV متعددة وفقًا لإعدادات التكوين (في config.properties ) ، وسيقوم بإنشاء هذه الملفات في مجلد 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 : مسار كامل إلى برنامج Power Monitor for Windows (فقط لنظام التشغيل Windows).track-consumption-evolution : قم بإنشاء ملفات CSV لكل طريقة تحتوي على تفاصيل لاستهلاك الطريقة على مدار الوقت. يتم تعيين كل قيمة استهلاك إلى طابع زمني UNIX.hide-agent-consumption : إذا تم ضبطه على True ، فلن يتم الإبلاغ عن استهلاك الطاقة لخيوط الوكيل.enable-call-trees-consumption : حساب طرق استدعاء الأشجار استهلاك الطاقة. سيتم إنشاء ملف CSV في نهاية تنفيذ الوكيل ، مع ربط كل شجرة استدعاء ، فهو إجمالي استهلاك الطاقة.save-call-trees-runtime-data : اكتب استهلاك الطاقة في وقت التشغيل في ملف CSV. لكل دورة مراقبة (ثانية واحدة) ، سيتم إنشاء ملف CSV جديد ، يحتوي على استهلاك طاقة وقت التشغيل لأشجار المكالمات. ستتضمن الملفات التي تم إنشاؤها الطابع الزمني في أسمائها.overwrite-call-trees-runtime-data : كتابة ملفات الطاقة في وقت التشغيل ، أو إذا تم ضبطها على خطأ ، فسيقوم بكتابة ملف جديد لكل دورة مراقبة.application-server : يتعامل مع خوادم وأطر التطبيق بشكل صحيح (Sprig Boot ، Tomcat ، إلخ). اضبط true عند التشغيل على خوادم التطبيق. إذا كان خطأ ، فستتحقق حلقة المراقبة ما إذا كان JVM قد تم تدميره ، وبالتالي إغلاق Joularjx عندما ينتهي التطبيق (في تطبيق Java العادي). إذا كان هذا صحيحًا ، فستستمر Joularjx في المراقبة بشكل صحيح حيث لم يتم تدمير JVM في خادم التطبيق.vm-power-path : مسار استهلاك الطاقة للجهاز الظاهري. داخل جهاز افتراضي ، أشر إلى الملف الذي يحتوي على استهلاك الطاقة لـ VM (والذي عادةً ما يكون ملفًا في المضيف يتم مشاركته مع الضيف).vm-power-format : تنسيق الطاقة لملف الطاقة المشترك المشترك. نحن ندعم حاليًا تنسيقين: watts (ملف يحتوي على قيمة عائمة واحدة وهو استهلاك الطاقة لـ VM) ، و powerjoular (ملف CSV الذي تم إنشاؤه بواسطة Powerjoular في المضيف ، يحتوي على 3 أعمدة: Timestamp ، استخدام وحدة المعالجة المركزية لقوة VM و CPU لـ VM). يمكنك تثبيت حزمة JAR (و PowerMonitor.exe على Windows) أينما تريد ، والاتصال بها في javaagent مع المسار الكامل. ومع ذلك ، يجب نسخ config.properties إما إلى نفس المجلد كما يمكنك تشغيل الأمر Java أو يجب تعيين موقعه باستخدام خاصية -Djoularjx.config=/path/to/config.properties عند تشغيل البرنامج.
في الأجهزة الافتراضية ، يتطلب Joularjx خطوتين:
بالنسبة لبيانات الطاقة في الوقت الفعلي أو إجمالي الطاقة في مخرج البرنامج ، قام Joularjx بإنشاء ملفين CSV:
config.properties ). هذه البيانات ليست مجرد مجموعة فرعية من ملف البيانات الأول ، بل يتم إعادة حسابها بواسطة Joularjx لتوفير بيانات دقيقة: الأساليب التي تبدأ بالكلمة الرئيسية المصفاة ، سيتم تخصيص الطاقة أو الطاقة التي تستهلكها أساليب JDK التي تستدعيها. على سبيل المثال ، إذا استدعاء Package1.MethodA java.io.PrintStream.println لطباعة بعض النصوص إلى محطة ، ثم نحسب:
println بشكل منفصل عن MethodA . لن يتضمن استهلاك الطاقة الأخير أولئك الذين يستهلكونه println .Package1 ، فسيتم إضافة استهلاك الطاقة لـ println إلى استهلاك MethodA ، وسيوفر الملف فقط الطاقة أو الطاقة لطرق Package1 .تمكنا من القيام بذلك عن طريق تحليل stacktrace لجميع مؤشرات الترابط الجارية في وقت التشغيل.
قارئ Joularjx هو واجهة المستخدم الرسومية لمعالجة وتحليل وتصور ملفات الطاقة التي أنشأتها Joularjx. وهي متوفرة في مستودعها الخاص هنا.
للاستشهاد بعملنا في ورقة بحثية ، يرجى الاستشهاد بالورقة في المؤتمر الدولي الثامن عشر للبيئات الذكية (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 Pays de L'Adour. جميع الحقوق محفوظة. يتم توفير هذا البرنامج والمواد المصاحبة بموجب شروط رخصة GNU العامة V3.0 فقط (GPL-3.0-Only) التي ترافق هذا التوزيع ، وهي متوفرة على: https://www.gnu.org/licenses/gpl-3.0.en.html
المؤلف: عادل نوردين