CPUTool - Begræns og styr CPU-udnyttelse af enhver proces i Linux


Et af de kritiske områder under Linux-overvågningsværktøjer til at holde øje med, hvordan tingene udfolder sig på et system.

Et antal af disse værktøjer udsender simpelthen systemtilstanden/statistikkerne, mens nogle få andre giver dig mulighed for at styre systemets ydeevne. Et sådant værktøj kaldet CPUTool.

CPUTool er et simpelt, men alligevel kraftfuldt kommandolinjeværktøj til at begrænse og kontrollere CPU-udnyttelse af enhver proces til en given grænse og tillader afbrydelse af procesudførelse, hvis systembelastningen overstiger en defineret tærskel.

For at begrænse CPU-brugen sender cputool SIGSTOP- og SIGCONT-signaler til processer, og dette bestemmes af systembelastningen. Det er afhængigt af/proc pseudo-filsystemet til at læse PID'er og deres CPU-forbrugsforanstaltninger.

Det kan bruges til at begrænse CPU-brugen eller systembelastningen påvirket af en enkelt proces eller en gruppe processer til en given grænse og/eller suspendere processer, hvis systembelastningen overskrider en tærskel.

Installer CPUTool for at begrænse CPU-brug og belastningsgennemsnit

En CPUTool er kun tilgængelig til installation på Debian/Ubuntu og dets derivater fra standardsystemlagrene ved hjælp af pakkehåndteringsværktøjet.

$ sudo apt install cputool

Lad os nu se på, hvordan cputool virkelig fungerer. For at demonstrere det hele kører vi en dd-kommando, der skal resultere i en høj CPU-procent i baggrunden og vise dens PID.

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

For at overvåge CPU-brug kan vi bruge blikværktøjerne, der giver os mulighed for at se en regelmæssigt opdateret tilstand i realtid af kørende Linux-systemprocesser:

# top

Fra ovenstående output kan vi se, at dd-kommandoen har den højeste procentdel af CPU-tid 99,7%) Nu kan vi begrænse dette ved hjælp af cputool som vist nedenfor.

--cpu-limit eller -c flag bruges til at indstille en brugsprocent for en proces eller gruppe af processer og -p til at specificere en PID. Den følgende kommando begrænser dd-kommandoen (PID 8275) til 50% brug af en CPU-kerne:

# cputool --cpu-limit 50 -p 8275 

Efter at have kørt cputool kan vi kontrollere den nye CPU-brug til processen (PID 8275) igen. Nu skal CPU-brugen til dd-processen variere fra (49,0% -52,0%).

# top

For yderligere at begrænse dd's CPU-forbrug til 20% kan vi køre cputool for anden gang:

# cputool --cpu-limit 20 -p 8275 

Kontroller derefter straks ved hjælp af værktøjer som blikke som dette (CPU-brugen til dd skal nu variere fra 19,0% -22,0% eller lidt ud over dette):

# top

Bemærk, at skallen ikke forventer nogen brugerinput, mens cputool kører; derfor ikke reagerer. For at dræbe det (dette vil afslutte CPU-begrænsningen), skal du trykke på Ctrl + C .

Det er vigtigt at specificere en procesgruppe (et program med flere kørende forekomster hver med en særskilt PID) for eksempel HTTP-webserver:

# pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

Brug -P -flagget således:

# cputool --cpu-limit 20 -P 1780

Indstillingen -l bruges til at angive den maksimale belastning, som systemet kan gå, selvom processen eller procesgruppen fortsætter med at køre. Vi bruger muligvis en brøkværdi (f.eks. 2,5).

Eksemplet nedenfor betyder kun at køre rsync til en lokal sikkerhedskopi, når systembelastningen ikke overstiger 3,5:

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

For mere information og brug, se CPUTool man-siden:

# man cputool

Tjek følgende nyttige vejledninger til at finde CPU-info og CPU-ydelsesovervågning:

  1. 9 nyttige kommandoer til at få CPU-oplysninger på Linux
  2. Cpustat - Overvåger CPU-udnyttelse ved at køre processer i Linux
  3. CoreFreq - Et kraftfuldt CPU-overvågningsværktøj til Linux-systemer
  4. Find mest kørende processer efter højeste hukommelse og CPU-brug i Linux

Afslutningsvis er CPUTool virkelig praktisk til Linux performance management. Del dine tanker om denne artikel via feedbackformularen nedenfor.