Limitați utilizarea CPU a unui proces în Linux cu CPULimit Tool
Într-o postare anterioară, am explicat CPUTool pentru limitarea și controlul utilizării CPU a oricărui proces în Linux. Permite unui administrator de sistem să întrerupă execuția unui proces (sau a unui grup de procese) dacă încărcarea CPU/sistemului depășește un prag definit. Aici, vom învăța cum să folosim un instrument similar numit cpulimit.
Cpulimit este folosit pentru a restricționa utilizarea CPU a unui proces în același mod ca și CPUTool, cu toate acestea, oferă mai multe opțiuni de utilizare în comparație cu omologul său. O diferență importantă este că cpulimit nu gestionează încărcarea sistemului, spre deosebire de cputool.
Lectură sugerată: 9 comenzi utile pentru a obține informații despre CPU pe Linux
Instalați CPULimit pentru a limita utilizarea CPU a unui proces în Linux
CPULimit este disponibil pentru a fi instalat din depozitele software implicite ale Debian/Ubuntu și derivatele sale folosind un instrument de gestionare a pachetelor.
sudo apt install cpulimit
În RHEL/CentOS și Fedora, trebuie să activați mai întâi depozitul EPEL și apoi să instalați cpulimit așa cum se arată.
# yum install epel-release
# yum instalează cpulimit
Limitarea procesului de utilizare a procesorului cu CUPLimit
În această subsecțiune, vom explica cum funcționează cpulimit. Mai întâi, să rulăm o comandă (aceeași comandă dd la care ne-am uitat în timp ce acoperim cputool) care ar trebui să aibă ca rezultat un procent mare de CPU, în fundal (rețineți că PID-ul procesului este tipărit după rularea comenzii) .
dd if=/dev/zero of=/dev/null &
[1] 17918
În continuare, putem folosi instrumentele de sus sau priviri care scot starea actuală actualizată frecvent a unui sistem Linux care rulează, pentru a urmări utilizarea CPU a comenzii de mai sus.
top
Privind rezultatul de mai sus, putem vedea că procesul dd utilizează cel mai mare procent din timpul procesorului 100,0%.
Dar putem limita acest lucru folosind cputlimit după cum urmează. Opțiunea --pid
sau -p
este utilizată pentru a specifica PID-ul și --limit
sau -l
este folosit pentru a seta un procent de utilizare pentru un proces.
Comanda de mai jos va limita comanda dd (PID 17918) la 50% utilizarea unui nucleu CPU.
sudo cpulimit --pid 17918 --limit 50
Process 17918 detected
Odată ce rulăm cpulimit, putem vedea utilizarea curentă a procesorului pentru comanda dd cu partea de sus sau cu privire. Din rezultat, valoarea variază între (51,5%-55,0% sau puțin peste).
Putem reduce utilizarea procesorului pentru a doua oară, după cum urmează, de data aceasta scăzând procentul în continuare, după cum urmează:
sudo cpulimit --pid 17918 --limit 20
Process 17918 detected
Așa cum am făcut și înainte, putem rula top sau priviri pentru a vedea noua utilizare a procesorului pentru proces, care va varia de la 20%-25,0% sau puțin peste aceasta.
top
Notă: shell-ul devine neinteractiv – nu se așteaptă nicio intrare de utilizator atunci când cpulimit rulează. Pentru a o opri (ceea ce ar trebui să oprească operațiunea de limitare a utilizării CPU), apăsați [Ctrl + C]
.
Pentru a rula cpulimit ca proces de fundal, utilizați comutatorul --background
sau -b
, eliberând terminalul.
sudo cpulimit --pid 17918 --limit 20 --background
Pentru a specifica numărul de nuclee CPU prezente pe sistem, utilizați marcajul --cpu
sau -c
(de obicei, acesta este detectat automat).
sudo cpulimit --pid 17918 --limit 20 --cpu 4
În loc să limităm utilizarea procesorului unui proces, îl putem opri cu opțiunea --kill
sau -k
. Semnalul implicit trimis procesului este SIGCONT, dar pentru a trimite un semnal diferit, utilizați marcajul --signal
sau -s
.
sudo cpulimit --pid 17918 --limit 20 --kill
Pentru a ieși dacă nu există un proces țintă adecvat sau în cazul în care acesta moare, includeți -z
sau --lazy
astfel.
sudo cpulimit --pid 17918 --limit 20 --kill --lazy
Pentru informații suplimentare și opțiuni de utilizare, consultați pagina de manual cpulimit.
man cpulimit
Consultați următoarele ghiduri utile pentru a găsi informații despre CPU și monitorizarea performanței CPU/sistemului.
- Găsiți procesele de top în funcție de cea mai mare utilizare a memoriei și procesorului în Linux
- Cpustat – Monitorizează utilizarea CPU prin rularea proceselor în Linux
- CoreFreq – Un instrument puternic de monitorizare a procesorului pentru sistemele Linux
- Găsiți procesele de top în funcție de cea mai mare utilizare a memoriei și procesorului în Linux
- 20 de instrumente de linie de comandă pentru a monitoriza performanța Linux
- 13 Instrumente de monitorizare a performanței Linux – Partea 2
În comparație, după testarea CPUTool și CPULimit, am observat că primul oferă o funcționalitate mai eficientă și mai fiabilă de „limitare a utilizării procesorului de proces”.
Aceasta este în funcție de intervalul procentual de utilizare a procesorului observat după rularea ambelor instrumente pe un anumit proces. Încercați ambele instrumente și adăugați-vă gândurile la acest articol folosind formularul de feedback de mai jos.