Hur man prioriterar Linux -processer med Nice och Renice

Inom de olika hanteringsuppgif.webpterna för Linux -operativsystem är det idealiskt att i detalj veta hur processerna fungerar i systemet eftersom detta är viktigt för att slutföra och veta hur varje process internt uppfyller den funktion för vilken den har utvecklats.

Idag kommer Solvetic att analysera i detalj hur man prioriterar processerna i våra Linux -distros med trevlig och renice.

Vad är processprioriteringar i LinuxDet är viktigt innan du vet hur trevligt och renice fungerar för att förstå lite om varför inställning av en viss prioritet för en Linux -process, prioritet för en process, används för att bestämma hur lång tid den valda processen kommer att kunna använda processorn i ett intervall. specifik tid.

I Linux -miljöer delas processorerna av flera processer (processerna alternerar i användningen av tillgängliga processorer) vilket gör att användaren kan uppfatta att alla applikationer eller uppgif.webpter utförs samtidigt, därför genom att definiera en prioritet , anger vi för systemet vilka processer som kan utnyttja processorn mer och vilka processer som tar en andra plats.

Denna prioritet kan leda till att vissa processer inte körs när som helst, eftersom de flyttas mot slutet av processkön av andra processer med högre prioritet för användning.

Hur Kernel Scheduler fungerar i LinuxEn annan punkt att tänka på när man hanterar Linux -system är att känna till kärnan, som ansvarar för uppstart. Den har en programmerare eller schemaläggare i sin kärna, som är en kärnenhet som bestämmer den mest lämpliga processen för alla tillgängliga körbara processer, som måste köras i första hand. Den fördelar sedan processortiden mellan körbara processer på systemet.

En körbar process är en process som bara väntar på att CPU -tiden ska köras. Programmeraren bildar kärnan för multitasking i Linux och använder en prioritetsbaserad schemaläggningsalgoritm för att välja bland körbara processer på systemet. Sedan klassificerar det processerna baserat på de mest grundläggande, såväl som CPU -tidskraven för var och en av dem.

I Linux finns totalt 140 prioriteringar och två olika prioritetsområden implementerade i Linux:

  • Det första är det fina värdet som sträcker sig från -20 (högsta prioritetsvärde) till 19 (lägsta prioritetsvärde) och standardvärdet är 0.
  • Den andra är realtidsprioriteten, som sträcker sig från 1 till 99 som standard, då är 100 till 139 avsedda för användarutrymme.

1. Verifiera värdena för processer i Linux


I Linux kan vi kontrollera värdena för en process med hjälp av verktyg som ps, top eller htop.
Om vi ​​använder ps -parametern kan vi utföra följande:
 ps -eo pid, ppid, ni, comm
Där avslöjar inte kolumnen värdet av varje process:

FÖRSTORA

Alternativt kan vi använda de översta eller högsta parametrarna där vi kan se mycket mer fullständiga resultat och automatiskt kommer vi att se kolumnen med samma värden för varje visad process:

topp

FÖRSTORA

htop

FÖRSTORA

NoteraOm vi ​​inte har htop kan vi installera det genom att köra raden sudo apt install htop

2. Skillnad mellan PR eller PRI och NI och hur man beräknar deras värden


När vi kör topp- och htop -parametrarna kan vi se kolumnerna PR, PRI eller NI, de betyder:

VARKENDet är ett vänligt värde, det vill säga det är ett användarutrymmeskoncept

PR / PRIDet är processens verkliga prioritet, denna information tillhandahålls av Linux -kärnan

Dessa värden är baserade med följande i åtanke.

 Totalt antal prioriteringar = 140 Realtidsprioritetsområde (PR eller PRI): 0 till 99 Användarutrymmesprioritetsområde: 100 till 139 NI -värdeintervall (Nice Value) -20 till 19: PR = 20 + NI PR = 20 + ( -20 till + 19) PR = 20 + -20 till 20 + 19 PR = 0 till 39 vilket är lika med 100 till 139
Om vi ​​ser rt -värdet i de visade resultaten, indikerar detta att processen utförs under schemaläggningsprioritet i realtid.

3. Hur man kör ett kommando med ett trevligt värde på Linux


Nice ansvarar för att tilldela ett specifikt prioritet till ett program när det körs och genom arv till de uppgif.webpter och processer som detta program kan utlösa inom systemet. Nice gäller när vi har ett program eller en uppgif.webpt som kräver mycket CPU -användning, men också som denna process kan ta lång tid att slutföra, där kommer det att vara möjligt att konfigurera en hög eller gynnsam prioritet med det fina kommandot.

Syntaxen som vi kan använda är följande:

 nice -n nice-value [kommandoargument] nice-nice-value [kommandoargument] nice --adjustment = nice-value [kommandoargument]
Tänk på följande:
  • Om inget värde anges kommer nice att prioritera 10 som standard
  • Ett kommando eller program som körs utan standardvärden har en prioritet på noll
  • Endast rotanvändaren kan köra ett kommando eller program med högre eller högre prioritet
  • Normala användare kan bara köra ett kommando eller program med låg prioritet
För att ställa in en prioritet, istället för att starta ett program eller kommando med standardprioritet, kommer det att vara möjligt att starta det med en specifik prioritet med följande fina kommando:
 sudo nice -n -5 xclock &
Eller så kan vi utföra följande:
 sudo nice --justering = 5 xclock &

FÖRSTORA

Vi kan se att ett nytt ID genereras.

4. Ändra schemaläggningsprioriteten för en process i Linux


När du använder Linux -miljöer tillåter det dynamisk programmering baserat på prioriteringar, så om ett program redan körs kommer det att vara möjligt att ändra sin prioritet med hjälp av kommandot renice enligt följande:
 renice -n -12 -p (PID) renice -n -2 -u (applikation)
När vi utför detta kommando kommer vi att kunna se den gamla prioriteten och den nya prioriteten.

FÖRSTORA

5. Hur man ställer in Nice standard för en viss användares processer


Du kan ange standardvärdet för en specifik användare eller grupp i filen /etc/security/limits.conf. Dess huvudsakliga funktion är att definiera resursgränser för användare som är anslutna via PAM.

Syntaxen för att definiera en gräns för en användare är följande:

 
Alternativt blir det möjligt att skapa en fil i /etc/security/limits.d/ som tar hand om att åsidosätta konfigurationen i huvudfilen och dessa filer läses i alfabetisk ordning.

Om vi ​​vill få hjälp av nice eller renice kan vi utföra följande:

 man trevlig man renice

FÖRSTORA

Således har vi till hands en möjlighet att fastställa prioriteringar enligt processernas behov, optimera mycket mer användningen av CPU: n i Linux och avsevärt förbättra de administrativa uppgif.webpterna.

wave wave wave wave wave