Cum să acordați prioritate proceselor Linux cu Nice și Renice

În cadrul diferitelor sarcini de gestionare ale sistemelor de operare Linux, este ideal să cunoașteți în detaliu modul în care procesele funcționează în cadrul sistemului, deoarece acest lucru este esențial pentru a finaliza și a ști cum, intern, fiecare proces îndeplinește funcția pentru care a fost dezvoltat.

Astăzi Solvetic va analiza în detaliu cum să prioritizeze procesele distribuțiilor noastre Linux folosind frumos și renice.

Care sunt prioritățile de proces în LinuxEste important, înainte de a ști cât de frumos și renice funcționează, să înțelegeți puțin de ce setarea unei anumite priorități a unui proces Linux, prioritatea unui proces, este utilizată pentru a determina cantitatea de timp în care procesul selectat va putea utiliza procesorul într-un interval.timp specific.

În mediile Linux, procesoarele sunt partajate de mai multe procese (procesele alternează în utilizarea procesorului (procesorelor) disponibile) care permite utilizatorului să perceapă că toate aplicațiile sau sarcinile sunt executate în același timp, prin urmare, definind o prioritate , indicăm sistemului ce procese pot utiliza mai mult procesorul și care procese ocupă locul al doilea.

Această prioritate poate duce la execuția unor procese în orice moment, deoarece acestea sunt mutate spre sfârșitul cozii de proces de către alte procese cu o prioritate mai mare de utilizare.

Cum funcționează Kernel Scheduler în LinuxUn alt punct de reținut atunci când gestionați sistemele Linux este cunoașterea nucleului, care se ocupă de boot. Are un programator sau un programator în nucleul său, care este o unitate de nucleu care determină cel mai potrivit proces dintre toate procesele executabile disponibile, care trebuie executate în primă instanță. Apoi alocă timpul procesorului între procesele executabile de pe sistem.

Un proces executabil este unul care așteaptă doar ca timpul procesorului să fie executat. Programatorul formează nucleul multitasking-ului în Linux, folosind un algoritm de planificare bazat pe priorități pentru a selecta dintre procesele executabile pe sistem. Apoi clasifică procesele pe baza celor mai fundamentale, precum și cerințele de timp ale procesorului pentru fiecare dintre ele.

În Linux există un total de 140 de priorități și două game de priorități diferite implementate în Linux:

  • Prima este valoarea frumoasă care variază de la -20 (cea mai mare prioritate) la 19 (cea mai mică prioritate) și valoarea implicită este 0.
  • A doua este prioritatea în timp real, care variază de la 1 la 99 în mod implicit, apoi 100 la 139 sunt destinate spațiului utilizatorului.

1. Verificarea valorilor proceselor în Linux


În Linux putem verifica valorile unui proces folosind utilitare precum ps, top sau htop.
Dacă folosim parametrul ps putem executa următoarele:
 ps -eo pid, ppid, ni, comm
Acolo coloana nu dezvăluie valoarea fiecărui proces:

MARI

Alternativ, putem folosi parametrii top sau htop, unde putem vedea rezultate mult mai complete și automat vom vedea coloana cu aceleași valori pentru fiecare proces afișat:

top

MARI

htop

MARI

NotăÎn cazul în care nu avem htop îl putem instala executând linia sudo apt install htop

2. Diferența dintre PR sau PRI și NI și modul de calculare a valorilor acestora


Când executăm parametrii de sus și htop, putem vedea coloanele PR, PRI sau NI, înseamnă:

NICIEste o valoare prietenoasă, adică este un concept de spațiu pentru utilizator

PR / PRIEste adevărata prioritate a procesului, aceste informații sunt furnizate de kernel-ul Linux

Aceste valori se bazează pe următoarele.

 Numărul total de priorități = 140 Interval de prioritate în timp real (PR sau PRI): 0 până la 99 Interval de prioritate în spațiul utilizatorului: 100 până la 139 Interval de valori NI (Valoare frumoasă) -20 până la 19: PR = 20 + NI PR = 20 + ( -20 la + 19) PR = 20 + -20 la 20 + 19 PR = 0 la 39, care este egal cu 100 la 139
Dacă în rezultatele afișate vedem valoarea rt, acest lucru indică faptul că procesul este executat sub prioritate de planificare în timp real.

3. Cum se execută o comandă cu o valoare Nisa pe Linux


Nice este însărcinat cu atribuirea unei priorități specifice unui program atunci când este executat și prin moștenire a sarcinilor și proceselor pe care acest program le poate declanșa în cadrul sistemului. Nisa se aplică atunci când avem un program sau o sarcină care necesită multă utilizare a procesorului, dar, de asemenea, că acest proces poate dura mult timp, acolo va fi posibil să configurați o prioritate ridicată sau favorabilă folosind comanda frumos.

Sintaxa pe care o putem folosi sunt următoarele:

 nice -n nice-value [argumente de comandă] nice - nice-value [argumente de comandă] nice --adjustment = nice-value [argumente de comandă]
Luați în considerare următoarele:
  • Dacă nu este furnizată nicio valoare, nice va seta în mod implicit o prioritate de 10
  • O comandă sau un program executat fără valori implicite este setat la o prioritate zero
  • Numai utilizatorul root poate executa o comandă sau un program cu prioritate mai mare sau mai mare
  • Utilizatorii normali pot rula o comandă sau un program doar cu prioritate redusă
Pentru a seta o prioritate, în loc să porniți un program sau o comandă cu prioritatea implicită, va fi posibil să o porniți cu o prioritate specifică folosind următoarea comandă frumoasă:
 sudo nice -n -5 xclock &
Sau putem executa următoarele:
 sudo nice --adjustment = 5 xclock &

MARI

Putem vedea că este generat un nou ID.

4. Schimbați prioritatea de planificare a unui proces în Linux


Când utilizați medii Linux, permite programarea dinamică bazată pe priorități, prin urmare, dacă un program rulează deja, va fi posibil să-și schimbe prioritatea folosind comanda renice după cum urmează:
 renice -n -12 -p (PID) renice -n -2 -u (Aplicație)
La executarea acestei comenzi vom putea vedea vechea prioritate și noua prioritate.

MARI

5. Cum se setează implicit Nice pentru procesele unui anumit utilizator


Puteți seta valoarea implicită pentru un anumit utilizator sau grup în fișierul /etc/security/limits.conf. Funcția sa principală este de a defini limitele resurselor pentru utilizatorii conectați prin PAM.

Sintaxa pentru a defini o limită pentru un utilizator este după cum urmează:

 
Alternativ, va fi posibil să creați un fișier în /etc/security/limits.d/ care să se ocupe de suprascrierea configurației din fișierul principal și aceste fișiere sunt citite în ordine alfabetică.

Dacă vrem să primim ajutorul lui nice sau renice putem executa următoarele:

 om frumos om renice

MARI

Astfel avem la îndemână opțiunea de a stabili priorități în funcție de nevoile proceselor, optimizând mult mai mult utilizarea procesorului în Linux și îmbunătățind semnificativ sarcinile administrative.

wave wave wave wave wave