GNU/Linux >> Znalost Linux >  >> Linux

Jak změnit prioritu procesu v Linuxu

V ekosystému Unix je proces běžící program. Jakýkoli program běžící na vašem Linuxovém boxu je tedy proces. Na vašem Linuxovém boxu může současně běžet jeden nebo více procesů. Informace o aktivních procesech můžeme zobrazit pomocí ps příkaz. Ve výchozím nastavení příkaz ps zobrazuje pouze procesy aktuálního uživatele. Pro zobrazení všech procesů můžete použít příkaz "ps -ef" (samozřejmě bez uvozovek). Pro zobrazení uživatele procesu používáme "ps -u". Doufám, že máte základní představu o procesech Linuxu. Pojďme nyní k dnešnímu tématu – jak změnit prioritu procesu v Linuxu pomocí pěkného a renice příkazy.

Jak možná víte, linuxové jádro standardně považuje všechny procesy za stejně důležité a každému procesu přiděluje stejné množství času CPU. Někdy můžete chtít zvýšit nebo snížit prioritu určitých procesů, abyste využili více času CPU. Tady pomáhají příkazy nice a renice. Příkaz Nice se používá ke spuštění procesu s uživatelsky definovanou prioritou, zatímco příkaz renice se používá ke změně priority běžícího procesu. Obecně platí, že příkazy nice a renice se používají ke změně priority procesu, než je výchozí priorita.

Změňte prioritu procesu pomocí příkazu Nice

Zobrazení výchozí priority procesu

Kdykoli se proces spustí normálně, získá výchozí hodnotu priority nula .

Používáme program cmus , přehrávač médií příkazového řádku pro účely této příručky.

Spusťte jej pomocí příkazu:

$ cmus &

Poznámka: Pokud je příkaz ukončen ovládacím operátorem & , shell provede příkaz na pozadí v podshell.

Nyní se podívejme na běžící procesy pomocí příkazu:

$ ps -al

Ukázkový výstup:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 T 1000 13829 13704 0 80 0 - 39431 signal pts/0 00:00:00 cmus
0 R 1000 13848 13704 0 80 0 - 8148 - pts/0 00:00:00 ps

Prohlížejte běžící procesy pomocí příkazu ps

Jak vidíte na výše uvedeném výstupu, hodnota jemnosti je uvedena pod záhlavím sloupce "NI" . Je tedy jasné, že všechny procesy mají výchozí hodnotu priority nula.

Zahajte proces pomocí pěkného nástroje

Pokud spustíte proces příkazem nice bez jakýchkoli argumentů, získá výchozí hodnotu 10 . Zde 10 je hodnota nebo priorita slušnosti. Hodnoty jemnosti se pohybují od -20 (nejvhodnější pro proces) do 19 (nejméně příznivé pro proces). Jednoduše řečeno, záporné hodnoty (např. -20) dávají vyšší prioritu procesu a kladné hodnoty (např. 19) nižší prioritu.

Nyní zastavme běžící program cmus příkazem:

$ kill -9 13829

Zde je 13829 PID programu cmus. Tuto hodnotu uvidíte pod nadpisem "PID" ve výše uvedeném výstupu.

Nyní spusťte program cmus pomocí nástroje 'nice'.

$ nice cmus &

Zkontrolujte běžící procesy pomocí příkazu:

$ ps -al

Ukázkový výstup:

 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
 0 T 1000 13957 13704 0 90 10 - 55815 signal pts/0 00:00:00 cmus
 0 R 1000 13985 13704 0 80 0 - 8148 - pts/0 00:00:00 ps

Spusťte proces pomocí pěkného nástroje

Vidíte, nyní má proces cmus výchozí hodnotu zpříjemnění 10 , což znamená, že jeho priorita byla změněna.

Začněte proces s pěkným nástrojem s nižší prioritou

Stejný proces můžete také spustit s konkrétní hodnotou zpříjemnění, například 15 , jako níže.

Zabijte proces pomocí příkazu kill:

$ kill -9 13957

Znovu začněte proces s hodnotou slušnosti 15:

$ nice -15 cmus &

Poznámka: Zde nezaměňujte - (pomlčka) s mínusem. Používáme - (pomlčka) pro předání hodnoty. Pro přiřazení kladné hodnoty tedy použijeme -15. Podobně pro přiřazení záporné hodnoty používáme --15 (tj. dvojitá pomlčka).

Zkontrolujme hodnotu niceness pomocí příkazu ps -al:

$ ps -al

Ukázkový výstup:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 T 1000 14060 13704 0 95 15 - 55815 signal pts/0 00:00:00 cmus
0 R 1000 14069 13704 0 80 0 - 8148 - pts/0 00:00:00 ps

