Jak ustawić priorytet procesowy Linux za pomocą poleceń Nicea i Renice

Jak ustawić priorytet procesowy Linux za pomocą poleceń Nicea i Renice

W tym artykule krótko wyjaśnimy Planowanie jądra (znany również jako Process Scheduler), I priorytet procesu, które są tematami wykraczającymi poza zakres tego przewodnika. Następnie zagłębimy się w nieco zarządzania procesami Linux: zobacz, jak uruchomić program lub polecenie o zmodyfikowanym priorytecie, a także zmienić priorytet uruchamiania procesów Linux.

Przeczytaj także: Jak monitorować procesy Linuksa i ustawić limity procesu na zasadzie dla użytkownika

Zrozumienie harmonogramu jądra Linux

Harmonogram jądra to jednostka jądra, która określa najbardziej odpowiedni proces spośród wszystkich przebiegalnych procesów do wykonania; Przydziela czas procesora między procesami uruchamianymi w systemie. Proces uruchomiony to taki, który czeka tylko na czas procesora, jest gotowy do wykonania.

Harmonogram stanowi rdzeń wielozadaniowości w Linux, wykorzystując oparty na priorytecie algorytm planowania do wyboru między procesami uruchamianymi w systemie. Procesy plasuje się na podstawie najbardziej zasłużonych, a także na potrzebie czasu procesora.

Zrozumienie priorytetu procesu i ładnej wartości

Kernel przechowuje wiele informacji o procesach, w tym priorytet procesu, który jest po prostu priorytetem planowania dołączonym do procesu. Procesy o wyższym priorytecie zostaną wykonane przed tymi o niższym priorytecie, podczas gdy procesy o tym samym priorytecie zostaną zaplanowane jeden po następnym, wielokrotnie.

Jest w sumie 140 Priorytety i dwa odrębne zakresy priorytetów zaimplementowane w Linux. Pierwszy to ładna wartość (uprzejmość), który waha się od -20 (najwyższa wartość priorytetu) do 19 (najniższa wartość priorytetu), a domyślnie jest 0, To właśnie odkrymy w tym przewodniku. Drugi to priorytet w czasie rzeczywistym, który waha się 1 Do 99 Domyślnie zatem 100 Do 139 są przeznaczone do przestrzeni użytkownika.

Jedną ważną cechą Linuksa jest dynamiczne planowanie oparte na priorytecie, które pozwala na zmianę ładnej wartości procesów (zwiększenie lub zmniejszenie) w zależności od twoich potrzeb, jak zobaczymy później.

Jak sprawdzić ładną wartość procesów Linux

Aby zobaczyć ładne wartości procesów, możemy używać narzędzi, takich jak PS, TOP lub HTOP.

Aby wyświetlić procesy ładną wartość z poleceniem PS w formacie zdefiniowanym przez użytkownika (tutaj Ni Kolumna pokazuje uprzejmość procesów).

$ ps -eo pid, ppid, ni, comm 
Zobacz Linux przetwarza ładne wartości

Alternatywnie możesz użyć narzędzi TOP lub HTOP do wyświetlania procesów Linux ładnych wartości, jak pokazano.

$ top $ htop 
Sprawdź Linux Process Nice Wartości za pomocą polecenia TOP Sprawdź Linux Process Nice Wartości za pomocą polecenia HTOP

Różnica między PR lub PRI i NI

Z szczyt I htop Wyjścia powyżej zauważysz, że istnieje kolumna o nazwie Pr I Pri receptywnie, co pokazuje priorytet procesu.

To zatem oznacza, że:

  • Ni - to ładna wartość, która jest koncepcją przestrzeni użytkownika, podczas gdy
  • Pr Lub Pri - jest faktycznym priorytetem tego procesu, jak widać przez jądro Linux.
Jak obliczyć wartości PR lub PRI
Całkowita liczba priorytetów = 140 Zakres priorytetów w czasie rzeczywistym (PR lub PRI): od 0 do 99 Przestrzeni użytkownika Zakres priorytetów: 100 do 139 

Niezły zakres wartości (NI): -20 do 19

PR = 20 + Ni PR = 20 + (-20 do + 19) PR = 20 + -20 do 20 + 19 PR = 0 do 39, co jest takie samo jak 100–139. 

Ale jeśli zobaczysz Rt Zamiast liczby, jak pokazano na zrzucie ekranu poniżej, oznacza to, że proces działa w ramach priorytetu planowania w czasie rzeczywistym.

Proces Linux RT

Jak uruchomić polecenie z daną ładną wartością w Linux

Tutaj przyjrzymy się, jak priorytetowo wykorzystać proces procesora lub polecenie. Jeśli masz bardzo intensywny program procesowy lub zadanie, ale rozumiesz, że zakończenie może potrwać dużo czasu, możesz ustawić wysoki lub korzystny priorytet za pomocą Niezłe polecenie.

