Hur man Ställer Process Prioriteringar Med fina och renice på Linux

0
389

Den fina och renice-kommandon som gör att du kan finjustera hur kärnan behandlar dina processer genom att justera sina prioriteringar. Läs den här guiden för att lära dig hur man använder dem i Linux och Unix-liknande operativsystem såsom macOS.

Det är Allt en Fråga om Process

Inuti din Linux-eller Unix-dator, kommer det att finnas många processer som körs innan du ens starta den applikation som du vill använda. Majoriteten av dessa processer är viktiga faktorer för Linux i sig eller stödja processer för ditt grafisk skrivbordsmiljö. Det är mycket som händer bakom kulisserna. Naturligtvis, det finns bara så många systemresurser och CPU-tid för att gå runt. Linux-kärnan är den registeransvarige för alla dessa processer.

Det är kärnan som har att besluta vilka processer få uppmärksamhet och resurser just nu, och vilka som måste vänta. Kärnan är ständigt jonglering processer och prioriteringar för att säkerställa att datorn går så smidigt som det kan och att alla processer få sin beskärda andel. Vissa processer få förmånsbehandling. De är så viktiga för den allmänna driften av datorn för att deras behov måste komma i första hand före, säg, din webbläsare.

Nice Värdet

Ett av de kriterier som används för att bestämma hur kärnan behandlar en process är nice värdet. Varje process har en nice värdet. Nice värdet är ett heltal i intervallet -19 20. Alla standard processer som inleddes med en trevlig värdet noll.

Tricket här är att ju högre nice värdet, ju trevligare din process är att den andra processer. Med andra ord, en hög nice värdet talar om för kärnan att denna process är glad att vänta. Ett negativt tal är motsatsen till att vara trevlig. Ju större negativ nice-värde, desto mer självisk processen. Det är att försöka få så mycket CPU-tid som kan det, utan hänsyn till andra processer.

Vi kan använda de fina kommando för att ställa in nice värdet när en process startas och vi kan använda renice att justera nice värdet av en process som körs.

Nice-Kommandot

Vi kan använda de fina kommando för att justera nice värdet för ett program som vi kommer att lansera den. Detta ger oss möjlighet att öka eller minska prioritet ges till den process av kärnan, i förhållande till andra processer.

Låt oss anta att en programmerare har skrivit ett program som heter ackermann . Detta beräknar Ackerman funktioner. Det är CPU och minne intensiv. Programmeraren kan starta programmet med följande kommando:

./ackermann

Vi kan använda upp kommandot för att visa program som körs.

topp

Vi kan se information om de ackermann program i toppen. Nice värdet är siffran i “NI kolumn”. Det satt till noll som vi förväntar oss.

Låt oss starta om den och denna gång göra det mindre krävande. Vi kommer att skapa en trevlig värde av 15 för ackermann program enligt följande. Typ nice, en plats, -15, en annan plats, och sedan namnet på det program du vill starta. I vårt exempel, våra fiktiva programmerare använder ./ackermann.

trevlig -15 ./ackermann

Ta noga märke till, “-15” är inte negativ femton. Det är positivt femton. “-” Krävs att berätta trevligt vi passerar i en parameter. För att ange ett negativt tal du måste skriva två “-” tecken.

Om vi nu startar upp igen, vi kan se en förändring i beteendet hos ackermann.

topp

Med en fin värde av 15, ackermann är inte konsumerar mest CPU-tid. GNOME och Rhythmbox är både använda mer. Har vi höll ackermann i lite.

Låt oss nu göra det omvända och ge ackermann en negativ nice värdet. Observera användningen av två “-” tecken. Att göra en ansökan mer själviska och mindre bra, måste du använda sudo. Vem som helst kan göra sin ansökan mer nice, men endast superanvändare kan göra en mer självisk.

sudo trevlig –10 ./ackermann

Låt oss gå upp och se vilken skillnad det har gjort.

topp

Den här gången ackermann har en fin värde -10. Det är tillbaka på den översta raden och konsumerar mer CPU-tid än innan.

Den renice-Kommandot

Den renice kommando låter oss anpassa nice värdet av en process som körs. Vi behöver inte stoppa det och vitalisera det med nice. Vi kan ställa in ett nytt värde on-the-fly.

Den renice kommando tar process-ID eller PID för den process som en kommandoraden som en parameter. Vi kan antingen extrakt process-ID från “PID” – kolumnen i toppen , eller så kan vi använda ps och grep för att hitta det för oss som följer. Naturligtvis, du kommer att skriv namnet på din användaren i stället för dave och namnet på den process som du är intresserad av istället för att ackermann.

ps -eu: s dave | grep ackermann

Nu har vi PID vi kan använda den här med renice. Vi kommer att ställa ackermann tillbaka till en trevligare beteende med en fin värde av fem. För att ändra nice värdet för en löpande process som du måste använda sudo. Observera att det inte finns någon “-” på 5 parameter. Du behöver inte en för positiva tal och du behöver bara en, inte två, för negativa tal.

sudo renice -n 5 2339

Vi får bekräftelse på att renice har förändrats nice värdet. Det visar oss att det gamla värdet och det nya värdet.

Kärnan oftast gör ett bra jobb med att hantera prioriteringar och dela ut CPU-tid och system resurser. Men om du har en lång, CPU-intensiva uppdrag att köra och du bryr dig inte när den slutsatsen, att det kommer att göra att din dator går lite smidigare om du anger en högre nice värdet för denna uppgift. Det kommer att bli trevligare för alla.