Hvordan prioritere Linux -prosesser med Nice og Renice

Innenfor de forskjellige administrasjonsoppgavene til Linux -operativsystemer er det ideelt å vite i detalj hvordan prosessene fungerer i systemet, siden dette er avgjørende for å fullføre og vite hvordan hver prosess internt oppfyller funksjonen den er utviklet for.

I dag vil Solvetic analysere i detalj hvordan vi skal prioritere prosessene i Linux -distroene våre ved å bruke nice and renice.

Hva er prosessprioriteringer i LinuxDet er viktig før du vet hvor hyggelig og renice fungerer for å forstå litt om hvorfor det å sette en bestemt prioritet i en Linux -prosess, prioriteten til en prosess, brukes til å bestemme hvor lang tid den valgte prosessen vil kunne bruke prosessoren i et intervall. spesifikk tid.

I Linux -miljøer deles prosessorene av flere prosesser (prosessene veksler i bruk av de tilgjengelige prosessorene) som lar brukeren oppfatte at alle applikasjoner eller oppgaver utføres samtidig, derfor ved å definere en prioritet , angir vi for systemet hvilke prosesser som kan gjøre mer bruk av prosessoren og hvilke prosesser som tar en andre plass.

Denne prioriteten kan føre til at noen prosesser ikke blir utført når som helst, siden de flyttes mot slutten av prosesskøen av andre prosesser med høyere prioritet for bruk.

Hvordan Kernel Scheduler fungerer i LinuxEt annet poeng å huske på når du administrerer Linux -systemer, er å kjenne kjernen, som er ansvarlig for oppstart. Den har en programmerer eller planlegger i kjernen, som er en kjerneenhet som bestemmer den mest passende prosessen for alle tilgjengelige kjørbare prosesser, som må utføres i første omgang. Den tildeler deretter prosessortid mellom kjørbare prosesser på systemet.

En kjørbar prosess er en som bare venter på at CPU -tiden skal utføres. Programmereren danner kjernen til multitasking i Linux, og bruker en prioritetsbasert planleggingsalgoritme for å velge fra kjørbare prosesser på systemet. Deretter klassifiserer den prosessene basert på de mest grunnleggende, så vel som CPU -tidskravene til hver av dem.

I Linux er det totalt 140 prioriteringer og to forskjellige prioritetsområder implementert i Linux:

  • Den første er den fine verdien som varierer fra -20 (høyeste prioritetsverdi) til 19 (laveste prioritetsverdi) og standardverdien er 0.
  • Den andre er sanntidsprioritet, som varierer fra 1 til 99 som standard, deretter er 100 til 139 beregnet på brukerplass.

1. Verifisere verdiene til prosesser i Linux


I Linux kan vi kontrollere verdiene til en prosess ved hjelp av verktøy som ps, top eller htop.
Hvis vi bruker ps -parameteren, kan vi utføre følgende:
 ps -eo pid, ppid, ni, komm
Der avslører ikke kolonnen verdien av hver prosess:

FORSTØRRE

Alternativt kan vi bruke topp- eller htop -parameterne der vi kan se mye mer komplette resultater, og automatisk vil vi se kolonnen med de samme verdiene for hver prosess som vises:

topp

FORSTØRRE

htop

FORSTØRRE

MerkHvis vi ikke har htop, kan vi installere det ved å kjøre linjen sudo apt install htop

2. Forskjell mellom PR eller PRI og NI og hvordan man beregner verdiene


Når vi utfører topp- og htop -parametrene, kan vi se PR-, PRI- eller NI -kolonnene, de betyr:

INGENDet er en vennlig verdi, det vil si at det er et brukerromskonsept

PR / PRIDet er den virkelige prioriteten til prosessen, denne informasjonen er gitt av Linux -kjernen

Disse verdiene er basert med følgende i tankene.

 Totalt antall prioriteter = 140 Sanntids prioritetsområde (PR eller PRI): 0 til 99 Prioritetsområde for brukerplass: 100 til 139 NI verdiområde (fin verdi) -20 til 19: PR = 20 + NI PR = 20 + ( -20 til + 19) PR = 20 + -20 til 20 + 19 PR = 0 til 39 som er lik 100 til 139
Hvis vi ser rt -verdien i resultatene som vises, indikerer dette at prosessen utføres under planleggingsprioritet i sanntid.

3. Hvordan kjøre en kommando med en fin verdi på Linux


Nice har ansvaret for å tildele en bestemt prioritet til et program når det kjøres, og ved arv til oppgavene og prosessene som dette programmet kan utløse i systemet. Nice gjelder når vi har et program eller en oppgave som krever mye CPU -bruk, men også som denne prosessen kan ta lang tid å fullføre, der vil det være mulig å konfigurere en høy eller gunstig prioritet ved hjelp av den fine kommandoen.

Syntaksen vi kan bruke er følgende:

 fin -n fin-verdi [kommando argumenter] fin-fin verdi [kommando argumenter] fin --adjustment = fin verdi [kommando argumenter]
Vurder følgende:
  • Hvis ingen verdi er angitt, setter nice en prioritet på 10 som standard
  • En kommando eller et program utført uten standardverdier er satt til en prioritet på null
  • Bare rotbrukeren kan utføre en kommando eller et program med høyere eller høyere prioritet
  • Vanlige brukere kan bare kjøre en kommando eller et program med lav prioritet
For å angi en prioritet, i stedet for å starte et program eller en kommando med standardprioritet, vil det være mulig å starte den med en bestemt prioritet ved å bruke følgende fine kommando:
 sudo hyggelig -n -5 xclock &
Eller vi kan utføre følgende:
 sudo nice --justering = 5 xclock &

FORSTØRRE

Vi kan se at en ny ID blir generert.

4. Endre planleggingsprioriteten for en prosess i Linux


Når du bruker Linux -miljøer, tillater det dynamisk programmering basert på prioriteringer. Derfor, hvis et program allerede kjører, vil det være mulig å endre prioriteten ved hjelp av renice -kommandoen som følger:
 renice -n -12 -p (PID) renice -n -2 -u (applikasjon)
Når vi utfører denne kommandoen, vil vi kunne se den gamle prioriteten og den nye prioriteten.

FORSTØRRE

5. Hvordan sette Nice -standard for en bestemt brukers prosesser


Du kan angi standardverdien for en bestemt bruker eller gruppe i filen /etc/security/limits.conf. Hovedfunksjonen er å definere ressursgrenser for brukere som er tilkoblet via PAM.

Syntaksen for å definere en grense for en bruker er som følger:

 
Alternativt vil det være mulig å opprette en fil i /etc/security/limits.d/ som tar seg av å overstyre konfigurasjonen i hovedfilen, og disse filene leses i alfabetisk rekkefølge.

Hvis vi ønsker å få hjelp av nice eller renice, kan vi utføre følgende:

 mann hyggelig mann renice

FORSTØRRE

Dermed har vi et alternativ for å etablere prioriteringer i henhold til behovene til prosessene, optimalisere bruken av CPU i Linux mye mer og forbedre de administrative oppgavene betydelig.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave