GNU/Linux >> Linux Esercitazione >  >> Linux

Come modificare la priorità del processo utilizzando Linux Nice e Renice Esempi

A ogni processo in esecuzione in Unix è assegnata una priorità.

Puoi cambiare la priorità del processo usando l'utilità nice and renice. Il comando Nice avvierà un processo con una priorità di pianificazione definita dall'utente. Il comando Renice modificherà la priorità di pianificazione di un processo in esecuzione.

Il kernel Linux pianifica il processo e alloca il tempo della CPU di conseguenza per ciascuno di essi. Tuttavia, quando uno dei tuoi processi richiede una priorità più alta per ottenere più tempo di CPU, puoi utilizzare il comando nice and renice come spiegato in questo tutorial.

L'intervallo di priorità della pianificazione del processo va da -20 a 19. Noi chiamalo come un bel valore.

Un bel valore di -20 rappresenta la priorità più alta e un bel valore di 19 rappresenta la priorità minima per un processo.

Per impostazione predefinita, quando un processo viene avviato, ottiene la priorità predefinita di 0.

1. Mostra il buon valore di un processo

La priorità corrente di un processo può essere visualizzata utilizzando il comando ps.

La colonna "NI" nell'output del comando ps indica il valore attuale (cioè la priorità) di un processo.

Lanceremo un programma di test chiamato test.pl che verrà utilizzato per dimostrare un comando piacevole e piacevole. Questo programma di test eseguirà determinate attività e sarà in esecuzione per un po'.

$ perl test.pl

Se esegui il comando ps come mostrato di seguito, puoi notare che questo programma test.pl ha il valore predefinito di 0 (guarda la colonna NI nell'output seguente).

$ 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. Avvia un programma con meno priorità

Invece di avviare il programma con la priorità predefinita, puoi utilizzare il comando nice per avviare il processo con una priorità specifica.

In questo esempio, test.pl viene lanciato con un buon valore di 10.

$ nice -10 perl test.pl

Nota: Ricorda che -10 nel comando precedente imposta la priorità di un processo su 10. Il comando – in nice sta per il trattino, che usiamo per passare le opzioni al comando.

Quindi, per passare un bel valore di 5, dirai -5. Per passare un bel valore di 6, dirai -6.

Come puoi vedere di seguito, questo programma viene ora avviato con un buon valore di 10, il che significa che verrà eseguito con una priorità inferiore rispetto ad altri programmi avviati per impostazione predefinita.

$ 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. Avvia un programma con priorità alta

Puoi anche avviare un programma con una priorità più alta. Un valore negativo negativo aumenterà la priorità del processo. Quindi, il valore deve essere specificato con un — (due trattini) davanti al bel comando come mostrato di seguito.

# nice --10 perl test.pl

Quindi, per passare un bel valore di -5, dovrai aggiungere due trattini davanti a 5. Per passare un bel valore di -6, dovrai aggiungere due trattini davanti a 6.

Come puoi vedere di seguito, questo programma viene ora avviato con un buon valore di -10, il che significa che verrà eseguito con una priorità maggiore rispetto ad altri programmi avviati per impostazione predefinita.

# 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

Nota:gli utenti regolari non sono autorizzati ad avviare un programma con una priorità più alta. Solo l'utente root può avviare un programma con priorità alta.

Come utente normale, se aumenti la priorità, riceverai il seguente messaggio di errore dal bel comando.

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

Si noti che dopo aver stampato il messaggio di errore precedente, il programma continuerà comunque a essere eseguito con la priorità predefinita (ad esempio:0).

4. Modifica la priorità con l'opzione -n

La priorità del processo può essere regolata con l'aiuto dell'opzione -n.

Aumenta la priorità:

# nice -n -5 perl test.pl

Diminuisci la priorità:

# nice -n 5 perl test.pl

5. Modifica la priorità di un processo in esecuzione

La priorità di un processo già in esecuzione può essere modificata utilizzando il comando renice.

In questo esempio, il programma test.pl è già in esecuzione con un buon valore di -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

Possiamo cambiare il bel valore del programma sopra a -19 come mostrato di seguito. Passa l'id di processo del programma sopra all'opzione -p.

# renice -n -19 -p 3534

Verifica che il valore corretto sia stato modificato in -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. Modifica la priorità di tutti i processi che appartengono a un gruppo

Usando l'opzione -g puoi modificare la priorità di tutti i processi che appartengono a un gruppo. Il comando seguente cambierà il bel valore di tutto il processo che appartiene a geekstuff a 5.

# renice -n 5 -g geekstuff

7. Modifica la priorità di tutti i processi di proprietà dell'utente

Renice permette di modificare la priorità di tutti i processi di proprietà di un determinato utente come mostrato di seguito.

# renice -n 5 -u bala

Il comando precedente cambierà la priorità di tutti i processi di proprietà dell'utente bala. Assegnerà un bel valore di 5 a tutti i processi che appartengono all'utente bala.

# 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. Comandi Linux:come manipolare la priorità del processo

  2. Come uccidere un processo su Linux usando il comando?

  3. Come combinare Ping e Traceroute su Linux usando esempi di comandi MTR

  4. renice Esempi di comandi in Linux

  5. Come modificare tutti i thread (e i figli) di un processo su Linux?

Come modificare la priorità di un processo in Linux

Come sospendere un processo e riprenderlo in un secondo momento in Linux

Nice and Renice:imposta la priorità del processo in Linux

7 esempi per gestire la scadenza e l'invecchiamento delle password Linux utilizzando chage

Come uccidere i processi in Linux usando kill, killall e pkill

Come tracciare e tracciare un processo Linux