Spusťte proces pomocí pěkného nástroje s nižší prioritou

Vidíte, nyní má proces cmus hodnotu slušnosti 15.

Ve výše uvedených příkladech jsme spustili procesy s nižší prioritou. Pamatujte, že kladná hodnota vlídnosti představuje nižší prioritu .

Začněte proces s nástrojem Nice s vyšší prioritou

Již víte, že záporná hodnota přitažlivosti představuje vyšší prioritu. Vezměte prosím na vědomí, žeběžní uživatelé nemají povoleno spustit proces s vyšší prioritou. Chcete-li spustit jakýkoli proces s vyšší prioritou, musíte být uživatel root .

Chcete-li tedy zahájit proces pomocí pěkného nástroje s nižší prioritou, například -15 , spusťte následující příkaz:

# nice --15 cmus &

Ukázkový výstup:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 14331 14306 0 80 0 - 20531 poll_s pts/0 00:00:00 sudo
4 S 0 14332 14331 0 80 0 - 13796 wait pts/0 00:00:00 su
4 S 0 14333 14332 0 80 0 - 5736 wait pts/0 00:00:00 bash
4 T 0 14358 14333 0 65 -15 - 55643 signal pts/0 00:00:00 cmus
0 R 0 14366 14333 0 80 0 - 8148 - pts/0 00:00:00 ps

Spusťte proces pomocí nástroje Nice s vyšší prioritou

Spustit procesy pomocí volby -n

Můžete také použít -n možnost zvýšit nebo snížit prioritu.

Chcete-li zvýšit prioritu, spusťte následující příkaz jako root uživatel:

# nice -n -15 cmus &

Chcete-li snížit prioritu, spusťte následující příkaz jako normálně uživatel:

$ nice -n 15 cmus &
Stáhnout - Zdarma e-kniha:"Výukový program pro Amazon S3"

Změňte prioritu běžícího procesu pomocí příkazu Renice

Zatím jsme viděli, že jsme spustili proces s uživatelsky definovanou prioritou. Nyní změníme prioritu běžícího procesu pomocí příkazu renice.

Podívejme se na běžící procesy pomocí příkazu:

$ ps -al

Ukázkový výstup:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 T 1000 15059 14306 0 95 15 - 55815 signal pts/0 00:00:00 cmus
0 R 1000 15066 14306 0 80 0 - 8148 - pts/0 00:00:00 ps

Jak vidíte na výše uvedeném výstupu, cmus běží s nižší prioritou 15.

Chcete-li změnit aktuální hodnotu zpříjemnění běžícího procesu, například 18 , spusťte následující příkaz:

$ renice -n 18 -p 15059

Zde, 15059 je ID procesu procesu cmus.

Ukázkový výstup by byl:

15059 (process ID) old priority 15, new priority 18

Hodnotu jemnosti ověřte pomocí příkazu:

$ ps -al

Ukázkový výstup:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 T 1000 15059 14306 0 98 18 - 55815 signal pts/0 00:00:00 cmus
0 R 1000 15074 14306 0 80 0 - 8148 - pts/0 00:00:00 ps

Chcete-li jej změnit na zápornou hodnotu líbivosti (přiřadit vyšší prioritu), spusťte následující příkaz jako root uživatel:

# renice -n -20 -p 14749

Můžete dokonce změnit priority všech běžících skupin patřících do konkrétní skupiny, jak je uvedeno níže.

# renice -n -20 -g ostechnix

Výše uvedený příkaz změní prioritu všech běžících procesů, které patří do skupiny zvané ostechnix .

A také můžete změnit prioritu běžícího procesu vlastněného konkrétním uživatelem, například sk pomocí příkazu:

# renice -n -20 -u sk

Pro více možností vám doporučuji prostudovat si manuálové stránky obslužných programů nice a renice.

$ man nice
$ man renice

Doporučené čtení:

  • Jak zjistit, jak dlouho proces v Linuxu běží
  • Jak zobrazit informace o procesu pomocí procesů v systému Linux

Doufám, že máte základní představu o tom, co je to linuxový proces a jak změnit jeho prioritu pomocí pěkných a renice utilit. Doufám, že to pomůže.


Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz historie v Linuxu

  3. Jak změnit heslo v Linuxu (příkaz passwd)

  1. Jak používat příkaz historie Linuxu

  2. Jak změnit identitu systému Linux

  3. UNIX / Linux :Jak změnit vhodnost (prioritu) procesu

  1. Jak používat příkaz xargs pro Linux

  2. Jak používat Linuxový příkaz tee

  3. Jak používat příkaz Linux cd ke změně adresáře