Come fare in modo che `apt-get upgrade` usi meno risorse?


26

Quando corro sudo apt-get upgradecon molti pacchetti sul mio laptop di fascia bassa, ottengo un rallentamento del sistema percettibile, a volte con blocchi dello schermo fino a 3 secondi.

Esiste un modo per contrassegnare questo lavoro come priorità molto bassa, ovvero utilizzare pochissima CPU, MEM e HDD? Non mi interessa davvero se ci apt-get upgradevorranno due ore in più per terminare, voglio solo continuare a lavorare senza interruzioni durante l'aggiornamento.

Risposte:


26

Il comando nicepuò essere utilizzato per manipolare le priorità di pianificazione della CPU di processo . Il comando assegna un valore di "gentilezza" da -20 (più importante) a +19 (meno importante) al processo. La radice può assegnare qualsiasi valore, altri utenti solo quelli positivi (importanza minore). Il valore predefinito è 0.

nice -n <niceness> <command>

Per impostare la priorità di un comando apt-get sul valore minimo, è possibile utilizzare il comando

sudo nice -n 19 apt-get upgrade

Per impostare la priorità di un processo già in esecuzione, è renicepossibile utilizzare il comando :

renice -n <niceness> -p <pid>

Modifica: grazie a @David per aver menzionato il ionicecomando, che consente di manipolare la priorità di I / O del disco . Può mettere un processo in tre diverse classi:

  • Inattivo fornisce solo tempo al disco del processo, se nessun altro processo lo rivendica al momento.
  • Best-effort (classe predefinita). Ciò consente di assegnare priorità da 0 a 7, dove 0 è il più importante e 7 il meno. Puoi provare ad assegnare -n 7come livello di priorità.
  • I processi in tempo reale vengono gestiti prima di ogni altra cosa, sospendendo l'I / O del disco per altri processi, non appena lo richiedono da soli. Usare con cura!

IOnice combina la sintassi di nice e renice:

ionice [-c class] [-n level] command             #To start a new process
ionice [-c class] [-n level] -p pid              #To change a running process

Entrambi i comandi possono essere combinati, ad es

sudo ionice -n 7 nice -n 19 apt-get upgrade      #Omitting the -c switch will assign Best-effort
sudo nice -n 19 ionice -n 7 apt-get upgrade
nice -n 19 ionice -n 7 sudo apt-get upgrade
...

6
Sono sorpreso che questo abbia ottenuto così tanti voti positivi. apt-get upgrade è associato a IO!
Joshua,

3
che ne dici ionice?
David LeBauer,

1
Quindi, per chiarire, il sudotuo comando non è per nice, ma per apt-getse stesso? Sembra che funzioni nice -n 19 sudo apt-get upgradeanche per me. C'è qualche differenza importante?
mercoledì

1
@WChargin sudo nice apt-getfunziona come root e consentirà di impostare priorità inferiori a 0. apt-get verrà comunque eseguito come root. nice sudo apt-getfunzionerà bene come l'utente corrente, e quindi consentirà solo priorità superiori o uguali a 0. apt-get verrà avviato come root.
s3lph

1
@ David Ho aggiunto ionice alla mia risposta.
s3lph
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.