اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

نحوه محدود کردن میزان استفاده مموری و مدت زمان پروسس ها در لینوکس

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    نحوه محدود کردن میزان استفاده مموری و مدت زمان پروسس ها در لینوکس

    اسکریپت timeout یک برنامه مفید برای مانیتورینگ منابع است که به منظور محدود کردن مدت زمان و میزان مصرف مموری در processes های لینوکسی مورد استفاده قرار میگیرد. این ابزار به شما این امکان را میدهد که برنامه ها را تحت کنترل خود اجرا کنید، همچنین محدودیت های زمانی و مموری اعمال کنید و برنامه ها را با توجه به ظرفیت های این پارامترها ببندید.

    هیچ نصبی نیاز نیست، به سادگی کافیست یک دستور به همراه آپشن های آن با استفاده از برنامه timeout اجرا کنید و سپس خواهید دید که زمان و مموری مصرفی دستور مانیتور خواهد شد و در صورتی که از حد مجاز فراتر رود پروسس خاتمه میابد و با پیام از پیش تعریف شده به شما اعلام میکند.

    برای اجرای این اسکریپت شما باید Perl 5 روی سیستم عامل لینوکس تان نصب باشد و فایل سیستم /proc مانت باشد.

    برای بررسی ورژن نصب شده پرل روی سیستم عامل لینوکس تان، دستور زیر را اجرا کنید.
    کد HTML:
    $ perl -v
    محدود کردن استفاده از مموری در لینوکس




    سپس، با استفاده از دستور git ریپازیتوری timeout را روی سیستم تان کپی کنید، سپس با استفاده از دستور cd به ریپازیتوری لوکال وارد شوید و آنرا همانند یک دستور لینوکسی معمولی فراخوانی کنید.
    کد HTML:
    $ cd ~/bin
    $ git clone https://github.com/pshved/timeout.git
    $ cd timeout
    اکنون به نحوه کارکرد اسکریپت timeout میپردازیم.



    محدودیت مموری (100M از ویرچوال مموری)

    در این مثال به شما نحوه محدود کردن میزان استفاده مموری توسط یک پروسس به 100M از ویرچوال مموری را نمایش خواهیم داد. برای این منظور از آپشن -m استفاده میکنیم. واحد پیش فرض مموری kilobytes است.

    در اینجا دستور stress-ng چهار عامل استرس زا برای ویرچوال مموری (VMS) را اجرا میکند که روی هم باعث استفاده 40% از مموری آزاد به مدت 10 دقیقه میشود. در نتیجه هر عامل استرس زا 10% از مموری آزاد را استفاده میکند.
    کد HTML:
    $ ./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m


    با بررسی خروجی دستور timeout بالا، مشخص است که پروسه های در حال کار stress-ng تنها بعد از 1.16 ثانیه خاتمه میابند و این به این دلیل است که میزان مصرف کل مموری برای VMS (معادل 438660 kilobytes) بیشتر از حد مجاز میزان استفاده از ویرچوال مموری توسط stress-ng و پروسس های زیرمجموعه (child) آن است.



    محدودیت زمان یک پروسه :

    برای فعال کردن محدودیت زمان یک پروسه از آپشن -t همانند زیر استفاده میکنیم.
    کد HTML:
    $ ./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m


    در مثال بالا،‌ هنگامیکه مدت زمان stress-ng CPU+SYS فراتر از حد از پیش تعریف شده (مقدار 4) میرود پروسس های در حال کار kill میشوند.



    محدودیت مموری و زمان با هم در یک پروسه

    همچنین شما میتوانید هر دو فاکتور مموری و زمان را در یک لحظه همانند زیر محدود کنید.
    کد HTML:
    $ ./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
    همچنین اسکریپت timeout از یکسری گزینه های پیشرفته مانند --detect-hangups پشتیبانی میکند که شناسایی hangup را ممکن میسازد.
    کد HTML:
    $ ./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m
    شما میتوانید محدودیت مموری RSS (معادل resident set size)‌ را با استفاده از آپشن --memlimit-rss یا -s مانیتور کنید.
    کد HTML:
    $ ./timeout -m 100000 -s  stress-ng --vm 4 --vm-bytes 40% -t 10m
    علاوه بر این برای بازگردانده شدن exit code یا signal+128 در یک پروسه از آپشن --confess یا -c همانند زیر استفاده کنید.
    کد HTML:
    $ ./timeout -m 100000 -c  stress-ng --vm 4 --vm-bytes 40% -t 10m
    برای اطلاعات بیشتر و مثالهای کاربردی،‌ از ریپازیتوری Github دستور timeout بازدید فرمایید: https://github.com/pshved/timeout


    همچنین توصیه میشود مطالعه کنید :

    پیدا کردن Process های در حال اجرا که CPU و RAM زیادی در Linux مصرف میکنند

    دستور top در Batch Mode برای پیدا کردن 15 پروسسی (Process) که بیشترین Memory Usage را دارند


    اسکرپیت timeout یک برنامه ساده برای مانیتورینگ منابع میباشد که مصرف زمان و مموری در پروسه های لینوکسی را محدود میکند. نظرات خود را درباره اسکریپت timeout میتوانید در اینجا با ما به اشتراک بگذارید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-07-2021, 04:05 PM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X