Zoeken op website

CPUTool - Beperk en controleer het CPU-gebruik van elk proces in Linux


Een van de kritieke gebieden onder Linux-prestatiemonitoring moet het CPU-gebruik en de systeembelasting zijn. Er zijn verschillende Linux-tools voor prestatiemonitoring om in de gaten te houden hoe de zaken zich op een systeem ontvouwen.

Een aantal van deze tools geven eenvoudigweg de systeemstatus/statistieken weer, terwijl een paar andere u middelen bieden om de systeemprestaties te beheren. Eén zo'n tool heet CPUTool.

CPUTool is een eenvoudige maar krachtige opdrachtregeltool voor het beperken en controleren van het CPU-gebruik van elk proces tot een bepaalde limiet en maakt het mogelijk de procesuitvoering te onderbreken als de systeembelasting een gedefinieerde drempel overschrijdt.

Hoe werkt CPUTool?

Om het CPU-gebruik te beperken, stuurt cputool de signalen SIGSTOP en SIGCONT naar processen en dit wordt bepaald door de systeembelasting. Het is afhankelijk van het /proc pseudo-bestandssysteem om PID's en hun CPU-gebruiksmetingen te lezen.

Het kan worden gebruikt om het CPU-gebruik of de systeembelasting, beïnvloed door een enkel proces of een groep processen, tot een bepaalde limiet te beperken en/of processen op te schorten als de systeembelasting een bepaalde drempel overschrijdt.

Voorgesteld lezen: Begrijp de Linux-belastingsgemiddelden en controleer de prestaties van Linux

Installeer CPUTool om het CPU-gebruik te beperken en het gemiddelde te laden

Een CPUTool kan alleen worden geïnstalleerd op Debian/Ubuntu en zijn afgeleiden vanuit de standaardsysteemopslagplaatsen met behulp van de pakketbeheertool.

sudo apt install cputool

Process-CPU-gebruik beperken met CUPTool

Laten we nu eens kijken hoe cputool echt werkt. Om het allemaal te demonstreren, zullen we een dd-commando uitvoeren, wat zou moeten resulteren in een hoog CPU-percentage op de achtergrond en de PID ervan zou moeten weergeven.

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

Om het CPU-gebruik te monitoren, kunnen we de top- of blikhulpmiddelen gebruiken waarmee we in realtime een regelmatig bijgewerkte status van actieve Linux-systeemprocessen kunnen bekijken:

top

Uit de bovenstaande uitvoer kunnen we zien dat dd-opdracht het hoogste percentage CPU-tijd heeft 99,7%). Nu kunnen we dit beperken met behulp van cputool, zoals hieronder wordt weergegeven.

De vlag --cpu-limit of -c wordt gebruikt om een gebruikspercentage in te stellen voor een proces of een groep processen en -p om op te geven een PID. De volgende opdracht beperkt de opdracht dd (PID 8275) tot 50% gebruik van één CPU-kern:

cputool --cpu-limit 50 -p 8275 

Nadat we cputool hebben uitgevoerd, kunnen we het nieuwe CPU-gebruik voor het proces (PID 8275) nogmaals controleren. Nu zou het CPU-gebruik voor het dd-proces moeten variëren van (49,0%-52,0%).

top

Om het CPU-gebruik van dd verder te beperken tot 20%, kunnen we cputool een tweede keer uitvoeren:

cputool --cpu-limit 20 -p 8275 

Controleer dan onmiddellijk met behulp van tools zoals top of blikken zoals deze (het CPU-gebruik voor dd zou nu moeten variëren van 19,0%-22,0% of iets daarboven):

top

Merk op dat de shell geen gebruikersinvoer verwacht terwijl cputool actief is; reageert daarom niet meer. Om het te beëindigen (hierdoor wordt de beperking van het CPU-gebruik beëindigd), drukt u op Ctrl + C.

Belangrijk is het specificeren van een procesgroep (één programma met meerdere actieve instances, elk met een aparte PID), bijvoorbeeld een HTTP-webserver:

pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

Gebruik de vlag -P als volgt:

cputool --cpu-limit 20 -P 1780

Systeembelasting beperken met CUPTool

De optie -l wordt gebruikt om de maximale belasting op te geven die het systeem mag ondergaan voordat het proces of de procesgroep blijft draaien. We kunnen een fractionele waarde gebruiken (bijvoorbeeld 2,5).

Het onderstaande voorbeeld betekent dat u rsync alleen voor een lokale back-up uitvoert als de systeembelasting 3,5 niet overschrijdt:

cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/

Voor meer informatie en gebruik, bekijk de CPUTool-manpagina:

man cputool

Bekijk de volgende handige handleidingen voor het vinden van CPU-informatie en het monitoren van CPU-prestaties:

  1. 9 Handige opdrachten om CPU-informatie op Linux te krijgen
  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

Kortom, CPUTool komt echt van pas voor Linux-prestatiebeheer. Deel uw mening over dit artikel via het onderstaande feedbackformulier.