Prioritu procesu můžete změnit z příkazové řádky.
Rychlá navigace
Windows 7, 8, 10
Běžící proces
Na Windows můžete změnit prioritu běžícího procesu příkazem wmic
.
Pokud znáte PID (které najdete např. ve Správci úkolů na záložce Podrobnosti):
wmic process where processid=12345 CALL setpriority 32
Pokud PID neznáte, můžete změnit prioritu podle jména EXE souboru:
wmic process where name="app.exe" CALL setpriority 32
Prioritu můžete nastavit pomocí čísla, které představuje bitovou mapu, kde každý bit znamená jednu prioritu. Alternativně můžete použít klíčové slovo (resp. dvě slova, která musíte uvést do uvozovek):
- 32 „
normal
“ = výchozí hodnota pro všechny programy – všechny běží rovnoměrně stejně rychle. - 64 „
idle
“ = program bude moci využít jen zbytkový výkon procesoru, který není využit žádným jiným programem. Doporučeno pro dlouho běžící procesy (komprese souborů, převod videa, atd.) - 128 „
high priority
“ = program poběží s nejvyšší prioritou a spotřebuje skoro celý výkon procesoru, ostatní programu poběží jen velmi pomalu. Doporučeno pro kritický proces (např. databáze nebo HTTP démon na webovém serveru). - 256 „
realtime
“ = program bude mít rezervovaný veškerý výkon procesoru, ostatní programy i OS pravděpodobně zamrznou. Tuto prioritu může nastavit jen adminitrátor. Nikdy tuto prioritu nepoužívejte, pokud nevíte, co přesně zvolený program dělá a co může její nastavení způsobit!!! Doporučeno pro programy, které nic nedělají, ale když musí něco udělat, musí to udělat okamžitě a závisle na stavu využití procesoru; např. Správce úloh, který jednou za sekundu aktualizuje informace o využití PC. - 16384 „
below normal
“ = program poběží trochu pomaleji než ostatní programy, aby je nezdržoval víc, než je potřeba. Doporučeno pro programy na pozadí, které nejsou kritické a čas od času provádí nějaké náročnější operace (např. synchronizace cloudu). - 32768 „
above normal
“ = program poběží trochu rychleji než ostatní programy, aby měl jistotu, že nezamrzne v případě nějaké náročnější operace způsobené jiným programem. Doporučeno pro programy, které musí nepřetržitě plynule a nerušeně zpracovávat data (např. přehrávání či nahrávání videa a zvuku).
Poznámka: OS i programy mohou (dle práv) měnit svoji prioritu jak uznají za vhodné. Nikdy ale nemohou sami nastavit prioritu realtime. Některé programy mají prioritu v nastavení (např. ve Winrar je to pod Pokročilé – Systém – Archivace na pozadí; v Media Player Classis pod Možnosti – Přehrávač – Spouštět se zvýšenou prioritou).
Spuštění programu
Pokud chcete spustit nový program, můžete to provést příkazem start
:
> start /normal app.exe
Místo priority normal
(která je výchozí a není ji potřeba ani uvádět) můžete použít klíčová slova low
(odpovídá idle prioritě), high
, realtime
, abovenormal
a belownormal
.
Výhoda příkazu start je v tom, že může spustit i program uvedením souboru, který je s ním asociován (stejně, jako když ve Windows dvojkliknete na soubor):
> start /abovenormal dane-2010.xls (spustí Excel s vyšší prioritou a otevře daný soubor)
Nevýhoda příkazu start
je, že pokud spouštíte z příkazové řádky program, který v příkazové řádce běží, otevře se v novém okně – což je v tomto případě potřeba k tomu, aby mohlo být nové okno spuštěno s jinou prioritou. Pokud příkaz nastavíte do zástupce, nebo spouštíte aplikaci plochy (např. Excel), otevře se jen jedno okno.
Pokud chcete spustit BATCH (*.bat
nebo *.cmd
), musíte ho spustit pomocí příkazu příkazového řádku (cmd
):
> start /low cmd /c process.cmd
Pokud byste totiž spustili BATCH přímo, ukončilo by to stávající BATCH (pokud byl příkaz spuštěn v něm), otevřelo nové okno Příkazové řádky a v něm by se teprve spustil BATCH. Použitím start cmd /c
se sice otevře nové okno, ale po jeho skončení se zase automaticky zavře (což zajišťuje parametr /c
).
Linux a ostatní
Většina ostatních OS (Linux, MacOS, Android, atd.) je založena na unixovém jádře, takže podporuje příkazy nice
a renice
. Slovo nice se v tomto kontextu překládá jako milý (hodný) a nastavuje milost (niceness) procesu – čím má program vyšší milost, tím je milejší k ostatním programům, protože spotřebovává méně procesorového času.
Milost (niceness) nastavujete v rozsahu -20 až +20 parametrem -n
(nebo --priority
), kde 0 je výchozí (normální priorita), -20 odpovídá Windowsovému Realtime a +20 prioritě idle (některé verze Linux nemusí hodnoty +20 a/nebo -20 podporovat, proto je jistější používat rozsah -19 až +19). Bez parametru milosti spustí příkaz program s výchozí prioritou (0), což se hodí, pokud samotný příkazový řádek (nebo program, který příkaz používá) má změněnou prioritu.
Spuštění programu
Za příkaz nice
zadejte jméno programu a parametry stejně jako u sudo
:
> nice program -pX --param "value" > nice -n 10 program -pX --param "value"
Na většině systémů mohou běžní uživatelé nastavovat pouze nižší prioritu (kladné hodnoty), takže pro záporné hodnoty potřebujete právo administrátora:
> sudo nice -n -10 program -pX --param "value"
Běžící proces
Příkaz renice
slouží pro změnu priority již spuštěného programu. K jeho identifikaci musíte znát jeho PID (číslo procesu, -p
nebo --pid
), GID (skupina, pod kterou běží, -g
nebo --pgrp
) nebo UID (číslo uživatele, který ho spustil, -u
nebo --user
). V případě UID a GID pak příkaz změní prioritu všem procesům spuštěným daným uživatelem nebo skupinou.
Všechny údaje můžete zjistit příkazem top
, který vypíše procesy nejvíce využívající procesor (a obvykle chcete snížit jejich prioritu).
Stejně jako u nice
mohou běžní uživatelé nastavovat pouze kladné hodnoty (nižší priority) a to pouze programům, které sami spustili.
> renice -n 10 -p 12345 > sudo renice -n -10 -g 123 > sudo renice -n 0 -u 1234
V případě použití PID není potřeba uvádět parametry -n
a -p
a stačí uvést jen hodnoty, přičemž se doporučuje prioritu uvést s +
aby byla poznat:
> renice +10 12345
V případě uživatele můžete použít i jeho jméno a můžete uvést i více jmen oddělených mezerou:
> sudo renice -n 10 -u johndoe janedoe
Všechny tři (resp. 4) typy parametrů (-p
, -g
, -u
) můžete kombinovat:
> sudo renice +10 12345 -p 12346 12347 -g 123 124 -u 1234 janedoe