CPULimit ടൂൾ ഉപയോഗിച്ച് Linux-ൽ ഒരു പ്രക്രിയയുടെ CPU ഉപയോഗം പരിമിതപ്പെടുത്തുക


മുമ്പത്തെ ഒരു പോസ്റ്റിൽ, Linux-ലെ ഏത് പ്രക്രിയയുടെയും CPU ഉപയോഗം പരിമിതപ്പെടുത്തുന്നതിനും നിയന്ത്രിക്കുന്നതിനുമുള്ള CPUTool ഞങ്ങൾ വിശദീകരിച്ചിട്ടുണ്ട്. സിപിയു/സിസ്റ്റം ലോഡ് നിർവചിക്കപ്പെട്ട പരിധിക്കപ്പുറം പോയാൽ, ഒരു പ്രോസസ് (അല്ലെങ്കിൽ പ്രോസസ് ഗ്രൂപ്പ്) നിർവ്വഹണം തടസ്സപ്പെടുത്താൻ ഇത് സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്ററെ അനുവദിക്കുന്നു. ഇവിടെ, cpulimit എന്ന സമാനമായ ഉപകരണം എങ്ങനെ ഉപയോഗിക്കാമെന്ന് നമ്മൾ പഠിക്കും.

CPUTool പോലെ തന്നെ ഒരു പ്രക്രിയയുടെ CPU ഉപയോഗം നിയന്ത്രിക്കാൻ Cpulimit ഉപയോഗിക്കുന്നു, എന്നിരുന്നാലും, അതിന്റെ എതിരാളിയുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ ഇത് കൂടുതൽ ഉപയോഗ ഓപ്ഷനുകൾ വാഗ്ദാനം ചെയ്യുന്നു. ഒരു പ്രധാന വ്യത്യാസം cputool പോലെയല്ല cpulimit സിസ്റ്റം ലോഡ് കൈകാര്യം ചെയ്യുന്നില്ല എന്നതാണ്.

Linux-ൽ ഒരു പ്രക്രിയയുടെ CPU ഉപയോഗം പരിമിതപ്പെടുത്താൻ CPULimit ഇൻസ്റ്റാൾ ചെയ്യുക

ഒരു പാക്കേജ് മാനേജുമെന്റ് ടൂൾ ഉപയോഗിച്ച് ഡെബിയൻ/ഉബുണ്ടുവിന്റേയും അതിന്റെ ഡെറിവേറ്റീവുകളുടേയും ഡിഫോൾട്ട് സോഫ്uറ്റ്uവെയർ റിപ്പോസിറ്ററികളിൽ നിന്നും ഇൻസ്റ്റാൾ ചെയ്യാൻ CPULimit ലഭ്യമാണ്.

$ sudo apt install cpulimit

RHEL/CentOS, Fedora എന്നിവയിൽ, നിങ്ങൾ ആദ്യം EPEL റിപ്പോസിറ്ററി പ്രവർത്തനക്ഷമമാക്കുകയും തുടർന്ന് കാണിച്ചിരിക്കുന്നതുപോലെ cpulimit ഇൻസ്റ്റാൾ ചെയ്യുകയും വേണം.

# yum ഇൻസ്റ്റാൾ epel-release
# yum cpulimit ഇൻസ്റ്റാൾ ചെയ്യുക

ഈ ഉപവിഭാഗത്തിൽ, cpulimit എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് ഞങ്ങൾ വിശദീകരിക്കും. ആദ്യം, നമുക്ക് ഒരു കമാൻഡ് പ്രവർത്തിപ്പിക്കാം (cputool കവർ ചെയ്യുമ്പോൾ നമ്മൾ നോക്കിയ അതേ dd കമാൻഡ്) അത് പശ്ചാത്തലത്തിൽ ഉയർന്ന CPU ശതമാനത്തിലേക്ക് നയിക്കും (കമാൻഡ് പ്രവർത്തിപ്പിച്ചതിന് ശേഷം പ്രോസസ്സ് PID പ്രിന്റ് ചെയ്യപ്പെടുന്നു എന്നത് ശ്രദ്ധിക്കുക).

$ dd if=/dev/zero of=/dev/null &

[1] 17918

