Beperk het CPU-gebruik van een proces in Linux met CPULimit Tool
In een eerder bericht hebben we CPUTool uitgelegd voor het beperken en controleren van het CPU-gebruik van elk proces in Linux. Hiermee kan een systeembeheerder de uitvoering van een proces (of procesgroep) onderbreken als de CPU/systeembelasting een gedefinieerde drempel overschrijdt. Hier leren we hoe we een soortgelijke tool kunnen gebruiken, genaamd cpulimit.
Cpulimit wordt gebruikt om het CPU-gebruik van een proces op dezelfde manier te beperken als CPUTool, maar biedt meer gebruiksopties vergeleken met zijn tegenhanger. Een belangrijk verschil is dat cpulimit de systeembelasting niet beheert, in tegenstelling tot cputool.
Voorgesteld lezen: 9 nuttige opdrachten om CPU-informatie op Linux te krijgen
Installeer CPULimit om het CPU-gebruik van een proces in Linux te beperken
CPULimit kan worden geïnstalleerd vanuit standaard softwarebronnen van Debian/Ubuntu en zijn afgeleiden met behulp van een pakketbeheertool.
sudo apt install cpulimit
In RHEL/CentOS en Fedora moet je eerst de EPEL-repository inschakelen en vervolgens cpulimit installeren, zoals weergegeven.
# yum installeer epel-release
#yum installeer cpulimit
Process-CPU-gebruik beperken met CUPLimit
In deze subsectie leggen we uit hoe cpulimit werkt. Laten we eerst een opdracht uitvoeren (dezelfde dd-opdracht waar we naar keken bij het behandelen van cputool) die zou moeten resulteren in een hoog CPU-percentage op de achtergrond (merk op dat de proces-PID wordt afgedrukt na het uitvoeren van de opdracht) .
dd if=/dev/zero of=/dev/null &
[1] 17918
Vervolgens kunnen we de top- of blikhulpmiddelen gebruiken die de daadwerkelijke, regelmatig bijgewerkte status van een draaiend Linux-systeem weergeven, om het CPU-gebruik van de bovenstaande opdracht te bekijken.
top
Als we naar de bovenstaande uitvoer kijken, kunnen we zien dat het dd-proces het hoogste percentage CPU-tijd 100,0% gebruikt.
Maar we kunnen dit als volgt beperken met behulp van cputlimit. De optie --pid
of -p
wordt gebruikt om de PID op te geven en --limit
of -l
is gebruikt om een gebruikspercentage voor een proces in te stellen.
De onderstaande opdracht beperkt het dd-commando (PID 17918) tot 50% gebruik van één CPU-kern.
sudo cpulimit --pid 17918 --limit 50
Process 17918 detected
Zodra we cpulimit uitvoeren, kunnen we het huidige CPU-gebruik voor de dd-opdracht bekijken met top- of blikken. Uit de uitvoer blijkt dat de waarde varieert van (51,5%-55,0% of iets daarboven).
We kunnen het CPU-gebruik als volgt voor de tweede keer beperken, deze keer verlagen we het percentage als volgt:
sudo cpulimit --pid 17918 --limit 20
Process 17918 detected
Zoals we eerder deden, kunnen we bovenaan of in een oogopslag het nieuwe CPU-gebruik voor het proces bekijken, dat zal variëren van 20%-25,0% of iets daarboven.
top
Opmerking: De shell wordt niet-interactief – verwacht geen gebruikersinvoer wanneer cpulimit actief is. Om het te beëindigen (wat de beperking van het CPU-gebruik zou moeten stoppen), drukt u op [Ctrl + C]
.
Om cpulimit als achtergrondproces uit te voeren, gebruikt u de schakelaar --background
of -b
, waardoor de terminal vrijkomt.
sudo cpulimit --pid 17918 --limit 20 --background
Om het aantal CPU-kernen op het systeem te specificeren, gebruikt u de vlag --cpu
of -c
(dit wordt normaal gesproken automatisch gedetecteerd).
sudo cpulimit --pid 17918 --limit 20 --cpu 4
In plaats van het CPU-gebruik van een proces te beperken, kunnen we het beëindigen met de optie --kill
of -k
. Het standaardsignaal dat naar het proces wordt verzonden is SIGCONT, maar om een ander signaal te verzenden, gebruikt u de vlag --signal
of -s
.
sudo cpulimit --pid 17918 --limit 20 --kill
Om af te sluiten als er geen geschikt doelproces is, of als het doodgaat, voegt u de -z
of --lazy
op deze manier toe.
sudo cpulimit --pid 17918 --limit 20 --kill --lazy
Voor aanvullende informatie en gebruiksopties kunt u de cpulimit man-pagina bekijken.
man cpulimit
Bekijk de volgende handige handleidingen voor het vinden van CPU-informatie en het monitoren van CPU-/systeemprestaties.
- Vind de best lopende processen op basis van het hoogste geheugen- en CPU-gebruik in Linux
- Cpustat – Bewaakt het CPU-gebruik door processen in Linux uit te voeren
- CoreFreq – Een krachtige CPU-monitoringtool voor Linux-systemen
- Vind de best lopende processen op basis van het hoogste geheugen- en CPU-gebruik in Linux
- 20 opdrachtregelhulpmiddelen om de prestaties van Linux te controleren
- 13 Linux-tools voor prestatiebewaking – Deel 2
Ter vergelijking: na het testen van CPUTool en CPULimit merkten we dat eerstgenoemde een effectievere en betrouwbaardere functionaliteit voor “proces-CPU-gebruiksbeperking” biedt.
Dit komt overeen met het percentage CPU-gebruik dat wordt waargenomen na het uitvoeren van beide tools tegen een bepaald proces. Probeer beide tools uit en voeg uw mening toe aan dit artikel met behulp van het onderstaande feedbackformulier.