CPUTool - Begrens og kontroller CPU-bruk av enhver prosess i Linux


Et av de kritiske områdene under Linux-ytelsesovervåking må være CPU-bruk og systembelastning. Det er flere Linux-ytelsesovervåkingsverktøy for å holde et øye med hvordan ting utspiller seg på et system.

En rekke av disse verktøyene gir ganske enkelt ut systemtilstanden/statistikken, mens noen få andre gir deg midler til å administrere systemytelsen. Et slikt verktøy kalt CPUTool.

CPUTool er et enkelt, men kraftig kommandolinjeverktøy for å begrense og kontrollere CPU-bruken av enhver prosess til en gitt grense, og tillater avbrudd av prosesskjøring hvis systembelastningen overskrider en definert terskel.

Hvordan fungerer CPUTool?

For å begrense CPU-bruken sender cputool SIGSTOP- og SIGCONT-signalene til prosesser, og dette bestemmes av systembelastningen. Den er avhengig av /proc pseudo-filsystemet for å lese PID-er og deres CPU-bruksmål.

Den kan brukes til å begrense CPU-bruken eller systembelastningen påvirket av en enkelt prosess eller en gruppe prosesser til en gitt grense og/eller suspendere prosesser hvis systembelastningen går over en terskel.

Foreslått lesing: Forstå Linux-belastningsgjennomsnitt og overvåk ytelsen til Linux

Installer CPUTool for å begrense CPU-bruk og belastningsgjennomsnitt

Et CPUT-verktøy er kun tilgjengelig for installasjon på Debian/Ubuntu og dets derivater fra standard systemlager ved bruk av pakkebehandlingsverktøy.

sudo apt install cputool

Begrenser prosess CPU-bruk med CUPTool

La oss nå se på hvordan cputool egentlig fungerer. For å demonstrere alt, vil vi kjøre en dd-kommando som skal resultere i en høy CPU-prosent, i bakgrunnen og vise PID.

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

For å overvåke CPU-bruk kan vi bruke topp- eller blikkverktøyene som lar oss se en sanntids regelmessig oppdatert tilstand for et kjørende Linux-system:

top

Fra utdataene ovenfor kan vi se at dd-kommandoen har den høyeste prosentandelen av CPU-tid 99,7%) Nå kan vi begrense dette ved å bruke cputool som vist nedenfor.

--cpu-limit- eller -c-flagget brukes til å angi en bruksprosent for en prosess eller gruppe av prosesser og -p for å spesifisere en PID. Følgende kommando vil begrense dd-kommandoen (PID 8275) til 50 % bruk av én CPU-kjerne:

cputool --cpu-limit 50 -p 8275 

Etter å ha kjørt cputool, kan vi sjekke den nye CPU-bruken for prosessen (PID 8275) en gang til. Nå bør CPU-bruken for dd-prosessen variere fra (49,0%-52,0%).

top

For ytterligere å begrense dds CPU-bruk til 20 %, kan vi kjøre cputool for andre gang:

cputool --cpu-limit 20 -p 8275 

Sjekk deretter umiddelbart ved å bruke verktøy som topp eller blikk som dette (CPU-bruken for dd bør nå variere fra 19,0 %-22,0 % eller litt over dette):

top

Merk at skallet ikke forventer noen brukerinndata mens cputool kjører; blir derfor ikke reagerer. For å drepe den (dette vil avslutte CPU-bruksbegrensningsoperasjonen), trykk Ctrl + C.

Viktigere, for å spesifisere en prosessgruppe (ett program med flere kjørende forekomster hver med en distinkt PID), for eksempel HTTP-nettserver:

pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

Bruk -P-flagget slik:

cputool --cpu-limit 20 -P 1780

Begrenser systembelastningen med CUPTool

Alternativet -l brukes til å spesifisere maksimal belastning systemet kan gå gjennom for at prosessen eller prosessgruppen skal fortsette å kjøre. Vi kan bruke en brøkverdi (f.eks. 2,5).

Eksemplet nedenfor betyr å kjøre rsync for en lokal sikkerhetskopi bare når systembelastningen ikke overstiger 3.5:

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

For mer informasjon og bruk, se CPUTool-man-siden:

man cputool

Sjekk ut følgende nyttige veiledninger for å finne CPU-informasjon og CPU-ytelsesovervåking:

  1. 9 nyttige kommandoer for å få CPU-informasjon på Linux
  2. Cpustat – Overvåker CPU-bruk ved å kjøre prosesser i Linux
  3. CoreFreq – Et kraftig CPU-overvåkingsverktøy for Linux-systemer
  4. Finn de mest kjørende prosessene etter høyeste minne- og CPU-bruk i Linux

Som konklusjon, CPUTool kommer virkelig godt med for Linux-ytelsesadministrasjon. Del dine tanker om denne artikkelen via tilbakemeldingsskjemaet nedenfor.