کانال تلگرام منطقه لینوکسی ها
نمایش نتایج: از 1 به 1 از 1

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

  1. #1
    مدیریت کل انجمن
    تاریخ عضویت
    Jun 2013
    محل سکونت
    Tehran
    سن
    33
    نوشته ها
    1,328
    تشکر ها
    767
    69
    میزان امتیاز
    6
    Array

    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 
    top-cputool-command-1-png


    از خروجی بالا میتوانیم مشاهده کنیم که دستور 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 
    top-cputool-command-2-png

    برای محدویت بیشتر میزان مصرف 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 مصرف میکنند


    در پایان باز هم میگوییم که ابزار cputool واقعا برای مدیریت عملکرد لینوکس آسان و پرکاربرد است. نظرات و سوالات خود را در همین پست با ما مطرح کنید.
    ویرایش توسط Habili : 08-05-2017 در ساعت 10:06 PM
    کانال تلگرام : https://telegram.me/linuxzone
    گروه فیس بوک : https://www.facebook.com/groups/linux.zone
    گوگل پلاس : https://plus.google.com/communities/...85817219667474
    گروه لینکدین : https://www.linkedin.com/groups/13521922
    پروفایل تویتر : https://twitter.com/Mohammad_Habili
    پروفایل اینستاگرام : https://www.instagram.com/mohammad_habili

موضوعات مشابه

  1. پاسخ: 0
    آخرين نوشته: 02-21-2017, 11:10 AM
  2. پاسخ: 0
    آخرين نوشته: 02-08-2017, 10:09 AM
  3. پاسخ: 0
    آخرين نوشته: 08-02-2016, 10:12 AM
  4. مانیتور کردن cpu, ram و process در لینوکس با htop
    توسط Server-Sec در انجمن نرم افزارهای مانیتورینگ و مدیریت شبکه لینوکسی
    پاسخ: 7
    آخرين نوشته: 01-11-2016, 03:04 PM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
درباره ما
سایت منطقه لینوکسی ها در سال 1392 با هدف ارائه خدمات نوین در حوزه فناوری اطلاعات و ارتباطات در راستای پیاده سازی ارتباطات صدا، تصویر، دیتا و بالا بردن سطح علمی و عمومی کاربران از طریق انجمن در سطح جهانی راه اندازی شده و با بهره گیری از توان تخصصی و تجارب حرفه ای مدیران و کارشناسان خود، پیشگام بودن در ارائه راه کارهای برتر را آرمان خود قرار داده است. امید است این سایت بتواند زمینه ساز رشد و ترقی جامعه ایرانی در سرتاسر دنیا گردد.
شبکه های اجتماعی
ایمیل مدیر کل
habili@linux-zone.org