Wstęp

Wstęp

Zdolność użytkownika do dołączenia wartości priorytetowej do własnego procesu po wykonaniu określa, czy jesteś miły dla swoich użytkowników w tym samym systemie. Czy jesteś miły, czy po prostu nadużywasz zasobów systemowych bez wyraźnego powodu? W tym artykule dowiesz się, jak zarządzać procesami, jeśli chodzi o to, ile siły przetwarzają, które konsumują i jak zmienić wartość priorytetową swoich procesów za pomocą Ładny I Renice Polecenie Linux. Zaczniemy od podstawowej teorii na temat tego, co jest procesem, planowaniem procesu, jak rozwidlić nowy proces, a następnie przeprowadzamy Ładny polecić i wyjaśnij, jak zmienić wartość priorytetu procesu.

Co to jest proces

Krótko mówiąc, proces jest konwencją nazewnictwa używaną przez Linuksa w celu przyjęcia roli uruchomionego programu. Proces to zbiór reguł, według których każdy konkretny program korzysta z przypisanego czasu procesora, pamięci i zasobów we/wy. Każdy proces działający w systemie Linux ma swój własny identyfikator procesu (PID), za pomocą którego można go monitorować i administrować.

Kernel Linux jest zaprojektowany do zbierania różnych informacji o każdym procesie. Obejmują one między innymi:

  • Status procesu (Runnable, Sleeping, Zombie lub zatrzymany)
  • Priorytet wykonania procesu (uprzejmość)
  • Informacje o zasobach używanych
  • właściciel procesu
  • Jakie porty sieciowe i pliki otworzyły się każdy konkretny proces
  • i więcej…

Teraz, gdy mamy pojęcie o tym, co to jest proces, możemy iść naprzód i stworzyć jakiś proces. Aby to zrobić, po prostu otwórz swój terminal i wykonaj polecenie tak w tle i przekierowując jego wyjście do /dev /null:

$ tak> /dev /null & [1] 5997 

Po tym użycie polecenia PS -L Nie możemy wyodrębnić informacji o naszym procesie YES:

$ ps -l f s uid pid pPid c pri ni addr sz Wchan tty czas cmd 0 s 1000 5830 3283 0 80 0 - 6412 Poczekaj PTS/0 00:00:00 Bash 0 r 1000 5997 5830 99 80 0 - 1757 - PTS/ 0 00:00:09 Tak 0 r 1000 5998 5830 0 80 0 - 2399 - PTS/0 00:00:00 Ps 

Z powyższego możemy przeczytać do następujących informacji:

  • F - Flaga: Proces nie zaczął się od uprawnień Superuser. W przeciwnym razie zobaczylibyśmy numer 4 lub sumę 1 i 4. Sprawdzać Man Ps po więcej informacji.
  • S - Stan: Proces jest obecnie uruchomiony
  • UID - Identyfikator użytkownika użytkownika, który zainicjował proces. UID to alias dla EUID (skuteczny identyfikator użytkownika)
  • Pid - Identyfikator procesu naszego Tak Polecenie to 5997
  • PPID - Identyfikator procesu nadrzędnego. Jest to identyfikator procesu, z którego nasze polecenie tak było rozwidlone. W tym przypadku jest to uderzenie z PID 5830.
  • C - Wartość całkowitą wykorzystania procesora w % .
  • Pri - Priorytet procesu. Wyższa wartość niższy priorytet.
  • Ni - Ładna wartość z zakresem od -20 do 19. Im wyższa wartość, tym bardziej jest dla innych użytkowników innymi słowy, tym wyższa wartość, tym niższy priorytet.

Planowanie procesu

Tę sekcję można pominąć, jeśli nie masz ochoty przejść więcej szczegółów na temat priorytetu procesu i planowania. Tutaj spróbujemy opisać proces Linuksa z łatwą do zrozumienia podstawową podsumowanie, ponieważ ten temat może obejmować wiele stron i byłoby to jedyne wprowadzenie.

