مجازی سازیمقالات وب
چگونه به کمک ابزار CPULimit در لینوکس، مصرف CPU فرایندها را محدود کنیم؟

در این مقاله قصد داریم در مورد ابزار cpulimit با هم صحبت کنیم. همانطور که می دانید این ابزار برای محدود کردن مصرف CPU فرآیند مورد استفاده قرار می گیرد. در ادامه این موضوع را مورد بررسی قرار می دهیم. پس همراه وب ایده باشید.
نصب ابزار cpulimit برای محدود کردن مصرف CPU فرآیندها در لینوکس:
ابزار cpulimit را می توان از مخزن پیش فرض نرم افزار در دبیان یا اوبونتو نصب کرد.
$ sudo apt install cpulimit
در RHEL/CentOS و نیز فدورا، باید در ابتدا EPEL repository را فعال کنید و سپس این ابزار را نصب نمایید:
# yum install epel-release
# yum install cpulimit
محدود کردن مصرف CPU فرآیندها به کمک CUPLimit:
در این بخش، نحوه کار با این ابزار را نشان خواهیم داد. اول از هر کاری، اجازه دهید دستوری را اجرا کنیم که منجر به درصد بالای CPU می شود.
$ dd if=/dev/zero of=/dev/null &
[1] 17918
در مرحله بعدی می توانیم از ابزارهای Top یا glances استفاده کنیم تا بتوانیم خروجی وضعیت به روز شده واقعی لینوکس در حال اجرا را مشاهده نماییم و مصرف CPU دستور بالا را مورد بررسی قرار دهیم:
$ top
اگر نگاهی به خروجی بالا بیندازیم، متوجه می شویم که فرآیند dd درصد بالایی از CPUرا مورد استفاده قرار می دهد. اما ما می توانیم این مصرف را به کمک ابزاری که در ابتدای مقاله معرفی کردیم محدود سازیم. گزینه های –pid یا -p برای مشخص کردن PID و –limit یا -l برای تنظیم درصد مصرف یک فرآیند مورد استفاده قرار می گیرد. دستور زیر مصرف CPU دستور dd را به 50 درصد کاهش می دهد.
$ sudo cpulimit –pid 17918 –limit 50
Process 17918 detected
بعد از اینکه cpulimit را اجرا کردیم، می توانیم مصرف فعلی CPU برای دستور dd را به کمک top یا glances مشاهده کنیم. می توانیم برای بار دوم مصرف CPU را به کمک دستور زیر کاهش دهیم:
$ sudo cpulimit –pid 17918 –limit 20
Process 17918 detected
باز هم می توانیم برای مشاهده مصرف cpu جدید این فرآیند از top یا glances استفاده کنیم.
$ top
برای اینکه بتوانید cpulimit را به عنوان فرایند بک گراند اجرا کنید از گزینه های –background یا -b استفاده کنید.
$ sudo cpulimit –pid 17918 –limit 20 –background
برای مشخص کردن تعداد هسته های CPU که بر روی سیستم وجود دارد می توانید از –cpu یا -c استفاده کنید.
$ sudo cpulimit –pid 17918 –limit 20 –cpu 4
به جای اینکه مصرف CPU فرایند را محدود کنیم می توانیم آن را به کمک گزینه های –kill یا -k ببندیم. سیگنال پیش فرضی که برای فرایند ارسال می شود ، SIGCONT است اما می توانید به کمک flag های –signal یا -s سیگنال های متفاوتی ارسال کنید.
$ sudo cpulimit –pid 17918 –limit 20 –kill
اگر هیچ فرآیند هدف مناسبی وجود نداشت می توانید همانند دستور زیر از -z یا –lazy برای خروج استفاده کنید.
$ sudo cpulimit –pid 17918 –limit 20 –kill –lazy
برای دریافت اطلاعات بیشتر و گزینه های مصرف، صفحه man را مشاهده کنید.
$ man cpulimit