Zoeken op website

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.

  1. Vind de best lopende processen op basis van het hoogste geheugen- en CPU-gebruik in Linux
  2. Cpustat – Bewaakt het CPU-gebruik door processen in Linux uit te voeren
  3. CoreFreq – Een krachtige CPU-monitoringtool voor Linux-systemen
  4. Vind de best lopende processen op basis van het hoogste geheugen- en CPU-gebruik in Linux
  5. 20 opdrachtregelhulpmiddelen om de prestaties van Linux te controleren
  6. 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.