അടുത്തതായി, മുകളിലെ കമാൻഡിന്റെ സിപിയു ഉപയോഗം കാണുന്നതിന്, പ്രവർത്തിക്കുന്ന ലിനക്സ് സിസ്റ്റത്തിന്റെ യഥാർത്ഥ പതിവായി അപ്ഡേറ്റ് ചെയ്യുന്ന അവസ്ഥ ഔട്ട്പുട്ട് ചെയ്യുന്ന ഗ്ലൻസ് ടൂളുകൾ നമുക്ക് ഉപയോഗിക്കാം.

$ top

മുകളിലുള്ള ഔട്ട്uപുട്ട് നോക്കുമ്പോൾ, dd പ്രോസസ്സ് CPU സമയത്തിന്റെ ഏറ്റവും ഉയർന്ന ശതമാനം 100.0% ഉപയോഗിക്കുന്നതായി നമുക്ക് കാണാൻ കഴിയും.

എന്നാൽ cputlimit ഉപയോഗിച്ച് നമുക്ക് ഇത് പരിമിതപ്പെടുത്താം. PID വ്യക്തമാക്കാൻ --pid അല്ലെങ്കിൽ -p ഓപ്ഷൻ ഉപയോഗിക്കുന്നു, കൂടാതെ --limit അല്ലെങ്കിൽ -l ആണ് ഒരു പ്രോസസ്സിനായി ഉപയോഗ ശതമാനം സജ്ജീകരിക്കാൻ ഉപയോഗിക്കുന്നു.

താഴെയുള്ള കമാൻഡ് dd കമാൻഡ് (PID 17918) ഒരു സിപിയു കോറിന്റെ 50% ഉപയോഗമായി പരിമിതപ്പെടുത്തും.

$ sudo cpulimit --pid 17918 --limit 50  

Process 17918 detected

ഒരിക്കൽ നമ്മൾ cpulimit പ്രവർത്തിപ്പിച്ചുകഴിഞ്ഞാൽ, dd കമാൻഡിനായുള്ള നിലവിലെ സിപിയു ഉപയോഗം നമുക്ക് ഒരു നോട്ടത്തിലൂടെ കാണാൻ കഴിയും. ഔട്ട്പുട്ടിൽ നിന്ന്, മൂല്യം (51.5%-55.0% അല്ലെങ്കിൽ അൽപ്പം അപ്പുറം) വരെയാണ്.

നമുക്ക് അതിന്റെ സിപിയു ഉപയോഗം രണ്ടാം തവണയും ഇനിപ്പറയുന്ന രീതിയിൽ ത്രോട്ടിൽ ചെയ്യാം, ഇത്തവണ ശതമാനം ഇനിപ്പറയുന്ന രീതിയിൽ കുറയ്ക്കുന്നു:

$ sudo cpulimit --pid 17918 --limit 20 

Process 17918 detected

ഞങ്ങൾ മുമ്പ് ചെയ്uതതുപോലെ, പ്രോസസ്സിനായുള്ള പുതിയ സിപിയു ഉപയോഗം കാണുന്നതിന് ഞങ്ങൾക്ക് മുകളിലോ കണ്ണുകളോ പ്രവർത്തിപ്പിക്കാം, അത് 20%-25.0% അല്ലെങ്കിൽ ഇതിനപ്പുറമുള്ളതാണ്.

$ top

ശ്രദ്ധിക്കുക: ഷെൽ അൺ-ഇന്ററാക്ടീവ് ആയി മാറുന്നു - cpulimit പ്രവർത്തിക്കുമ്പോൾ ഉപയോക്തൃ ഇൻപുട്ടൊന്നും പ്രതീക്ഷിക്കുന്നില്ല. അതിനെ നശിപ്പിക്കാൻ (സിപിയു ഉപയോഗ പരിമിതി പ്രവർത്തനം നിർത്തണം), [Ctrl + C] അമർത്തുക.

cpulimit ഒരു പശ്ചാത്തല പ്രക്രിയയായി പ്രവർത്തിപ്പിക്കുന്നതിന്, --background അല്ലെങ്കിൽ -b സ്വിച്ച് ഉപയോഗിക്കുക, ടെർമിനൽ സ്വതന്ത്രമാക്കുക.

$ sudo cpulimit --pid 17918 --limit 20 --background

സിസ്റ്റത്തിൽ നിലവിലുള്ള സിപിയു കോറുകളുടെ എണ്ണം വ്യക്തമാക്കുന്നതിന്, --cpu അല്ലെങ്കിൽ -c ഫ്ലാഗ് ഉപയോഗിക്കുക (ഇത് സാധാരണയായി സ്വയമേവ കണ്ടെത്തുന്നതാണ്).

