denet, a lightweight command-line tool for process monitoring in benchmarking and beyond
Carrillo, Mallona
Summary: denet is a lightweight process monitoring utility providing real-time resource profiling of running processes. denet reports CPU, memory, disk I/O, network activity, and thread usage, including recursive child monitoring, with adaptive sampling rates. It offers both a command-line interface (CLI) with colorized outputs and a Python API for inclusion in other software. Its output formats are structured as either JSON, JSONL, or CSV, and include performance metrics as well as process metadata, including PID and the executed command. The easy to parse profiling results make denet suitable for benchmarking, debugging, monitoring, and optimizing data-intensive pipelines in bioinformatics and other fields.
Availability and implementation: denet is open-source software released under the GPLv3 license and maintained at https://github.com/btraven00/denet. It is implemented in Rust, with Python bindings provided via maturin, and can be installed from Cargo (cargo install denet) or PyPI (pip install denet). Most functionality does not require administrative privileges, enabling use on cloud platforms, HPC clusters, and standard Linux workstations. Certain advanced features, such as eBPF support, may require elevated permissions. Documentation, including usage examples and API references, is provided.
academic
denet، أداة خفيفة الوزن لمراقبة العمليات في المقارنة المعيارية وما بعدها
denet هي أداة مراقبة عمليات خفيفة الوزن توفر تحليل موارد فوري للعمليات قيد التشغيل. تتمكن الأداة من الإبلاغ عن استخدام المعالج والذاكرة وإدخال/إخراج القرص والنشاط الشبكي واستخدام الخيوط، بما في ذلك مراقبة العمليات الفرعية العودية ومعدل أخذ العينات التكيفي. توفر واجهة سطر أوامر (CLI) بمخرجات ملونة وواجهة برمجية Python للتكامل مع البرامج الأخرى. تدعم صيغ المخرجات JSON و JSONL و CSV وغيرها من الصيغ المنظمة، مع تضمين مقاييس الأداء وبيانات تعريف العملية. تجعل نتائج التحليل سهلة التحليل denet مناسبة بشكل خاص للمقارنة المعيارية والتصحيح والمراقبة وتحسين خطوط أنابيب البيانات الكثيفة في المعلوماتية الحيوية والمجالات الأخرى.
أثناء تطوير أدوات المعلوماتية الحيوية وتحسين الأداء، هناك حاجة إلى بيانات تحليل موارد دقيقة الحبيبات (استخدام المعالج والذاكرة وإدخال/إخراج القرص والشبكة) لتوجيه التحسينات على عدة مستويات: تحسين الكود وضبط معاملات التنفيذ وتصميم سير العمل الشامل.
محللات المستوى النظامي (مثل top و htop) تفتقر إلى الخصوصية المتعلقة بالعملية، مما يجعل من الصعب عزل بصمة الموارد للوظائف الفردية
أدوات ملخص العملية (مثل time) تقدم فقط الإجماليات المتراكمة عند الانتهاء، مما يفقد الديناميكيات الفورية التي عادة ما تشير إلى الاختناقات
المخرجات غير المنظمة: تم تصميم مخرجات النصوص من الأدوات الموجودة للاستخدام التفاعلي، وليست مناسبة للتحليل الآلي
صعوبة التكامل مع أنظمة سير العمل: أنظمة سير العمل الرئيسية (make و snakemake و nextflow) توفر تحليل موارد إما غير موجود أو خشن الحبيبات وغير قابل للتخصيص
تطوير مجموعة أدوات مراقبة جديدة يمكن استخدامها بشكل تفاعلي في سطر الأوامر وأيضاً يمكن دمجها في البرامج النصية ومديري سير العمل، لتلبية احتياجات خطوط أنابيب المعلوماتية الحيوية الحديثة والمقارنة المعيارية.
المهمة الأساسية لـ denet هي توفير مراقبة موارد عملية فورية ومنظمة، مع إدخال العملية أو الأمر المراد مراقبته، والمخرجات عبارة عن تقرير منظم يحتوي على مقاييس أداء مفصلة وبيانات تعريف.
# مراقبة العملية في الوقت الفعلي
denet run sleep 5
# إنشاء تقرير بصيغة JSON
denet --json run sleep 5 > metrics.json
# تعديل فترة أخذ العينات
denet --interval 500 run sleep 5
# وضع أخذ العينات التكيفي
denet --max-interval 2000 run sleep 5
# مراقبة عملية موجودة
denet attach 1234
# مراقبة محدودة بالوقت
denet --duration 10 attach 1234
نجحت denet في سد الفجوة في أدوات مراقبة العمليات الموجودة، خاصة في احتياجات التطبيقات في مجال المعلوماتية الحيوية. يجعل أخذ العينات التكيفي ودعم eBPF وتصميم الواجهة المزدوجة لها مزايا واضحة بين الأدوات المماثلة.
تستشهد الورقة البحثية بأعمال مهمة في المجالات ذات الصلة، بما في ذلك:
الأدبيات المتعلقة بأدوات أداء eBPF
أبحاث وقت تشغيل eBPF لنواة Linux
تطبيقات eBPF في الأنظمة الصناعية واسعة النطاق
المشاريع مفتوحة المصدر ذات الصلة (BCC و bpftrace و psutil وغيرها)
التقييم الشامل: هذه ورقة بحثية عملية جداً حول الأدوات، وتحل أداة denet احتياجات فعلية لمراقبة العمليات في مجال المعلوماتية الحيوية بشكل جيد. على الرغم من أن الابتكار النظري محدود نسبياً، فإن آلية أخذ العينات التكيفية والتكامل الشامل للوظائف لها قيمة عملية مهمة. طبيعة الأداة مفتوحة المصدر والتوثيق الشامل يجعلان من المحتمل أن تحظى بتطبيق واسع في المجالات ذات الصلة.