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:
- 9 nyttige kommandoer for å få CPU-informasjon på Linux
- Cpustat – Overvåker CPU-bruk ved å kjøre prosesser i Linux
- CoreFreq – Et kraftig CPU-overvåkingsverktøy for Linux-systemer
- 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.