Nice je nástroj příkazového řádku v Linuxu, který vám umožňuje nastavit hodnotu „hezkosti“ procesů. Používá se ke spuštění procesu s definovanou prioritou. Když spustíte jakýkoli program nebo proces bez definované priority, nice nastaví výchozí prioritu 10. Niceness 19 je nejnižší priorita, zatímco -20 je nejvyšší priorita. Příkaz nice je velmi užitečný, když několik procesů vyžaduje více zdrojů, než může poskytnout CPU.
Renice je velmi podobná nice a používá se ke změně priority již běžícího procesu. Pokud váš systém běží velmi pomalu kvůli zdlouhavému procesu, můžete snížit nebo zvýšit prioritu tohoto procesu pomocí příkazu renice.
Priorita je hodnota, kterou můžete přiřadit každému procesu, a jádro tuto hodnotu používá k plánování provádění procesu.
- 0–99 je hodnota priority používaná pro přiřazení priority v reálném čase.
- 100–139 je hodnota priority, kterou uživatelé přiřazují.
V tomto příspěvku vám ukážeme, jak nastavit prioritu procesu Linux pomocí příkazů Nice a renice.
Předpoklady
- Server Linux na cloudové platformě Atlantic.Net
- Heslo uživatele root nakonfigurované na vašem serveru
Krok 1 – Vytvořte cloudový server Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu, CentOS nebo Rocky Linux s alespoň 2 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte na svůj server, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
Nebo
dnf update -y
Krok 2 – Zobrazení pěkné hodnoty procesu
V Linuxu, když spustíte jakýkoli proces nebo program, získá výchozí prioritu 0.
Pro zobrazení priority běžícího procesu můžete použít příkaz ps nebo top.
Chcete-li zkontrolovat hodnotu Nice procesu Nginx, spusťte následující příkaz:
ps -fl -C nginx
Ve sloupci NI byste měli vidět prioritu procesu Nginx, jak je uvedeno níže:
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 5 S www-data 3156 3155 0 80 0 - 21700 - 10:33 ? 00:00:00 nginx: worker process
Chcete-li zobrazit pěkné hodnoty všech běžících procesů, použijte příkaz top:
top
Ve sloupci NI byste měli vidět pěkné hodnoty všech procesů.
Krok 3 – Změňte prioritu procesu pomocí příkazu Nice
Příkaz nice nemůže změnit prioritu běžícího procesu. Můžete však použít příkaz nice ke spuštění jakéhokoli programu s předdefinovanou prioritou.
Například spusťte špičkový program s pěknou hodnotou 5:
nice -5 top
Tím se přiřadí priorita 5 nahoře.
Nyní otevřete další terminál a ověřte prioritu pro horní, jak je znázorněno níže:
ps -fl -C top
Ve sloupci NI byste měli vidět prioritu nejvyššího příkazu:
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 4 S vyom 7966 7277 0 85 5 - 7323 poll_s 11:41 pts/14 00:00:00 top
Pokud nastavíte hodnotu priority vyšší než 0, nepotřebujete práva root. Oprávnění root budete potřebovat, pokud chcete zvýšit prioritu jakéhokoli procesu přiřazením záporné hodnoty.
Chcete-li například zvýšit prioritu příkazu top na -20, použijte následující příkaz:
sudo nice --20 top
Krok 4 – Změňte prioritu spuštěného procesu pomocí příkazu renice
Jak víte, příkaz nice nemůže změnit prioritu žádného běžícího procesu. V tomto případě budete muset ke změně priority běžícího procesu použít příkaz renice.
Zde použijeme nejvyšší proces, který již běží.
Nejprve ověřte aktuální prioritu nejvyššího procesu pomocí následujícího příkazu:
ps -fl -C top
Ukázkový výstup:
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 4 S vyom 7966 7277 0 85 5 - 7323 poll_s 11:41 pts/14 00:00:03 top
Jak vidíte, priorita nejvyššího procesu je 5.
Nyní změníme prioritu nejvyššího procesu na -15.
Nejprve najděte PID nejvyššího procesu pomocí následujícího příkazu:
pidof top
Ukázkový výstup:
7966
Nyní spusťte následující příkaz zadáním hodnoty priority a PID top:
sudo renice -n -15 -p 7966
Ukázkový výstup:
7966 (process ID) old priority 5, new priority -15
Můžete také změnit prioritu všech procesů vlastněných konkrétním uživatelem.
Například změňte prioritu všech procesů vlastněných uživatelem root, spusťte:
sudo renice -n 10 -u root
Závěr
V této příručce jste se naučili, jak nastavit a změnit prioritu jakéhokoli procesu pomocí příkazu nice a renice. Nyní můžete snadno zvýšit a snížit prioritu procesu podle svých potřeb. Začněte používat nice and renice na svém hostingovém účtu VPS od Altantic.Net.