اطلاعیه

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

CPUTool ابزاری برای کنترل و محدود کردن میزان مصرف CPU به واسطه هر Process در لینوکس

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

    CPUTool ابزاری برای کنترل و محدود کردن میزان مصرف CPU به واسطه هر Process در لینوکس

    یکی از بخش های حساس در مانیتورینگ عملکرد لینوکس، باید cpu usage و system load باشد. ابزارهای مختلفی برای مانیتور کارایی/عملکرد لینوکس وجود دارد که با استفاده از آنها می توان همواره روی چیزهایی که به یکباره در سیستمتان آشکار میشوند، چشم دوخت.

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

    CPUTool یک ابزار کامندی قدرتمند برای کنترل و محدود کردن میزان مصرف cpu برای هر پروسس میباشد و همچنین امکان توقف process در صورتی که load سیستم از یک آستانه مشخصی بالاتر رود را ممکن میسازد.



    CPUTool چگونه کار میکند ؟

    ابزار cputool به منظور محدود کردن میزان مصرف cpu، سیگنالهای SIGSTOP و SIGCONT به پروسس ها ارسال میکند و این مورد از طریق لود سیستم مشخص است. این ابزار برای خواندن PID ها و اندازه های میزان مصرف cpu آنها بر /proc pseudo-filesystem تکیه میکند.

    این ابزار ممکن است برای محدود کردن میزان مصرف cpu به یک میزان مشخص استفاده شود یا load سیستم که ممکن است به واسطه یک process مجزا یا گروهی از پروسس ها باشند و در صورتی که load فراتر از یک مقدار مشخص باشد پروسس ها را suspend کند.



    نصب CPUTool برای محدود کردن میزان مصرف CPU و میانگین Load سیستم

    امکان نصب ابزار cputool تنها روی دبیان/اوبونتو و مشتقات آن موجود میباشد. و از ریپازیتوری های پیش فرض سیستم و با استفاده از ابزار مدیریت پکیج apt میتوان آنرا نصب کرد.
    کد PHP:
    sudo apt install cputool 


    محدود کردن میزان استفاده CPU در Process ها با استفاده از CPUTool

    اکنون به نحوه کار کردن cputool میپردازیم. برای مشخص کردن کامل آن ما دستور dd را که منجر به بالا رفتن درصد cpu میشود را در بک گراند اجرا میکنیم و PID آنرا پیدا میکنیم.
    کد PHP:
    # dd if=/dev/zero of=/dev/null & 
    برای مانیتور کردن میزان مصرف cpu ما میتوانیم از دستورات top یا glances استفاده کنیم که به ما امکان نمایش وضعیت در لحظه (RealTime) و آپدیت شده ی (وضعیتی که به صورت منظم آپدیت میشود) پروسس های در حال اجرای یک سیستم لینوکس را میدهد.
    کد PHP:
    # top 
    Click image for larger version  Name:	top-cputool-command-1.PNG Views:	1 Size:	10.7 KB ID:	21896


    از خروجی بالا میتوانیم مشاهده کنیم که دستور dd بالاترین درصد cputime (میزان 99.7%) را به خود اختصاص داده و اکنون ما میتوانیم این میزان را با استفاده از cputool همانند تصویر زیر محدود کنیم.

    آپشن های --cpu-limit یا -c برای تعریف یک میزان درصدی برای process یا گروهی از process ها و -p برای مشخص کردن یک pid مورد استفاده قرار میگیرد. دستور زیر کامند dd را (با pid 8275) به مصرف 50 % از یک core cpu محدود خواهد کرد.
    کد PHP:
    # cputool --cpu-limit 50 -p 27118 
    بعد از اجرای cputool ما میتوانیم میزان جدید مصرف cpu برای پروسس (با pid 8275) را یکبار دیگر چک کنیم. اکنون میزان مصرف cpu برای پروسس dd باید در رنج 49 %تا 59 % باشد.
    کد PHP:
    # top 
    Click image for larger version  Name:	top-cputool-command-2.PNG Views:	1 Size:	10.7 KB ID:	21897

    برای محدویت بیشتر میزان مصرف cpu در dd (محدودیت تا 20 %) ما میتوانیم دستور cputool را یکبار دیگر و همانند زیر اجرا کنیم.
    کد PHP:
    # cputool --cpu-limit 20 -p 27118 
    سپس بلافاصله میتوانیم نتیجه را با استفاده از ابزاری همانند top یا glances مانند زیر بررسی کنیم. اکنون میزان مصرف cpu برای dd باید در رنج 19 تا 22 درصد باشد.
    کد PHP:
    # top 
    توجه کنید زمانیکه cputool در حال اجراست shell هیچ گونه ورودی را از کاربر قبول نمیکند، بنابراین شل در این مواقع هیچ تسکی را نمیتواند انجام دهد. برای kill کردن ان Ctrl + c را فشار دهید. (عملیات محدودیت میزان مصرف cpu را خاتمه خواهد داد)

    برای مشخص کردن یک گروه از process (یک برنامه با چندین برنامه جانبی در حال اجرا که هرکدام با PID های مجزا کار میکنند) برای مثال وب سرور http :
    کد PHP:
    # pidof apache2
    9592 3643 3642 3641 3640 3638 3637 1780 
    کافیست از آپشن -P همانند زیر استفاده کنید.
    کد PHP:
    # cputool --cpu-limit 20 -P 1780 


    محدود کردن Load سیستم با استفاده از CPUTool

    آپشن -l برای مشخص کردن میزان حداکثر load که ممکن است سیستم برای ادامه اجرای پروسس یا گروه پروسس به آن حد برسد مورد استفاده قرار میگیرد. ما ممکن است یک مقدار کسری (اعشاری) مثلا 2.5 را استفاده کنیم.

    مثال زیر به معنای اجرای دستور rsync برای یک بک آپ گیری local تنها زمانیکه لود سیستم بالاتر از 3.5 نرود، میباشد.
    کد PHP:
    # cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/ 
    برای اطلاعات بیشتر، صفحه man دستور cputool را مطالعه بفرمایید.
    کد PHP:
    # man cputool 

    همچنین پیشنهاد میشود راهنماهای مفید زیر را برای پیدا کردن اطلاعات cpu و همچنین مانیتورینگ عملکرد cpu بررسی کنید.

    9 دستور مورد استفاده برای گرفتن اطلاعات CPU در لینوکس (به زودی)

    Cpustat - مانیتور کردن استفاده CPU به وسیله اجرا کردن Process ها در لینوکس (به زودی)

    CoreFreq - یک ابزار مانیتورینگ قدرتمند CPU برای سیستم های لینوکسی (به زودی)


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

    دستور top در لینوکس به همراه 12 مثال عملی


    در پایان باز هم میگوییم که ابزار cputool واقعا برای مدیریت عملکرد لینوکس آسان و پرکاربرد است. نظرات و سوالات خود را در همین پست با ما مطرح کنید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-09-2021, 11:31 AM.

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

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

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