
PowerJoular هو برنامج سطر الأوامر لمراقبة ، في الوقت الحقيقي ، استهلاك الطاقة للبرامج ومكونات الأجهزة.
تتوفر الوثائق التفصيلية (بما في ذلك أدلة المستخدم والمرجعية) على: https://joular.github.io/powerjoular/.
يراقب Powerjoular المنصات التالية:
في جميع المنصات ، يعمل PowerJoular حاليًا فقط على GNU/Linux.
على أجهزة الكمبيوتر/الخوادم ، يستخدم PowerJoular واجهة PowerCap Linux لقراءة استهلاك الطاقة Intel RAPL (متوسط متوسط الطاقة).
يدعم PowerJoular مجال حزمة RAPL (Core ، بما في ذلك الرسومات المتكاملة ، و DRAM) ، وللمعالجات الأكثر حداثة ، نحن ندعم حزمة PSYS (التي تغطي استهلاك الطاقة في SOC بأكملها).
على الأجهزة الافتراضية ، يتطلب PowerJoular خطوتين:
على Raspberry Pi و Asus Tinker Board ، تستخدم Powerjoular نماذج الانحدار التجريبية القائمة على الأبحاث لتقدير استهلاك الطاقة لمعالج ARM.
يتم سرد القائمة المدعومة لنماذج Raspberry Pi و Asus Tinker Board أدناه. نحن ندعم جميع مراجعات كل تشكيلة نموذجية. ومع ذلك ، يتم إنشاء النموذج وتدريبه على مراجعة محددة (مدرجة بين قوسين) ، والدقة هي الأفضل في هذه المراجعة بالذات.
نحن ندعم حاليًا نماذج لوحة Raspberry Pi و Asus Tinker:
تتم كتابة PowerJoular في ADA ويمكن تجميعها بسهولة ، وإضافة ثنائي فريد إلى مسار النظام الخاص بك.
تتوفر البرامج النصية للتثبيت سهلة الاستخدام في مجلد installer . فقط افتح مجلد المثبت وقم بتشغيل الملف المناسب لإنشاء و/أو تثبيت أو إلغاء تثبيت البرنامج وخدمة النظام.
build-install.sh : سيتم إنشاء (باستخدام gprbuild ) وتثبيت البرنامج الثنائي على /usr/bin و systemd service. يتطلب تركيب gnat و gprbuild (انظر التجميع).uninstall.sh : حذف البرنامج الثنائي وخدمة النظام. لاستخدام Powerjoular ، ما عليك سوى تشغيل Command powerjoular . على أجهزة الكمبيوتر/الخوادم ، يستخدم PowerJoular RAPL من Intel من خلال نظام Linux PowerCap Sysfs ، وبالتالي يتطلب الوصول إلى الجذر/sudo على أحدث حبات Linux (5.10 وأحدث): sudo powerjoular .
بشكل افتراضي ، سيعرض البرنامج استهلاك الطاقة في وحدة المعالجة المركزية واستخدامها. كما سيتم عرض الفرق (زيادة أو انخفاض) استهلاك الطاقة من المقياس الأخير.
الخيارات التالية متوفرة:
-h : إظهار رسالة المساعدة-v : رقم الإصدار عرض-p pid : تحدد PID معين لرصد-a appName : تحديد اسم تطبيق معين للمراقبة (سيقوم بمراقبة جميع PIDs للتطبيق)-f filename : حفظ بيانات المراقبة إلى مسار اسم الملف المعطى-o filename : احفظ بيانات المراقبة الأخيرة فقط إلى مسار اسم الملف المحدد (تم الكتابة فوق ملف مع أحدث مقاييس الطاقة فقط)-t : طباعة بيانات الطاقة إلى المحطة-d : طباعة معلومات التصحيح إلى المحطة-l : استخدم نماذج الانحدار الخطي (أقل دقة من النماذج متعددة الحدود الافتراضية) لنماذج طاقة Raspberry PI-m : حدد اسم ملف لاستهلاك الطاقة للجهاز الظاهري-s : حدد تنسيق قوة VM ، إما تنسيق powerjoular (تم إنشاؤه مع خيار -o : 3 أعمدة ملف CSV مع 3rd التي تحتوي على استهلاك الطاقة في VM) ، أو تنسيق watts (عمود واحد يحتوي فقط على استهلاك الطاقة لـ VM) يمكنك مزج الخيارات ، IE ، 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 والاستنساخ الذي لا يشحن مع دعم ADA في مجلس التعاون الخليجي.
لتجميع المشروع ، فقط اكتب gprbuild إذا كنت تستخدم أحدث إصدارات GPRBUILD.
أو ، في الإصدارات القديمة ، قم بإنشاء مجلد /obj أولاً ، ثم اكتب gprbuild powerjoular.gpr .
سيتم إنشاء Powerjoular الثنائي في المجلد obj/ .
بشكل افتراضي ، سيقوم المشروع بربط المكتبات المطلوبة بشكل ثابت ، وبالتالي يمكن نسخ ثنائي PowerJoular إلى أي نظام متوافق ويستخدم كما هو.
للبناء مع الارتباط الديناميكي ، قم بإزالة أو التعليق على المفتاح الثابت في ملف powerjoular.gpr ، ولا سيما هذه السطور:
package Binder is
for Switches ("Ada") use ("-static");
end Binder;
يمكنك أيضًا تجميع PowerJoular مع برنامج التحويل البرمجي GNAT فقط (دون الحاجة إلى GPRBUILD).
مجرد تجميع باستخدام gnatmake. على سبيل المثال ، لتجميع من obj/ Folder (لذلك يتم إنشاء ملفات .O و .Ali هناك) ، اكتب ما يلي:
mkdir -p obj
cd obj
gnatmake ../src/powerjoular.adb
إذا قمت بتثبيت alire ، فيمكنك استخدامه لبناء PowerJoular مع:
alr build
release-version.sh script script cross-compiles powerjoular إلى منصات متعددة (في الوقت الحالي x86_64 و AARCH64 ، ولكن يمكن تعديلها لإضافة منصات أخرى). يقوم البرنامج النصي بعد ذلك بإنشاء حزم التثبيت الثنائية RPM و Deb في هذه المنصات.
يحتاج البرنامج النصي إلى برنامج التحويل البرمجي GNAT AARCH64 ، إلى جانب أدوات تغليف DEB و RPM.
قم بتثبيتها وفقًا لتوزيعك. على سبيل المثال ، في Ubuntu 22.04 x86_64:
sudo apt install gnat gnat-12-aarch64-linux-gnu dpkg rpm
يتم توفير خدمة SystemD ويمكن تثبيتها (عن طريق نسخ powerjoular.service في مجلد systemd إلى /etc/systemd/system/ ). ستقوم الخدمة بتشغيل البرنامج باستخدام خيار -o (الذي يحفظ فقط أحدث بيانات الطاقة) ويحفظ البيانات إلى /tmp/powerjoular-service.csv . يمكن تمكين الخدمة لتشغيلها تلقائيًا على التمهيد.
يتم تثبيت خدمة SystemD تلقائيًا عند تثبيت PowerJoular باستخدام حزم GNU/Linux.
للاستشهاد بعملنا في ورقة بحثية ، يرجى الاستشهاد بالورقة في المؤتمر الدولي الثامن عشر للبيئات الذكية (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 ، 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
المؤلف: عادل نوردين