Jak upřednostnit procesy Linuxu pomocí Nice a Renice

V rámci různých úkolů správy operačních systémů Linux je ideální podrobně vědět, jak procesy v systému fungují, protože je to nezbytné k dokončení a vědět, jak interně každý proces plní funkci, pro kterou byl vyvinut.

Dnes bude Solvetic podrobně analyzovat, jak upřednostňovat procesy našich distribucí Linuxu pomocí Nice a Renice.

Jaké jsou priority procesu v LinuxuJe důležité, abyste věděli, jak pěkná a příjemná práce je, abyste trochu porozuměli tomu, proč nastavení určité priority procesu Linux, tedy priority procesu, slouží k určení doby, po kterou bude moci vybraný proces využívat procesor v určitém čase.

V prostředích Linux jsou procesory sdíleny více procesy (procesy se střídají s využitím dostupných procesorů), což uživateli umožňuje vnímat, že jsou všechny aplikace nebo úkoly prováděny současně, a proto definováním priority , naznačujeme systému, které procesy mohou více využívat procesor a které procesy zaujímají druhé místo.

Tato priorita může vést k tomu, že některé procesy nebudou prováděny kdykoli, protože jsou posunuty ke konci fronty procesů jinými procesy s vyšší prioritou použití.

Jak funguje Plánovač jádra v LinuxuDalší bod, který je třeba mít na paměti při správě systémů Linux, je znalost jádra, které má na starosti spouštění. V jádře má programátor nebo plánovač, což je jednotka jádra, která určuje nejvhodnější proces ze všech dostupných spustitelných procesů, které je nutné provést v první instanci. Poté alokuje čas procesoru mezi spustitelnými procesy v systému.

Spustitelný proces je proces, který čeká pouze na spuštění času CPU. Programátor tvoří jádro multitaskingu v Linuxu a využívá algoritmus plánování podle priority k výběru ze spustitelných procesů v systému. Poté klasifikuje procesy na základě těch nejzásadnějších a také časové náročnosti CPU každého z nich.

V Linuxu je v Linuxu implementováno celkem 140 priorit a dva různé rozsahy priorit:

  • První je pěkná hodnota, která se pohybuje od -20 (nejvyšší hodnota priority) do 19 (nejnižší prioritní hodnota) a výchozí hodnota je 0.
  • Druhou je priorita v reálném čase, která se standardně pohybuje od 1 do 99, poté je 100 až 139 určeno pro uživatelský prostor.

1. Ověření hodnot procesů v Linuxu


V Linuxu můžeme kontrolovat hodnoty procesu pomocí nástrojů, jako je ps, top nebo htop.
Pokud použijeme parametr ps, můžeme provést následující:
 ps -eo pid, ppid, ni, comm
Sloupec zde neodhaluje hodnotu každého procesu:

ZVĚTŠIT

Alternativně můžeme použít horní nebo htop parametry, kde můžeme vidět mnohem úplnější výsledky a automaticky se nám zobrazí sloupec se stejnými hodnotami každého zobrazeného procesu:

horní

ZVĚTŠIT

htop

ZVĚTŠIT

PoznámkaV případě, že nemáte htop, můžeme jej nainstalovat spuštěním řádku sudo apt install htop

2. Rozdíl mezi PR nebo PRI a NI a jak vypočítat jejich hodnoty


Když spustíme horní a htop parametry, můžeme vidět sloupce PR, PRI nebo NI, znamenají:

ANIJe to přátelská hodnota, to znamená, že je to koncept uživatelského prostoru

PR / PRIJe to skutečná priorita procesu, tyto informace poskytuje jádro Linuxu

Tyto hodnoty jsou založeny na následujících skutečnostech.

 Celkový počet priorit = 140 Rozsah priorit v reálném čase (PR nebo PRI): 0 až 99 Rozsah priorit uživatelského prostoru: 100 až 139 Rozsah hodnot NI (Nice Value) -20 až 19: PR = 20 + NI PR = 20 + ( -20 až + 19) PR = 20 + -20 až 20 + 19 PR = 0 až 39, což se rovná 100 až 139
Pokud v zobrazených výsledcích vidíme hodnotu rt, znamená to, že proces je prováděn s prioritou plánování v reálném čase.

3. Jak spustit příkaz s hodnotou Nice v systému Linux


Nice má na starosti přiřazení konkrétní priority programu při jeho provádění a dědičnost úkolů a procesů, které tento program může v systému spustit. Nice platí, když máme program nebo úkol, který vyžaduje hodně využití CPU, ale také to, že dokončení tohoto procesu může trvat dlouho, tam bude možné konfigurovat vysokou nebo příznivou prioritu pomocí příkazu nice.

Můžeme použít následující syntaxi:

 nice -n nice-value [příkazové argumenty] nice-Nice-value [příkazové argumenty] nice --adjustment = Nice-value [příkazové argumenty]
Zvažte následující:
  • Pokud není zadána žádná hodnota, Nice ve výchozím nastavení nastaví prioritu 10
  • Příkaz nebo program spuštěný bez výchozích hodnot je nastaven na prioritu nula
  • Pouze uživatel root může spustit příkaz nebo program s vyšší nebo vyšší prioritou
  • Běžní uživatelé mohou spustit pouze příkaz nebo program s nízkou prioritou
Chcete -li nastavit prioritu, místo spuštění programu nebo příkazu s výchozí prioritou bude možné jej spustit s konkrétní prioritou pomocí následujícího pěkného příkazu:
 sudo nice -n -5 xclock &
Nebo můžeme provést následující:
 sudo nice --adjustment = 5 xclock &

ZVĚTŠIT

Vidíme, že je vygenerováno nové ID.

4. Změňte prioritu plánování procesu v Linuxu


Při použití prostředí Linux umožňuje dynamické programování na základě priorit, takže pokud je program již spuštěn, bude možné změnit jeho prioritu pomocí příkazu renice následujícím způsobem:
 renice -n -12 -p (PID) renice -n -2 -u (aplikace)
Při provádění tohoto příkazu budeme moci vidět starou prioritu a novou prioritu.

ZVĚTŠIT

5. Jak nastavit Nice výchozí pro procesy konkrétního uživatele


Výchozí hodnotu pro konkrétního uživatele nebo skupinu můžete nastavit v souboru /etc/security/limits.conf. Jeho hlavní funkcí je definovat omezení zdrojů pro uživatele připojené přes PAM.

Syntaxe pro definování limitu pro uživatele je následující:

 
Alternativně bude možné vytvořit soubor v /etc/security/limits.d/, který se stará o přepsání konfigurace v hlavním souboru, a tyto soubory se čtou v abecedním pořadí.

Pokud chceme získat pomoc Nice nebo Renice, můžeme provést následující:

 muž milý muž renice

ZVĚTŠIT

Máme tedy po ruce možnost stanovit priority podle potřeb procesů, optimalizovat mnohem více využití CPU v Linuxu a výrazně zlepšit administrativní úkoly.

wave wave wave wave wave