Z naszego punktu widzenia musimy zrozumieć ten Linux (wersja jądra Linux> = 2.6) Harmonogram jest zapobiegawczy. Jest to zdolność, która pozwala jądrze na prewencyjnie wybrać zadanie o wyższym priorytecie w stosunku do tych o niższym priorytecie. Ponadto jądro oddziela listy priorytetów na zadania w czasie rzeczywistym i zadania użytkownika szalejące odpowiednio od 1 do 100 i 101 - 140.

Ponadto jądro Linux przypisuje się do zadań o wyższym priorytecie dłuższy czas kwantowy i niższe zadania priorytetów krótszy czas kwantowy To jest odpowiednio około 200 ms i 10 ms. Innymi słowy, każde zadanie może wykonywać tylko wtedy, gdy ma trochę pozostałego wycinka. Dlatego krótszy wycinek czasowy do wykonania przyczyn przyczynów pozostaje krótszy czas w aktywnym runqueue, a tym samym zużywa mniej zasobów. Po pustym plasterze czasu procesu jest przenoszony do Wygasły runqueue gdzie jego priorytet jest ponownie obliczany, a następnie ponownie przeniósł się do Aktywne runqueue. Ten związek jest zilustrowany na schemacie po prawej stronie. Ważne jest, aby wspomnieć, że zarówno tam, gdzie zarówno aktywne, jak i wygasłe runki zawierają listy zadań posortowane według ich priorytetu.

Cykl życia procesu

Podstawowa zasada zarządzania procesami Linux zawiera dwie odrębne operacje podczas tworzenia nowego procesu. Operacja jest miejscem, w którym proces kopiuje się według widelec() Zadzwoń, a zatem tworzy nowy proces z unikalnym PID. Dzielenie widelca najczęściej następuje exec () Operacja, która wykonuje nowy program. Pierwszy proces utworzony w czasie rozruchu jest w tym który jest zawsze przypisany PID 1. Wszystkie pozostałe procesy są uważane za procesy dziecięce procesu inicjowania. W normalnych okolicznościach przed procesem dzieci pozwala na śmierć, to wydarzenie musi zostać uznane przez proces nadrzędny, wysyłając wartość wyjścia. Udane rozwiązanie wyślij wartość procesu nadrzędnego 0. Jeśli z jakiegoś powodu proces dzieci przeżywa proces nadrzędny w tym zaakceptuje ten proces jako osierocony proces.

Używając fajnego polecenia

Ponieważ siła przetwarzania była i nadal rośnie wykładniczo na przestrzeni lat, znaczenie NICE Dowództwo maleje w tym samym tempie. Dlatego w rezultacie bardzo dzisiaj będziesz zmuszony ręcznie zmienić priorytet procesu. Niemniej jednak ta umiejętność jest tam i nadal może być przydatna w niektórych sytuacjach. Domyślnie Nicei ustawić ładny poziom na 10.

$ fajnie tak> /dev /null & [1] 5199 $ Ps -L F S UID PID PPID C Pri Ni Addr Szan Tty Time CMD 0 S 1000 3383 3380 0 80 0 - 6445 OTRZECA PTS/0 00:00:00 Bash 0 R 1000 5199 3383 99 90 10 - 1757 - PTS/0 00:00 : 07 Tak 0 r 1000 5200 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Aby rozpocząć proces z inną ładną wartością niż 10, możemy użyć przełącznika -N.

$ fajnie -n 15 tak> /dev /null & Lub $ Nice -15 Tak> /dev /null & [1] 5270 $ Ps -L F S UID PID PPID C Pri Ni Addr Szan Tty Time Cmd 0 S 1000 3383 3380 0 80 0 - 6447 Otając PTS/0 00:00:00 Bash 0 R 1000 5270 3383 99 95 15 - 1757 - PTS/0 00:00 : 02 Tak 0 r 1000 5271 3383 0 80 0 - 2399 - PTS/0 00:00:00 Ps 

Aby ustawić ładną wartość poniżej 0, wymagane są uprawnienia korzeniowe. Nice nadal rozpocznie program, jednak ładna wartość zostanie ustawiona na 0. Tutaj staramy się ustawić ładną wartość na -1 bez uprawnień głównych:

