Jak priorytetyzować procesy Linuksa za pomocą Nice i Renice?

W ramach różnych zadań związanych z zarządzaniem systemami operacyjnymi Linux idealnie jest wiedzieć szczegółowo, jak działają procesy w systemie, ponieważ jest to niezbędne do ukończenia i wiedzieć, jak wewnętrznie każdy proces spełnia funkcję, dla której został opracowany.

Dzisiaj Solvetic szczegółowo przeanalizuje, jak priorytetyzować procesy naszych dystrybucji Linuksa, używając nice and renice.

Jakie są priorytety procesów w LinuksieWażne jest, aby wiedzieć, jak ładnie i renice działa, aby trochę zrozumieć, dlaczego ustawienie pewnego priorytetu procesu Linuksa, priorytetu procesu, jest używane do określenia ilości czasu, przez który wybrany proces będzie mógł korzystać z procesora w określonym przedziale czasu.

W środowiskach Linux procesory są współdzielone przez wiele procesów (procesy naprzemiennie wykorzystują dostępne procesory), co pozwala użytkownikowi dostrzec, że wszystkie aplikacje lub zadania są wykonywane w tym samym czasie, dlatego poprzez zdefiniowanie priorytetu , wskazujemy systemowi, które procesy mogą w większym stopniu wykorzystywać procesor, a które zajmują drugie miejsce.

Ten priorytet może prowadzić do tego, że niektóre procesy nie będą wykonywane w dowolnym momencie, ponieważ są one przesuwane na koniec kolejki procesów przez inne procesy o wyższym priorytecie użytkowania.

Jak działa Kernel Scheduler w systemie LinuxInną kwestią, o której należy pamiętać podczas zarządzania systemami Linux, jest znajomość jądra odpowiedzialnego za uruchamianie. Ma w jądrze programistę lub program planujący, który jest jednostką jądra, która określa najbardziej odpowiedni proces ze wszystkich dostępnych procesów wykonywalnych, które muszą zostać wykonane w pierwszej instancji. Następnie przydziela czas procesora między wykonywalnymi procesami w systemie.

Proces wykonywalny to taki, który czeka tylko na wykonanie czasu procesora. Programista tworzy jądro wielozadaniowości w systemie Linux, korzystając z algorytmu planowania opartego na priorytetach, aby wybrać spośród wykonywalnych procesów w systemie. Następnie klasyfikuje procesy w oparciu o te najbardziej podstawowe, a także wymagania czasowe procesora każdego z nich.

W Linuksie istnieje łącznie 140 priorytetów i dwa różne zakresy priorytetów zaimplementowanych w Linuksie:

  • Pierwsza to ładna wartość, która mieści się w zakresie od -20 (wartość najwyższego priorytetu) do 19 (wartość najniższego priorytetu), a domyślna wartość to 0.
  • Drugi to priorytet czasu rzeczywistego, który domyślnie wynosi od 1 do 99, a następnie 100 do 139 jest przeznaczonych na przestrzeń użytkownika.

1. Weryfikacja wartości procesów w Linuksie


W Linuksie możemy sprawdzić wartości procesu za pomocą narzędzi takich jak ps, top czy htop.
Jeśli użyjemy parametru ps, możemy wykonać następujące czynności:
 ps -eo pid, ppid, ni, comm
Tam kolumna nie ujawnia wartości każdego procesu:

POWIĘKSZAĆ

Alternatywnie możemy skorzystać z parametrów top lub htop, gdzie możemy zobaczyć znacznie pełniejsze wyniki i automatycznie zobaczymy kolumnę z tymi samymi wartościami każdego wyświetlonego procesu:

szczyt

POWIĘKSZAĆ

htop

POWIĘKSZAĆ

NotatkaW przypadku braku htop możemy go zainstalować, wykonując linię sudo apt install htop

2. Różnica między PR lub PRI a NI i jak obliczyć ich wartości


Kiedy wykonujemy parametry top i htop widzimy kolumny PR, PRI lub NI, mają one na myśli:

