GNU/Linux >> Znalost Linux >  >> Linux

Linuxové příkazy:Jak manipulovat s prioritou procesu

Správa procesů v Linuxu je základní koncept, který by měl znát každý správný správce systému. Většina práce, kterou s těmito procesy děláte, se skládá ze základních, opakujících se úkolů, jako je spouštění a zastavování procesů, jejich hledání, zabíjení atd.

V některých méně častých případech může být nutné přeuspořádat procesy kvůli alokaci systémových prostředků. Když nastanou tyto situace, mnozí z nás se obrátí na svůj oblíbený vyhledávač, aby zjistili nejúčinnější způsob, jak toho dosáhnout. Nyní, když vás vyhledávací algoritmus přivedl sem k aktivaci Sysadmin, pojďme vám nabídnout odpovědi, které hledáte.

Níže rozeberu, jak se určuje priorita, a poté vám ukážu, jak s těmito hodnotami manipulovat.

Priorita procesu a relativita

Systémy Linux běžně spouštějí více procesů, než kolik je procesorových jednotek v počítači. Z tohoto důvodu bude plánovač procesů rychle přeskakovat mezi procesy na jednom jádru, čímž vytvoří iluzi, že spouštíme více současných procesů.

Ve skutečnosti je každému procesu přiřazena politika plánování procesů. V rámci těchto zásad se k měření hezkého používá 40bodová stupnice úrovně procesu. Úroveň nice je měrná jednotka, která popisuje relativní prioritu procesu. Když diskutujete o úrovních zdvořilosti, povšimněte si, že škála je -20 (nejvyšší priorita) až 19 (nejnižší priorita) a že proces zdědí svou úroveň slušnosti od rodiče (nejčastěji 0).

[ Také by vás mohlo těšit: Základy příkazů Linuxu:7 příkazů pro správu procesů  ]

Nyní, pokud má proces nižší úroveň zpříjemnění (pod nulou), bude méně pravděpodobné, že se vzdá využití svého procesoru (ne příliš pěkné, je to?). Na druhou stranu proces s vysokou hodnotou zpříjemnění (překračující nulu) s větší pravděpodobností přestane využívat CPU.

Snadný způsob, jak si to zapamatovat, je, že pokud je někdo (nebo proces) opravdu milý, má větší sklon sdílet s ostatními. Pokud nejsou příliš milí, mají tendenci více chránit to, co jim patří (v tomto případě zdroje CPU).

Také, pokud není nedostatek zdrojů, i procesy s vysokou úrovní slušnosti budou využívat veškerý dostupný čas CPU. Proces vydá své zdroje pouze tehdy, když dojde k nedostatku šířky pásma.

Přehled priority

Nyní, když máme všechny souvislosti související s prioritou procesu, podívejme se na některé způsoby zobrazení těchto informací na terminálu.

Nejrychlejším a nejzákladnějším způsobem zobrazení informací o jemnosti je použití top příkaz. Ve výchozím nastavení zobrazuje tyto informace ve čtvrtém sloupci (zleva doprava), a proto nevyžaduje žádné další možnosti ani příznaky.

Další a trochu složitější metodou je použití ps příkaz s vydatnou pomocí možností formátování. Následující příkaz zobrazí procesy s jejich ID procesů, názvem, úrovní kvality a třídou plánování (seřazeno sestupně):

[tcarrigan@localhost ~]$ ps axo pid,comm,nice,cls --sort=-nice

Nyní v reálném čase:

Manipulace se stávající půvabností

Nyní víme, jak se dívat na slušnost existujícího procesu, ale co když tato hezká úroveň nevyhovuje našim potřebám? Jak můžeme tyto hodnoty změnit, abychom z našeho systému vytěžili maximum? No, pokud máte konkrétní proces, který požírá zdroje, které potřebujete jinde, můžete snížit pěknou úroveň tohoto specifického procesu. K tomu použijeme renice příkaz.

Poznámka :pouze uživatel root může snížit úroveň zpříjemnění (zvýšit prioritu). Neprivilegovaní uživatelé mohou zvýšit pěkné úrovně, ale nemohou je snížit bez oprávnění root.

Podívejte se na tento sleep 500 proces. Má PID 23990 a výchozí příjemnou úroveň 0.

[tcarrigan@localhost ~]$ ps -o pid,comm,nice 23990
    PID COMMAND          NI
  23990 sleep             0

Pokud bych chtěl, aby byl tento proces méně prioritní, použil bych následující renice příkaz:

Aby byl proces důležitější (snížení úrovně nice), použili byste stejnou syntaxi příkazu jako privilegovaný uživatel.

[ Bezplatný cheat:Slovník Kubernetes ] 

Ještě poslední věc

Dobře, než skončíme, je tu ještě jeden trik, který jsem sem chtěl zahrnout. Pokud se chystáte spustit proces, který má obvykle výchozí úroveň nice, která je nežádoucí, můžete tento parametr ve skutečnosti nastavit při vytváření procesu. Použijeme sleep příkaz znovu. Tentokrát jej však vytvoříme pomocí nice příkaz (který předvolí proces na úroveň nice 10).

Konkrétní úroveň nice můžete nastavit pomocí stejného příkazu s následující syntaxí:

[tcarrigan@localhost ~]$ nice -n 19 sleep 500 &

Výše uvedený příkaz nastaví pozadí sleep 500 na pěknou úroveň 19.

Naučit se tyto příkazy a předvádět je bylo zábavné. Když v budoucnu narazím na problémy se systémovými prostředky nebo hladovými procesy, mohu upravit zdroje jim přidělené.


Linux
  1. Jak nastavit prioritu procesu Linux pomocí příkazů nice a renice

  2. Jak změnit prioritu procesu pomocí příkladů Linux Nice a Renice

  3. Jak omezit uživatelské příkazy v Linuxu

  1. 8 Linuxových příkazů pro efektivní řízení procesů

  2. Jak pozastavit/obnovit proces v Linuxu

  3. Jak se v Linuxu hlásí využití paměti?

  1. Jak zabít proces zombie na Linuxu

  2. Jak omezit využití CPU procesu v Linuxu

  3. Jak nainstalovat vtop na Linux