Cambia la priorità del processo con i comandi nice e renice
È possibile modificare se un determinato processo deve avere la priorità nel consumo della CPU con i comandi nice e renice.
Ogni singolo processo in esecuzione su una macchina Linux ha una priorità per la sua esecuzione, che può essere tradotta nella quantità di potenza della CPU che verrà assegnata a quel processo per l'esecuzione.
Naturalmente, in Linux puoi controllare quanto vuoi, quindi puoi anche controllare quanta priorità deve avere qualcosa nel sistema quando viene eseguito.
Come verificare la bontà o la priorità di un processo?
Se esegui il comando ps, puoi vedere quali processi sono attualmente in esecuzione sul tuo sistema Linux e quale priorità hanno attualmente:
Ora, se vuoi eseguire qualcosa con più priorità (mentre la priorità sarebbe una maggiore potenza della CPU), puoi utilizzare il comando 'nice' per eseguirlo e controllare quanto è gradevole questo particolare processo per il resto del sistema.
Come usare il comando nice?
Per utilizzare il comando nice, devi essere root o avere funzionalità sudo nel sistema, poiché si tratta di un comando molto delicato.
Supponendo che tu sia root, dovresti quindi digitare:
nice -n 12 <command>
Questo dirà al sistema che desideri eseguire il
A cosa serve?
Immagina di avere un processo che esegue diversi calcoli e che può richiedere diversi secondi o addirittura minuti per essere eseguito. Maggiore è la potenza assegnata a quel processo, più velocemente verrà eseguito e terminato. È qui che questo comando può diventare utile anche se pericoloso.
Se disponi di uno script che esegue numerosi processi, in un ambiente condiviso o in un server di produzione, l'esecuzione di qualcosa con una priorità più alta potrebbe rendere il server non risponde o difettoso. È perché la CPU sarà dedicata quasi esclusivamente all'esecuzione di qualunque processo tu abbia chiamato con una priorità alta (o valore negativo), quindi non risponderà o addirittura ucciderà il server, se il tuo script ha un ciclo infinito, ad esempio.
Come modificare una priorità su un processo in esecuzione con il comando renice?
Diciamo che hai iniziato a eseguire un processo con il comando nice, ma dopo un po' di tempo vuoi cambiarlo, anche se hai bisogno che il processo continui a funzionare, non che lo interrompa o lo riavvii. È qui che entra in gioco il tuo comando "renice".
Il comando 'renice' può essere utilizzato in modo molto simile e utilizzando lo stesso concetto del comando nice, tuttavia, ha lo scopo di modificare la priorità che hai già chiamato nicely 😄
Quindi, se stai già eseguendo un comando con nice, puoi modificare la sua priorità con renice nel modo seguente (di nuovo, eseguendolo come utente root):
renice -n -10 <command>
Ciò cambierà la precedente priorità del processo che diventerà più importante, quindi con più potere ora (-10).
Puoi anche usarlo per tutti i processi che appartengono a un utente specifico, ad esempio:
renice -n -10 -u helder
Ciò cambierà la priorità di tutti i processi che appartengono all'utente holder.
Allo stesso modo, puoi utilizzare opzioni come -p e specificare l'ID processo (o pid) o -g e utilizzare l'ID gruppo dei processi.
Conclusione
Puoi vedere come Linux ti permette di controllare tutto il possibile sul tuo sistema e ti permette di poterlo usare a tuo favore.
Avere la capacità di assegnare e riassegnare le priorità ai vostri processi, ci dà molto potere per poter controllare come il nostro sistema gestisce i processi, quanto è efficiente e anche a cosa dare priorità per poter soddisfare qualsiasi vostra necessità.