سكريبت timeout هو برنامج لمراقبة الموارد المفيد لتحديد الوقت واستهلاك الذاكرة للعمليات في نظام Linux. يتيح لك تشغيل البرامج تحت السيطرة وفرض حدود زمنية وحدود ذاكرة ، وإنهاء البرنامج في حالة انتهاك هذه المعايير.
لا يلزم التثبيت ، فقط قم بتنفيذ أمر مع وسائطه باستخدام برنامج timeout وسيقوم بمراقبة استهلاك الذاكرة والوقت للأمر ، وإنقاطع العملية إذا تجاوزت الحدود ، ويخطرك بالرسالة المحددة مسبقًا.
لتشغيل هذا السكريبت ، يجب أن يكون Perl 5 مثبتًا على نظام Linux الخاص بك ويجب تثبيت نظام /proc filesystem.
للتحقق من الإصدار المثبت لـ Perl على نظام Linux الخاص بك ، قم بتشغيل الأمر التالي.
$ perl -v

بعد ذلك ، استنسخ مستودع timeout إلى نظامك باستخدام أمر git ، ثم انتقل إلى المستودع المحلي باستخدام أمر cd واستدعه كأمر Linux العادي.
$ cd ~/bin $ git clone https://github.com/pshved/timeout.git $ cd timeout
لنلقي الآن نظرة على كيفية عمل سكريبت timeout.
حدود أساسية للذاكرة (100 ميغابايت من الذاكرة الافتراضية):
يوضح هذا المثال الأول كيفية تقييد استخدام الذاكرة لعملية معينة إلى 100 ميغابايت من الذاكرة الافتراضية، باستخدام علامة -m
. والوحدة الافتراضية للذاكرة هي كيلوبايت.
هنا، يعمل أمر stress-ng 4 مشغلين لإجهاد الذاكرة الافتراضية (VMS) تجمع لاستخدام 40٪ من الذاكرة المتاحة لمدة 10 دقائق. وبالتالي يستخدم كل مشغل 10٪ من الذاكرة المتاحة.
$ ./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

بالنظر إلى نتائج أمر timeout أعلاه، تم قضاء عمليات العمال stress-ng بعد فقط 1.16 ثانية. وذلك لأن استهلاك الذاكرة المشترك للـ VMS (438660 كيلوبايت) أكبر من استخدام الذاكرة الافتراضية المسموح به لـ stress-ng والعمليات الفرعية له.
تقييد الوقت الأساسي للعملية:
لتمكين تقييد الوقت للعملية، استخدم علامة -t
كما هو موضح.
$ ./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m

في المثال أعلاه، عندما يتجاوز stress-ng CPU+SYS الوقت المحدد بقيمة 4، يتم قتل العمال العمليات.
تقييد كل من الوقت والذاكرة للعملية
يمكنك أيضًا تقييد كل من الذاكرة والوقت في آن واحد كما يلي.
$ ./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
يدعم timeout أيضًا بعض الخيارات المتقدمة مثل --detect-hangups
، الذي يتيح الكشف عن التعليقات.
$ ./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
يمكنك مراقبة حد الذاكرة (RSS) باستخدام الخيار --memlimit-rss
أو -s
.
$ ./timeout -m 100000 -s stress-ng --vm 4 --vm-bytes 40% -t 10m
بالإضافة إلى ذلك، يمكنك استخدام الخيار --confess
أو -c
لإرجاع رمز الخروج أو الإشارة+128 للعملية كما هو موضح.
$ ./timeout -m 100000 -c stress-ng --vm 4 --vm-bytes 40% -t 10m
للمزيد من المعلومات وأمثلة الاستخدام، راجع مستودع Github لـ timeout: https://github.com/pshved/timeout.
قد تجد أيضًا هذه المقالات ذات الصلة مفيدة بنفس القدر:
- كيفية العثور على أفضل 15 عملية من حيث استخدام الذاكرة باستخدام ‘top’ في الوضع الدفعي
- CPUTool – تقييد والتحكم في استخدام وحدة المعالجة المركزية لأي عملية في نظام التشغيل Linux
- كيفية تحديد استخدام وحدة المعالجة المركزية لعملية في نظام التشغيل Linux باستخدام أداة CPULimit
السيناريو timeout هو برنامج مراقبة موارد بسيط يقيد في الأساس استهلاك الوقت والذاكرة للعمليات في نظام التشغيل Linux. يمكنك إعطائنا ملاحظات حول سيناريو timeout عبر نموذج التعليق أدناه.
Source:
https://www.tecmint.com/limit-time-and-memory-usage-of-linux-process/