Begrens CPU-bruk av en prosess i Linux med CPULimit Tool


I et tidligere innlegg har vi forklart CPUTool for å begrense og kontrollere CPU-bruk av enhver prosess i Linux. Det lar en systemadministrator avbryte utførelse av en prosess (eller prosessgruppe) hvis CPU/systembelastningen går utover en definert terskel. Her vil vi lære hvordan du bruker et lignende verktøy kalt cpulimit.

Cpulimit brukes til å begrense CPU-bruken til en prosess på samme måte som CPUTool, men den tilbyr flere bruksalternativer sammenlignet med motparten. En viktig forskjell er at cpulimit ikke administrerer systembelastning i motsetning til cputool.

Foreslått lesing: 9 nyttige kommandoer for å få CPU-informasjon på Linux

Installer CPULimit for å begrense CPU-bruk av en prosess i Linux

CPULimit er tilgjengelig for installasjon fra standardprogramvarelager for Debian/Ubuntu og dets derivater ved hjelp av et pakkebehandlingsverktøy.

sudo apt install cpulimit

I RHEL/CentOS og Fedora, må du først aktivere EPEL-depot og deretter installere cpulimit som vist.

# nam installer epel-release
# nam installer cpulimit

Begrenser prosess CPU-bruk med CULimit

I denne underdelen vil vi forklare hvordan cpulimit fungerer. Først, la oss kjøre en kommando (samme dd-kommando som vi så på mens vi dekket cputool) som skal resultere i en høy CPU-prosent, i bakgrunnen (merk at prosess-PID skrives ut etter å ha kjørt kommandoen) .

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

[1] 17918

Deretter kan vi bruke topp- eller blikkverktøyene som gir ut den faktiske ofte oppdaterte tilstanden til et kjørende Linux-system, for å se CPU-bruken av kommandoen ovenfor.

top

Når vi ser på utdataene ovenfor, kan vi se at dd-prosessen bruker den høyeste prosentandelen av CPU-tid 100,0 %.

Men vi kan begrense dette ved å bruke cputlimit som følger. Alternativet --pid eller -p brukes til å spesifisere PID og --limit eller -l er brukes til å angi en bruksprosent for en prosess.

Kommandoen nedenfor vil begrense dd-kommandoen (PID 17918) til 50 % bruk av én CPU-kjerne.

sudo cpulimit --pid 17918 --limit 50  

Process 17918 detected

Når vi kjører cpulimit, kan vi se gjeldende CPU-bruk for dd-kommandoen med topp eller blikk. Fra utgangen varierer verdien fra (51,5 %-55,0 % eller litt høyere).

Vi kan strupe CPU-bruken for andre gang som følger, denne gangen reduserer prosentandelen ytterligere som følger:

sudo cpulimit --pid 17918 --limit 20 

Process 17918 detected

Som vi gjorde før, kan vi kjøre topp eller blikk for å se den nye CPU-bruken for prosessen, som vil variere fra 20%-25,0% eller litt utover dette.

top

Merk: Skallet blir uinteraktivt – forventer ikke brukerinndata når cpulimit kjører. For å drepe den (noe som skal stoppe CPU-bruksbegrensningsoperasjonen), trykk [Ctrl + C].

For å kjøre cpulimit som en bakgrunnsprosess, bruk --background- eller -b-bryteren, og frigjør terminalen.

sudo cpulimit --pid 17918 --limit 20 --background

For å spesifisere antall CPU-kjerner som finnes på systemet, bruk --cpu- eller -c-flagget (dette oppdages vanligvis automatisk).

sudo cpulimit --pid 17918 --limit 20 --cpu 4

I stedet for å begrense en prosess CPU-bruk, kan vi drepe den med --kill eller -k alternativet. Standard er at signalet som sendes til prosessen er SIGCONT, men for å sende et annet signal, bruk --signal eller -s-flagget.

sudo cpulimit --pid 17918 --limit 20 --kill 

For å avslutte hvis det ikke er noen passende målprosess, eller i tilfelle den dør, ta med -z eller --lazy som dette.

sudo cpulimit --pid 17918 --limit 20 --kill --lazy

For ytterligere informasjon og bruksalternativer, se cpulimit-man-siden.

man cpulimit

Sjekk ut følgende nyttige veiledninger for å finne CPU-informasjon og CPU/systemytelsesovervåking.

  1. Finn de mest kjørende prosessene etter høyeste minne- og CPU-bruk i 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
  5. 20 kommandolinjeverktøy for å overvåke Linux-ytelse
  6. 13 Verktøy for Linux Ytelsesovervåking – Del 2

Til sammenligning, etter å ha testet CPUTool og CPULimit, la vi merke til at førstnevnte tilbyr en mer effektiv og pålitelig "prosess CPU-bruksbegrensning" funksjonalitet.

Dette er i henhold til prosentområdet for CPU-bruk observert etter å ha kjørt begge verktøyene mot en gitt prosess. Prøv ut begge verktøyene og legg tankene dine til denne artikkelen ved å bruke tilbakemeldingsskjemaet nedenfor.