Guida/Tutorial su Linux/Unix: incrementiamo la priorità dei processi in esecuzione.
Oggi scopriremo un trucco molto utile: impostare manualmente la priorità dei processi in esecuzione. Andiamo nel dettaglio, e vediamo come agire.
Pensiamo di possedere un sistema ad un solo processore.
Unix (soprattutto Linux) , come tutti sanno, è un sistema in grado di eseguire diverse operazioni in contemporanea (multitasking)…solo apparentemente,però!
Infatti una bella fetta del lavoro viene effettuato dal processore, che si occupa di eseguire i processi e di gestire le operazioni multiple, suddividendo il tempo dedicato ai processi in esecuzione in contemporanea in base ad una scala di misura che, in unix, si chiama NICE.
Il valore NICE è un numero intero associato ad ogni processo, che può avere valori da -20 a +20 , che cambia con questo criterio : più tempo il processore deve dare al processo, più basso deve essere il valore di NICE associato e, quindi, più veloce sarà l’esecuzione del processo in oggetto.
Facciamo un esempio, se avviamo in contemporanea due istanze del programma sort (che ordina un file) sullo stesso file, la prima con un nice -15 e la seconda con nice +10, nonostante siano state avviate contemporaneamente, la prima istanza sarà molto più veloce della seconda.
Facciamo un esempio pratico.
Apriate un terminale,e scrivete
ps al
L’output sarà:
malefika:~$ ps al
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
0 0 1061 1 2 0 0 1704 472 n_tty_ Ss+ tty2 0:00 /sbin/getty
0 0 1660 1 2 0 0 1704 476 n_tty_ Ss+ tty1 0:00 /sbin/getty
Guardate la colonna COMMAND e la colonna NI: la prima evidenzia il pathname del processo, la seconda il valore di NICE. Vedremo che i processi di sistema in esecuzione hanno tutti la stessa priorità (il valore di NICE è a 0 in tutti). Guardiamo la process list completa. Il comando per questo è
ps xal
Vediamo un pezzo dell’ output:
malefika:~$ ps axl
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 0 1 0 20 0 2632 1520 poll_s Ss ? 0:01 /sbin/init
1 0 2 0 15 -5 0 0 kthrea S< ? 0:00 [kthreadd]
1 0 3 2 -100 - 0 0 migrat S< ? 0:00 [migration]
1 0 4 2 15 -5 0 0 ksofti S< ? 0:02 [ksoftirqd]
5 0 5 2 -100 - 0 0 watchd S< ? 0:00 [watchdog/]
1 0 6 2 15 -5 0 0 worker S< ? 0:00 [events/0]
Avete visto come cambiano i valori? Ci sono dei processi che hanno già priorità più elevata rispetto a quelli visti prima.
NB : priorità alta = NICE basso.
Adesso vediamo come gestire la priorità da riga di comando. Lo possiamo fare in due modi:
- Vogliamo aumentare/diminuire la priorità prima di mandare il processo in esecuzione, e desideriamo eseguirlo con la priorità che abbiamo deciso: è semplice, infatti il nice, oltre che un indice, è anche un comando shell. Il comando nice è utile per aggiungere/sottrarre la quantità specificata nell’argomento -n. Di standard ogni programma parte con valore di nice uguali a 0. Quindi se, ad esempio, desideriamo ordinare un file di testo con un numero su ogni linea, in ordine crescente , con priorità elevatissima ( -15, il massimo è -20), scriveremo:
-
nice -d -15 sort -n file_di_testo.txtOppure:
nice -d <incremento_o_decremento> <comando> <argomenti_comando> - Desideriamo aumentare/diminuire la priorità di un processo che è già in esecuzione: adesso abbiamo bisogno del pid e del valore corrente del nice di questo processo. Immaginiamo di voler modificare la priorità del processo nautilus. Da shell, diamo il comando:
ps axl | grep nautilusFacciamo attenzione alla terza ed alla sesta colonna : il pid e il nice del processo. L’output sarà:
malefika:~$ ps axl | grep nautilus
0 1000 1938 1834 20 0 92924 31260 poll_s S ? 0:19 nautilusIl pid del nautilus è 1938,e il nice precedente è 0. Immaginiamo di voler rallentare l’esecuzione, diminuendo la priorità. Dobbiamo aggiungere, ipotizziamo, 10 al valore del nice di nautilus corrente, e lo faremo con il comando renice:
renice 10 -p 1938In generale:
renice <incremento_o_decremento> -p <pid_processo>
Se volete modificare la priorità dei vari processi, fatelo solo se ne avete realmente necessità, ed attenzione a quello che combinate dietro ai server, se maneggiate in malo modo il nice, potreste bloccare il sistema.
Spero che tu abbia trovato quello che desideravi, altrimenti puoi digitare l’argomento che ti interessa nel campo cerca, in alto a destra, di questo sito e premere invio.
Onwebinfo.com, sito di consigli, trucchi, programmi gratuiti, guide e wizard ti ringrazia per la visita e spera di averti nuovamente come lettore..
Leggi altri articoli correlati:
- Ubuntu: come convertire facilmente le pagine del man nel formato PDF
- Linux: effettuare un backup dell’ MBR.
- Come eliminare i file inutili con Linux.
- Dpkg: i comandi che dovete conoscere su questo Package Manager
- Linux: come fare per condividere cartelle con altri PC in una rete domestica.
- Come vedere se la versione di Linux che abbiamo è a 32 o 64 bit
- Come copiare i file con Scp
- Come monitorare il traffico della nostra rete.