$ sudo cpulimit --pid 17918 --limit 20 --cpu 4

ഒരു പ്രോസസ്സിന്റെ CPU ഉപയോഗം പരിമിതപ്പെടുത്തുന്നതിനു പകരം, --kill അല്ലെങ്കിൽ -k ഓപ്uഷൻ ഉപയോഗിച്ച് നമുക്ക് അതിനെ ഇല്ലാതാക്കാം. SIGCONT എന്ന പ്രക്രിയയിലേക്ക് അയക്കുന്ന സിഗ്നലാണ് സ്ഥിരസ്ഥിതി, എന്നാൽ മറ്റൊരു സിഗ്നൽ അയയ്uക്കുന്നതിന്, --signal അല്ലെങ്കിൽ -s ഫ്ലാഗ് ഉപയോഗിക്കുക.

$ sudo cpulimit --pid 17918 --limit 20 --kill 

അനുയോജ്യമായ ടാർഗെറ്റ് പ്രോസസ്സ് ഇല്ലെങ്കിലോ അല്ലെങ്കിൽ അത് മരിക്കുന്ന സാഹചര്യത്തിലോ പുറത്തുകടക്കാൻ, ഇതുപോലുള്ള -z അല്ലെങ്കിൽ --lazy ഉൾപ്പെടുത്തുക.

$ sudo cpulimit --pid 17918 --limit 20 --kill --lazy

കൂടുതൽ വിവരങ്ങൾക്കും ഉപയോഗ ഓപ്ഷനുകൾക്കും, cpulimit മാൻ പേജ് കാണുക.

$ man cpulimit

സിപിയു വിവരങ്ങളും സിപിയു/സിസ്റ്റം പ്രകടന നിരീക്ഷണവും കണ്ടെത്തുന്നതിന് ഇനിപ്പറയുന്ന ഉപയോഗപ്രദമായ ഗൈഡുകൾ പരിശോധിക്കുക.

  1. ലിനക്സിൽ ഉയർന്ന മെമ്മറിയും സിപിയു ഉപയോഗവും ഉപയോഗിച്ച് മികച്ച റണ്ണിംഗ് പ്രക്രിയകൾ കണ്ടെത്തുക
  2. Cpustat – Linux-ൽ പ്രക്രിയകൾ പ്രവർത്തിപ്പിച്ച് CPU ഉപയോഗം നിരീക്ഷിക്കുന്നു
  3. CoreFreq – Linux സിസ്റ്റങ്ങൾക്കായുള്ള ഒരു ശക്തമായ CPU മോണിറ്ററിംഗ് ടൂൾ
  4. ലിനക്സിൽ ഉയർന്ന മെമ്മറിയും സിപിയു ഉപയോഗവും ഉപയോഗിച്ച് മികച്ച റണ്ണിംഗ് പ്രക്രിയകൾ കണ്ടെത്തുക
  5. Linux പ്രകടനം നിരീക്ഷിക്കുന്നതിനുള്ള 20 കമാൻഡ് ലൈൻ ടൂളുകൾ
  6. 13 ലിനക്സ് പെർഫോമൻസ് മോണിറ്ററിംഗ് ടൂളുകൾ - ഭാഗം 2

താരതമ്യപ്പെടുത്തുമ്പോൾ, CPUTool, CPULimit എന്നിവ പരീക്ഷിച്ചതിന് ശേഷം, മുമ്പത്തേത് കൂടുതൽ ഫലപ്രദവും വിശ്വസനീയവുമായ \പ്രോസസ് CPU ഉപയോഗ പരിമിതി പ്രവർത്തനക്ഷമത വാഗ്ദാനം ചെയ്യുന്നത് ഞങ്ങൾ ശ്രദ്ധിച്ചു.

നൽകിയിരിക്കുന്ന പ്രക്രിയയ്uക്കെതിരെ രണ്ട് ടൂളുകളും പ്രവർത്തിപ്പിച്ചതിന് ശേഷം നിരീക്ഷിച്ച CPU ഉപയോഗത്തിന്റെ ശതമാനം പരിധി അനുസരിച്ചാണിത്. രണ്ട് ഉപകരണങ്ങളും പരീക്ഷിച്ച് താഴെയുള്ള ഫീഡ്uബാക്ക് ഫോം ഉപയോഗിച്ച് ഈ ലേഖനത്തിലേക്ക് നിങ്ങളുടെ ചിന്തകൾ ചേർക്കുക.