Sådan prioriteres Linux -processer med Nice og Renice

Inden for de forskellige styringsopgaver for Linux -operativsystemer er det ideelt at vide detaljeret, hvordan processerne fungerer i systemet, da det er vigtigt at fuldføre og vide, hvordan hver proces internt opfylder den funktion, den er udviklet til.

I dag vil Solvetic analysere detaljeret, hvordan man prioriterer processerne i vores Linux -distros ved hjælp af nice og renice.

Hvad er procesprioriteter i LinuxDet er vigtigt, før man ved, hvor flot og renice fungerer for at forstå lidt om, hvorfor indstilling af en bestemt prioritet i en Linux -proces, prioriteten af ​​en proces, bruges til at bestemme den tid, den valgte proces vil kunne bruge processoren i et interval. specifik tid.

I Linux -miljøer deles processorer af flere processer (processerne veksler i brugen af ​​de tilgængelige processor (er)), som gør det muligt for brugeren at opfatte, at alle applikationer eller opgaver udføres på samme tid, derfor ved at definere en prioritet , angiver vi for systemet, hvilke processer der kan gøre mere brug af processoren, og hvilke processer der indtager en anden plads.

Denne prioritet kan føre til, at nogle processer ikke udføres på noget tidspunkt, da de flyttes mod slutningen af ​​proceskøen af ​​andre processer med en højere prioritet for brug.

Hvordan Kernel Scheduler fungerer i LinuxEt andet punkt at huske på, når man administrerer Linux -systemer, er at kende kernen, som er ansvarlig for opstart. Den har en programmerer eller planlægger i sin kerne, som er en kerneenhed, der bestemmer den mest passende proces af alle tilgængelige eksekverbare processer, som skal udføres i første omgang. Det tildeler derefter processortid mellem eksekverbare processer på systemet.

En eksekverbar proces er en proces, der kun venter på, at CPU -tiden skal udføres. Programmereren danner kernen i multitasking i Linux og gør brug af en prioritetsbaseret planlægningsalgoritme til at vælge fra eksekverbare processer på systemet. Derefter klassificerer det processerne baseret på de mest grundlæggende, såvel som CPU -tidskravene for hver af dem.

I Linux er der i alt 140 prioriteter og to forskellige prioritetsområder implementeret i Linux:

  • Den første er den fine værdi, der spænder fra -20 (højeste prioritetsværdi) til 19 (laveste prioritetsværdi), og standardværdien er 0.
  • Den anden er prioriteten i realtid, som som standard varierer fra 1 til 99, derefter er 100 til 139 bestemt til brugerplads.

1. Verificering af værdierne for processer i Linux


I Linux kan vi kontrollere værdierne for en proces ved hjælp af hjælpeprogrammer som ps, top eller htop.
Hvis vi bruger ps -parameteren, kan vi udføre følgende:
 ps -eo pid, ppid, ni, komm
Der afslører kolonnen ikke værdien af ​​hver proces:

FORSTØRRE

Alternativt kan vi gøre brug af top- eller htop -parametrene, hvor vi kan se meget mere komplette resultater, og automatisk vil vi se kolonnen med de samme værdier for hver vist proces:

top

FORSTØRRE

htop

FORSTØRRE

BemærkI tilfælde af ikke at have htop kan vi installere det ved at udføre linjen sudo apt install htop

2. Forskel mellem PR eller PRI og NI og hvordan man beregner deres værdier


Når vi udfører top- og htop -parametrene, kan vi se PR-, PRI- eller NI -kolonnerne, de betyder:

INGEN AF DEMDet er en venlig værdi, det vil sige, at det er et brugerrumskoncept

PR / PRIDet er processens reelle prioritet, disse oplysninger leveres af Linux -kernen

Disse værdier er baseret på følgende i tankerne.

 Samlet antal prioriteter = 140 Realtids prioritetsområde (PR eller PRI): 0 til 99 Brugerrums prioritetsområde: 100 til 139 NI -værdiområde (Nice -værdi) -20 til 19: PR = 20 + NI PR = 20 + ( -20 til + 19) PR = 20 + -20 til 20 + 19 PR = 0 til 39, hvilket er lig med 100 til 139
Hvis vi i de viste resultater ser rt -værdien, angiver dette, at processen udføres under planlægningsprioritet i realtid.

3. Sådan køres en kommando med en Nice -værdi på Linux


Nice er ansvarlig for at tildele en bestemt prioritet til et program, når det udføres, og ved arv til de opgaver og processer, som dette program kan udløse i systemet. Nice gælder, når vi har et program eller en opgave, der kræver meget CPU -brug, men også at denne proces kan tage lang tid at gennemføre, der vil det være muligt at konfigurere en høj eller gunstig prioritet ved hjælp af den flotte kommando.

Den syntaks, vi kan bruge, er følgende:

 nice -n nice-value [kommando argumenter] nice-nice-value [kommando argumenter] nice --adjustment = nice-værdi [kommando argumenter]
Overvej følgende:
  • Hvis der ikke er angivet nogen værdi, angiver nice som standard en prioritet på 10
  • En kommando eller et program, der udføres uden standardværdier, er sat til en prioritet på nul
  • Kun rodbrugeren kan udføre en kommando eller et program med højere eller højere prioritet
  • Normale brugere kan kun køre en kommando eller et program med lav prioritet
For at angive en prioritet, i stedet for at starte et program eller en kommando med standardprioriteten, vil det være muligt at starte det med en bestemt prioritet ved hjælp af følgende flotte kommando:
 sudo nice -n -5 xclock &
Eller vi kan udføre følgende:
 sudo nice --justering = 5 xclock &

FORSTØRRE

Vi kan se, at der genereres et nyt id.

4. Skift planlægningsprioritet for en proces i Linux


Når du bruger Linux -miljøer, tillader det dynamisk programmering baseret på prioriteter, så hvis et program allerede kører, vil det være muligt at ændre dets prioritet ved hjælp af kommandoen renice som følger:
 renice -n -12 -p (PID) renice -n -2 -u (applikation)
Når vi udfører denne kommando, vil vi kunne se den gamle prioritet og den nye prioritet.

FORSTØRRE

5. Sådan indstilles Nice som standard for en bestemt brugers processer


Du kan angive standardværdien for en bestemt bruger eller gruppe i filen /etc/security/limits.conf. Dets hovedfunktion er at definere ressourcegrænser for brugere, der er forbundet via PAM.

Syntaksen til at definere en grænse for en bruger er som følger:

 
Alternativt vil det være muligt at oprette en fil i /etc/security/limits.d/, der sørger for at tilsidesætte konfigurationen i hovedfilen, og disse filer læses i alfabetisk rækkefølge.

Hvis vi ønsker at få hjælp fra nice eller renice, kan vi udføre følgende:

 mand dejlig mand renice

FORSTØRRE

Således har vi en mulighed for at fastlægge prioriteter i henhold til processernes behov, optimere meget mere brugen af ​​CPU'en i Linux og forbedre de administrative opgaver betydeligt.

wave wave wave wave wave