$ fajnie -n -1 tak> /dev /null & [1] 5285 Nice: nie można ustawić uprzejmości: odmowa odmowa $ Ps -L F S UID PID PPID C Pri Ni Addr Szan Tty Time CMD 0 S 1000 3383 3380 0 80 0 - 6447 Poczekaj PTS/0 00:00:00 Bash 0 R 1000 5285 3383 95 80 0 - 1757 - PTS/0 00:00 : 07 Tak 0 r 1000 5295 3383 0 80 0 - 2399 - PTS/0 00:00:00 Ps 

Dlatego, aby ustawić ładną wartość na niższą niż 0.

# fajnie -n -1 tak> /dev /null & [1] 5537 # Ps -L F S UID PID PPID C Pri Ni Addr Szan Tty Time CMD 4 S 0 5428 3383 0 80 0 - 14430 WATL PTS/0 00:00:00 SU 0 S 0 5436 5428 1 80 0 - 7351 Wait PTS/0 00:00 : 00 Bash 4 R 0 5537 5436 87 79 -1 - 1757 - PTS/0 00:00:04 Tak 4 R 0 5538 5436 0 80 0 - 2399 - PTS/0 00:00:00 Ps 

Za pomocą polecenia Renice

W poprzedniej sekcji nauczyliśmy się, jak uruchomić program z wstępną ładną wartością za pomocą Nice Command. Tutaj staramy się zmienić ładną wartość uruchomionego programu za pomocą polecenia Renice. Tutaj mamy program działający YES o ładnej wartości 10:

$ Ps -L F S UID PID PPID C Pri Ni Addr Szan Tty Time Cmd 0 S 1000 3383 3380 0 80 0 - 6447 Otając PTS/0 00:00:00 Bash 0 R 1000 5645 3383 99 90 10 - 1757 - PTS/0 00:00 : 04 Tak 0 r 1000 5646 3383 0 80 0 - 2399 - PTS/0 00:00:00 Ps 

Aby zmienić jego wartość, możemy użyć poleceń Renice i dostarczania PID i ładnej wartości. Zmieńmy ładną wartość na 15:

$ Renice -N 15 -p 5645 5645 (identyfikator procesu) stary priorytet 10, nowy priorytet 15 $ Ps -L F S UID PID PPID C Pri Ni Addr Szan Tty Time CMD 0 S 1000 3383 3380 0 80 0 - 6447 Poczekaj PTS/0 00:00:00 Bash 0 R 1000 5645 3383 99 95 15 - 1757 - PTS/0 00:00 : 31 Tak 0 R 1000 5656 3383 0 80 0 - 2399 - PTS/0 00:00:00 PS 

Zasada, którą należy przestrzegać, jest taka, że ​​użytkownik bez nadzoru może jedynie zwiększyć wartość ładną (dawać mniej priorytetów) do każdego procesu. Gdyby teraz spróbowałby zmienić się na niezłą wartość z 15 do 10, pojawiłby się po błędzie:

$ Renice -N 10 -p 5645 Renice: nie udało się ustalić priorytetu dla 5645 (identyfikator procesu): odmowa uprawnień 

Polecenie Renice daje również użytkownikowi root możliwość zmiany ładnej wartości procesów dowolnego użytkownika. Odbywa się to przez -u Switch. Poniższe polecenie Linux zmieni priorytet wszystkich procesów użytkownika na -19.

# Renice -n -19 -U Lubos 1000 (identyfikator użytkownika) stary priorytet 0, nowy priorytet -19 

Wniosek

Nice Command może być przydatnym narzędziem i z pewnością jest łatwe w użyciu. Należy pamiętać, że możesz również użyć Top Command do wartości procesów nerek.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
  • Zagnieżdżone pętle w skryptach Bash
  • Rzeczy do zainstalowania na Ubuntu 22.04
  • Zainstaluj Arch Linux na stacji roboczej VMware
  • Ubuntu 20.04 Przewodnik
  • Jak podwójnie rozruch Kali Linux i Windows 10
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?