Składnia jest następująca:

$ Nice -n Wartość uprzejmości [poleceń args] lub $ nice -niceness-wartość [poleceń args] #jest mylące dla wartości negatywnych lub $ nice --adjustment = wartość uprzejmości [argument komendy] 

Ważny:

  • Jeśli nie podano żadnej wartości, Nice ustawia priorytet 10 domyślnie.
  • Polecenie lub program uruchomiony bez ładnych domyślnych priorytetów zero.
  • Tylko root może uruchomić polecenie lub program ze zwiększonym lub wysokim priorytetem.
  • Normalni użytkownicy mogą uruchomić tylko polecenie lub program o niskim priorytecie.

Na przykład, zamiast uruchamiać program lub polecenie z domyślnym priorytetem, możesz uruchomić go z określonym priorytetem za pomocą następującego polecenia Nice.

$ sudo nice -n 5 tar -czf tworzenie kopii zapasowych.smoła.GZ ./Documents/* lub $ sudo nice --adjustment = 5 TAR -czf Backup.smoła.GZ ./Dokumenty/* 

Możesz także użyć trzeciej metody, która jest nieco myląca, szczególnie w przypadku wartości negatywnych.

$ sudo fajne -5 TAR -czf Backup.smoła.GZ ./Dokumenty/* 

Zmień priorytet planowania procesu w Linux

Jak wspomnialiśmy wcześniej, Linux umożliwia dynamiczne planowanie oparte na priorytecie. Dlatego jeśli program już działa, możesz zmienić jego priorytet z polecenie rence W tej formie:

$ renice -n -12 -p 1055 $ renice -n -2 -U apache 
Zmień priorytet procesu

Z próbki szczyt wyjście poniżej, uprzejmość Teamspe+ z PID 1055 jest teraz -12 a dla wszystkich procesów należących do użytkownika Apache IS -2.

Wciąż używając tego wyjścia, możesz zobaczyć formułę Pr = 20 + ni stoi,

PR dla TS3Server = 20 + -12 = 8 Pr dla procesów Apache = 20 + -2 = 18 
Oglądaj procesy ładne wartości

Wszelkie zmiany, które wprowadzasz za pomocą polecenie rence Do procesów użytkownika ładne wartości mają zastosowanie tylko do następnego ponownego uruchomienia. Aby ustawić stałe wartości domyślne, przeczytaj następną sekcję.

Jak ustawić domyślną wartość ładnej wartości określonego użytkownika

Możesz ustawić domyślną wartość ładną konkretnego użytkownika lub grupy w /itp./bezpieczeństwo/limity.conf plik. Jego główną funkcją jest zdefiniowanie limitów zasobów dla użytkowników zalogowanych za pośrednictwem PAM.

Składnia do zdefiniowania limitu dla użytkownika jest następująca (a możliwe wartości różnych kolumn są wyjaśnione w pliku):

#    

Teraz użyj poniższej składni, gdzie twarde - oznacza egzekwowanie twardych łączy i miękkich środków - egzekwowanie miękkich limitów.

  priorytet  

Alternatywnie utwórz plik poniżej /itp./bezpieczeństwo/limity.D/ który zastępuje ustawienia w głównym pliku powyżej, a pliki te są odczytywane w kolejności alfabetycznej.

Zacznij od utworzenia pliku /itp./bezpieczeństwo/limity.D/TECMINT PRIORITY.conf dla użytkownika Tecmint:

# vi/etc/bezpieczeństwo/limity.D/TECMINT PRIORITY.conf 

Następnie dodaj tę konfigurację:

Tecmint Hard Priorytet 10 

Zapisz i zamknij plik. Odtąd każdy proces własny Tecmint będzie miał dobrą wartość 10 i Pr 30.

Aby uzyskać więcej informacji, przeczytaj strony Man Ładny I Renice:

$ man miły $ man renice 

Możesz także przeczytać następujące artykuły na temat zarządzania procesami Linux.

  1. Jak znaleźć i zabić procesy uruchomione w Linux
  2. Przewodnik po zabiciu, Pkill i Killall poleca zakończenie procesu w Linux
  3. Jak monitorować użycie systemu, awarie i rozwiązywanie problemów z serwerami Linux
  4. CUPTOOOL - Limit i kontrolowanie wykorzystania procesora dowolnego procesu w Linux

W tym artykule krótko wyjaśniliśmy harmonogram jądra, priorytet procesowy, przyjrzeliśmy się, jak uruchomić program lub polecenie z zmodyfikowanym priorytetem, a także zmienić priorytet aktywnych procesów Linux. Możesz podzielić się wszelkimi przemyśleniami na ten temat za pośrednictwem poniższego formularza opinii.