ŻADENJest to wartość przyjazna, czyli koncepcja przestrzeni użytkownika

PR / PRITo jest prawdziwy priorytet procesu, ta informacja jest dostarczana przez jądro Linuksa

Wartości te opierają się na następujących rzeczach.

 Całkowita liczba priorytetów = 140 Zakres priorytetów czasu rzeczywistego (PR lub PRI): 0 do 99 Zakres priorytetów przestrzeni użytkownika: 100 do 139 Zakres wartości NI (wartość dobra) -20 do 19: PR = 20 + NI PR = 20 + ( -20 do + 19) PR = 20 + -20 do 20 + 19 PR = 0 do 39, co jest równe 100 do 139
Jeżeli w wyświetlanych wynikach widzimy wartość rt, oznacza to, że proces jest realizowany z priorytetem harmonogramowania w czasie rzeczywistym.

3. Jak uruchomić polecenie z wartością Nice w systemie Linux?


Nice odpowiada za przypisanie określonego priorytetu do programu podczas jego wykonywania oraz poprzez dziedziczenie zadań i procesów, które ten program może wywołać w systemie. Nice stosuje się, gdy mamy program lub zadanie, które wymaga dużego użycia procesora, ale także, że ten proces może zająć dużo czasu, tam będzie można skonfigurować wysoki lub korzystny priorytet za pomocą polecenia nice.

Składnia, której możemy użyć, jest następująca:

 nice -n ładna-wartość [argumenty polecenia] nice - ładna-wartość [argumenty polecenia] nice --dopasowanie = ładna-wartość [argumenty polecenia]
Rozważ następujące:
  • Jeśli nie podano żadnej wartości, nice ustawi domyślnie priorytet 10
  • Polecenie lub program wykonywany bez wartości domyślnych ma ustawiony priorytet zerowy
  • Tylko użytkownik root może wykonać polecenie lub program o wyższym lub wyższym priorytecie
  • Zwykli użytkownicy mogą uruchamiać tylko polecenie lub program o niskim priorytecie
Aby ustawić priorytet, zamiast uruchamiać program lub polecenie z domyślnym priorytetem, będzie można uruchomić go z określonym priorytetem za pomocą następującego ładnego polecenia:
 sudo ładne -n ​​-5 xclock &
Lub możemy wykonać następujące czynności:
 sudo nice --adjustment = 5 xclock &

POWIĘKSZAĆ

Widzimy, że generowany jest nowy identyfikator.

4. Zmień priorytet planowania procesu w systemie Linux


Podczas korzystania ze środowisk Linux umożliwia dynamiczne programowanie oparte na priorytetach, dlatego jeśli program już działa, będzie można zmienić jego priorytet za pomocą polecenia renice w następujący sposób:
 renice -n -12 -p (PID) renice -n -2 -u (aplikacja)
Podczas wykonywania tego polecenia będziemy mogli zobaczyć stary priorytet i nowy priorytet.

POWIĘKSZAĆ

5. Jak ustawić Niceę jako domyślną dla procesów konkretnego użytkownika?


Wartość domyślną dla konkretnego użytkownika lub grupy można ustawić w pliku /etc/security/limits.conf. Jego główną funkcją jest definiowanie limitów zasobów dla użytkowników połączonych przez PAM.

Składnia do zdefiniowania limitu dla użytkownika jest następująca:

 
Alternatywnie będzie możliwe utworzenie pliku w /etc/security/limits.d/, który zajmie się nadpisaniem konfiguracji w pliku głównym i odczytanie tych plików w kolejności alfabetycznej.

Jeśli chcemy skorzystać z pomocy nice lub renice możemy wykonać następujące czynności:

 człowieku miły człowieku renice

POWIĘKSZAĆ

Dzięki temu mamy pod ręką możliwość ustalenia priorytetów zgodnie z potrzebami procesów, znacznie bardziej optymalizując wykorzystanie procesora w Linuksie i znacznie usprawniając zadania administracyjne.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave