GNU/Linux >> Linux Esercitazione >  >> Linux

Linux nice and renice Command Tutorial (7 esempi)

La potenza della riga di comando di Linux può essere misurata dal fatto che puoi persino modificare facilmente la priorità di pianificazione dei processi utilizzando gli strumenti della riga di comando. Sì, è possibile e in questo tutorial discuteremo di come farlo usando nice e renice utilità.

Ma prima di farlo, vale la pena ricordare che tutti gli esempi in questo articolo sono stati testati su un sistema Ubuntu 16.04LTS.

Comandi Linux nice e renice

Mentre il comando nice consente di eseguire un programma/processo con priorità di pianificazione modificata, il comando renice consente di modificare la priorità di pianificazione di un processo già in esecuzione. Di seguito è riportata la sintassi generica per entrambi questi comandi:

nice [OPTION] [COMMAND [ARG]...]
renice [-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

Ecco cosa hanno da dire su di loro le rispettive pagine man:

Nice: 
Run COMMAND with an adjusted niceness, which affects process schedul?
ing. With no COMMAND, print the current niceness. Niceness values
range from -20 (most favorable to the process) to 19 (least favorable
to the process).
Renice:
Renice alters the scheduling priority of one or more running processes.
The following who parameters are interpreted as process ID's, process
group ID's, or user names. Renice'ing a process group causes all pro?
cesses in the process group to have their scheduling priority altered.
Renice'ing a user causes all processes owned by the user to have their
scheduling priority altered. By default, the processes to be affected
are specified by their process ID's.

Di seguito sono riportati alcuni esempi in stile domande e risposte che ti daranno un'idea migliore di come funzionano questi strumenti.

Q1. Come verificare la correttezza dei programmi/processi in esecuzione?

Sì, si dovrebbe prima sapere come controllare la priorità di pianificazione esistente prima di modificarla. Se si tratta del processo che stai per eseguire, dovresti sapere che la priorità di pianificazione predefinita è sempre 0.

Ad esempio, abbiamo eseguito il seguente processo:

./test-new

E confermato la priorità usando il seguente comando:

ps -lu himanshu | grep test-new

Qui, "himanshu" è l'utente che possiede il processo "test-new". Di seguito è riportato l'output prodotto dal comando precedente:

0 S  1000  6306  6125  0  80   0 -   508 hrtime pts/18   00:00:00 test-new

Il valore nell'ottava colonna è un buon valore e, come puoi vedere, è zero.

Q2. Come funziona il comando?

Quindi ora venendo al punto, come funziona il bel comando? È facile:usa lo strumento nel modo seguente:

nice -PRIORITY COMMAND

Ad esempio, se voglio che la priorità di pianificazione sia 10, ecco come posso farlo:

nice -10 ./test-new

Di seguito è riportato l'output del comando ps in questo caso, a conferma che la priorità è stata modificata in 10.

0 S  1000  6694  6125  0  90  10 -   508 hrtime pts/18   00:00:00 test-new

T3. Come rendere piacevole il lavoro con valori negativi?

Come già accennato all'inizio, i valori di gentilezza vanno da -20 a 19, con il primo più favorevole, mentre il secondo è il minimo. Nel caso in cui desideri associare un valore positivo negativo al processo, dovrai utilizzare il doppio trattino.

Ad esempio, 

sudo nice --10 ./test-new

Si noti che è necessario disporre dei privilegi di root per associare un valore negativo negativo a un processo. E proprio per questo motivo, il tuo comando ps per confermare la nuova gentilezza dovrebbe contenere 'root' invece dell'altro nome utente.

$ ps -lu root | grep test-new

Ecco l'output prodotto da questo comando nel nostro caso:

4 S 0 7054 7053 0 70 -10 - 508 - pts/18 00:00:00 test-new

Quindi puoi vedere che il processo è ora in esecuzione con un buon valore di -10.

Q4. Come aggiungere un valore intero impostato a niceness?

Puoi regolare il valore piacevole usando l'opzione della riga di comando -n, che aggiunge un valore intero impostato alla gentilezza. Per impostazione predefinita, questo valore impostato è 10, anche se puoi anche passare un valore diverso.

-n, --adjustment=N

Ad esempio:

nice --adjustment=5 ./test-new

Ed ecco l'output, il comando ps prodotto in questo caso:

0 S 1000 7314 6125 0 85 5 - 508 hrtime pts/18 00:00:00 test-new

Quindi puoi vedere che è stata impostata una priorità di 5.

Q5. Come modificare la priorità dei processi in esecuzione?

Mentre il comando nice viene utilizzato durante l'avvio dei programmi, il comando renice consente di modificare la priorità di un processo in esecuzione. Ad esempio, ecco come abbiamo modificato la priorità del processo "test-new" già in esecuzione da 5 a 15.

renice -n 15 -p 7314

L'argomento -p è per l'ID processo. Di seguito è riportato l'output prodotto dal comando precedente:

7314 (process ID) old priority 5, new priority 15

E il bel valore è stato effettivamente cambiato a 15.

Q6. Come modificare la priorità per tutti i processi appartenenti a un gruppo?

Puoi usare l'opzione -g per questo. Ad esempio:

renice -n 20 -g howtoforge

Il comando sopra cambierà la priorità di tutti i processi appartenenti al gruppo 'howtoforge'.

Q7. Come modificare la priorità per tutti i processi appartenenti a un utente?

Per modificare la priorità di tutti i programmi associati a un utente, utilizzare l'opzione -u. Ad esempio:

renice -n 5 -u himanshu

Naturalmente, un normale utente della riga di comando di Linux di solito non si trova in situazioni in cui questi strumenti sono necessari, ma è sempre bene avere conoscenza di importanti strumenti della riga di comando, e nice e renice sono tra questi. La cosa buona è che la curva di apprendimento ad essi associata non è affatto ripida. Abbiamo già discusso la maggior parte delle opzioni qui. Per ulteriori informazioni su queste utilità, vai alle loro pagine man, qui e qui.


Linux
  1. 7 Esempi di comandi Linux df

  2. Esempi di comandi mkdir e rmdir in Linux

  3. Esempi di comandi rm in Linux

  4. ps Esempi di comandi in Linux

  5. bei esempi di comandi in Linux

Tutorial sui comandi Linux nm per principianti (10 esempi)

Esercitazione sui comandi OD Linux per principianti (6 esempi)

Linux w Command Tutorial per principianti (5 esempi)

Tutorial sui comandi Linux ss per principianti (8 esempi)

Opzioni di comando ed esempi di Tee Command in Linux

Esempi di comandi id in Linux