GNU/Linux >> Znalost Linux >  >> Linux

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

Každý běžící proces v Unixu má přiřazenou prioritu.

Prioritu procesu můžete změnit pomocí nástroje nice a renice. Příkaz Nice spustí proces s uživatelsky definovanou prioritou plánování. Příkaz Renice upraví prioritu plánování běžícího procesu.

Linux Kernel naplánuje proces a podle toho každému z nich přidělí čas CPU. Ale když jeden z vašich procesů vyžaduje vyšší prioritu, aby získal více času CPU, můžete použít příkaz nice a renice, jak je vysvětleno v tomto tutoriálu.

Rozsah priority plánování procesu je od -20 do 19. nazvěte to jako pěkná hodnota.

Pěkná hodnota -20 představuje nejvyšší prioritu a pěkná hodnota 19 představuje nejnižší prioritu pro proces.

Ve výchozím nastavení, když se proces spustí, získá výchozí prioritu 0.

1. Zobrazení pěkné hodnoty procesu

Aktuální prioritu procesu lze zobrazit pomocí příkazu ps.

Sloupec „NI“ ve výstupu příkazu ps označuje aktuální hodnotu nice (tj. prioritu) procesu.

Spustíme testovací program nazvaný test.pl, který bude použit k předvedení příkazu nice a renice. Tento testovací program provede určité úkoly a bude chvíli běžet.

$ perl test.pl

Pokud provedete příkaz ps, jak je uvedeno níže, můžete si všimnout, že tento program test.pl má výchozí hodnotu nice 0 (podívejte se na sloupec NI v následujícím výstupu).

$ ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 R bala 6884  6424 99  80   0 -  1556 -      13:45 pts/3    00:05:54 perl test.pl

2. Spusťte program s menší prioritou

Místo spouštění programu s výchozí prioritou můžete použít příkaz nice ke spuštění procesu s konkrétní prioritou.

V tomto příkladu je test.pl spuštěn s pěknou hodnotou 10.

$ nice -10 perl test.pl

Poznámka: Pamatujte, že -10 ve výše uvedeném příkazu nastavuje prioritu procesu na 10. Příkaz – in nice znamená hypen, který používáme k předávání voleb příkazu.

Takže, abyste předali pěknou hodnotu 5, řeknete -5. Chcete-li překonat příjemnou hodnotu 6, řeknete -6.

Jak vidíte níže, tento program je nyní spuštěn s pěknou hodnotou 10, což znamená, že poběží s nižší prioritou ve srovnání s jinými programy, které jsou spouštěny ve výchozím nastavení.

$ ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 R bala 7044  6424 99  90  10 -  1556 -      13:58 pts/3    00:00:03 perl test.pl

3. Spusťte program s vysokou prioritou

Můžete také spustit program s vyšší prioritou. Záporná hodnota nice zvýší prioritu procesu. Hodnota tedy musí být specifikována s — (dvě pomlčky) před příkazem nice, jak je uvedeno níže.

# nice --10 perl test.pl

Chcete-li tedy předat hezkou hodnotu -5, přidáte dvě pomlčky před 5. Chcete-li předat hezkou hodnotu -6, přidáte dvě pomlčky před 6.

Jak vidíte níže, tento program je nyní spuštěn s příjemnou hodnotou -10, což znamená, že bude běžet s vyšší prioritou ve srovnání s jinými programy, které jsou spouštěny ve výchozím nastavení.

# ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 R root 3534  3234 99  70 -10 -  1557 ?      19:06 pts/1    00:00:56 perl test.pl

Poznámka:Běžným uživatelům není povoleno spouštět program s vyšší prioritou. Pouze uživatel root může spustit program s vysokou prioritou.

Pokud jako běžný uživatel zvýšíte prioritu, dostanete následující chybovou zprávu z nice command.

$ nice --10 perl test.pl
nice: cannot set niceness: Permission denied

Pamatujte, že po vytištění výše uvedené chybové zprávy bude program stále běžet s výchozí prioritou (tj. 0).

4. Změňte prioritu pomocí volby -n

Prioritu procesu lze upravit pomocí volby -n.

Zvýšit prioritu:

# nice -n -5 perl test.pl

Snížit prioritu:

# nice -n 5 perl test.pl

5. Změňte prioritu běžícího procesu

Prioritu již běžícího procesu lze změnit pomocí příkazu renice.

V tomto příkladu již běží program test.pl s pěknou hodnotou -10.

# ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 R root 3534  3234 99  70 -10 -  1557 ?      19:06 pts/1    00:00:56 perl test.pl

Hodnotu nice výše uvedeného programu můžeme změnit na -19, jak je ukázáno níže. Předejte id procesu výše uvedeného programu volbě -p.

# renice -n -19 -p 3534

Ověřte, že se hodnota nice změnila na -19.

# ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 R root 3534  3234 99  70 -19 -  1557 ?      19:06 pts/1    00:00:56 perl test.pl

6. Změňte prioritu všech procesů, které patří do skupiny

Pomocí volby -g můžete upravit prioritu všech procesů, které patří do skupiny. Následující příkaz změní hodnotu nice všech procesů, které patří k geekstuff, na 5.

# renice -n 5 -g geekstuff

7. Změňte prioritu všech procesů vlastněných uživatelem

Renice umožňuje změnit prioritu všech procesů vlastněných konkrétními uživateli, jak je uvedeno níže.

# renice -n 5 -u bala

Výše uvedený příkaz změní prioritu všech procesů vlastněných uživatelem bala. Všem procesům, které patří uživateli bala, přiřadí pěknou hodnotu 5.

# ps -fl -C "perl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 R bala 2720  2607 99  85   5 -  1556 -      14:34 pts/2    00:05:07 perl test.pl
0 R bala 2795  2661 99  85   5 -  1556 -      14:39 pts/3    00:00:09 perl 2.pl

Linux
  1. Linux nice and renice Command Tutorial (7 příkladů)

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

  3. Jak zabít proces v Linuxu pomocí příkazu?

  1. Jak zrychlit proces spouštění Linuxu pomocí příkladů příkazů Startpar

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

  3. pěkné příklady příkazů v Linuxu

  1. Jak najít a zabít zombie proces v Linuxu

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

  3. Jak obnovit všechna vlákna (a děti) jednoho procesu v Linuxu?