CPUTool – Beperk en beheer CPU-gebruik van elk proces in Linux

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

A number of these tools simply output the system state/statistics while a few others provide you means of managing system performance. One such tool called CPUTool.

CPUTool is een eenvoudige maar krachtige opdrachtregeltool voor het beperken en regelen van CPU-gebruik van een willekeurig proces tot een gegeven limiet en het onderbreken van de procesuitvoering toe te staan als de systeembelasting een gedefinieerde drempel overschrijdt.

Hoe Werkt CPUTool?

Om CPU-gebruik te beperken, stuurt cputool de SIGSTOP– en SIGCONT-signalen naar processen en dit wordt bepaald door de systeembelasting. Het vertrouwt op het /proc pseudo-bestandssysteem om PIDs en hun CPU-gebruiksmaatregelen te lezen.

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

Aanbevolen Lezen: Begrijp Linux Laad Gemiddelden en Bewaak Prestaties van Linux

Installeer CPUTool om CPU-gebruik en belastinggemiddelde te beperken

A CPUTool is only available to install on Debian/Ubuntu and its derivatives from the default system repositories using package management tool.

$ sudo apt install cputool

Proces CPU-gebruik beperken met CPUTool

Nu kijken we eens hoe cputool echt werkt. Om alles te demonstreren, zullen we een dd-opdracht uitvoeren die zou moeten resulteren in een hoog CPU-percentage, op de achtergrond, en zijn PID weergeven.

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

Om het CPU-gebruik te controleren, kunnen we de top of glances-tools gebruiken die ons in staat stellen een realtime regelmatig bijgewerkte status van lopende Linux-systeemprocessen te bekijken:

# top
Monitor dd Command CPU Usage

Uit de bovenstaande output kunnen we zien dat de dd-opdracht het hoogste percentage CPU-tijd heeft 99.7%) Nu kunnen we dit beperken met behulp van cputool zoals hieronder getoond.

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

# cputool --cpu-limit 50 -p 8275 

Na het uitvoeren van cputool kunnen we opnieuw het nieuwe CPU-gebruik voor het proces (PID 8275) controleren. Nu zou het CPU-gebruik voor dd proces moeten variëren van (49.0%-52.0%).

# top
Limit Process CPU to 50% Usage

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

# cputool --cpu-limit 20 -p 8275 

Dan onmiddellijk controleren met tools zoals top of glances zoals dit (het CPU-gebruik voor dd zou nu moeten variëren van 19,0%-22,0% of iets daarbuiten):

# top
Limit Process CPU Usage to 20%

Houd er rekening mee dat de shell geen gebruikersinvoer verwacht terwijl cputool wordt uitgevoerd; daarom wordt deze onbereikbaar. Om het te stoppen (dit zal de CPU-gebruiksbeperking beëindigen), druk op Ctrl + C.

Belangrijk is om een procesgroep te specificeren (één programma met verschillende actieve instanties elk met een afzonderlijke PID) bijvoorbeeld een HTTP-webserver:

# pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

Gebruik de -P vlag zoals dit:

# cputool --cpu-limit 20 -P 1780

Beperking van Systeembelasting met CUPTool

De -l optie wordt gebruikt om de maximale belasting te specificeren die het systeem mag ondergaan voor het proces of de procesgroep om door te blijven lopen. We kunnen een fractionele waarde gebruiken (bijv. 2,5).

Het onderstaande voorbeeld betekent dat rsync wordt uitgevoerd voor een lokale back-up alleen wanneer de systeembelasting niet hoger is dan 3,5:

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

Voor meer informatie en gebruik, bekijk de CPUTool man-pagina:

# man cputool

Bekijk de volgende handige gidsen voor het vinden van CPU-info en CPU-prestatiebewaking:

  1. 9 Nuttige commando’s om CPU-informatie te krijgen op Linux
  2. Cpustat – Monitort CPU-gebruik door lopende processen in Linux
  3. CoreFreq – Een krachtige CPU-monitoringtool voor Linux-systemen
  4. Vind top lopende processen op basis van hoogste geheugen- en CPU-gebruik in Linux

Concluderend komt CPUTool echt van pas bij Linux-prestatiebeheer. Deel gerust je gedachten over dit artikel via het feedbackformulier hieronder.

Source:
https://www.tecmint.com/cputool-limit-linux-process-cpu-usage-load/