¿Cómo hacer que 'apt-get upgrade' use menos recursos?


26

Cuando ejecuto sudo apt-get upgradecon muchos paquetes en mi computadora portátil de gama baja, obtengo una desaceleración perceptible del sistema, a veces con bloqueos de pantalla de hasta 3 segundos.

¿Hay alguna manera de marcar este trabajo como de muy baja prioridad, es decir, usar muy poca CPU, MEM y HDD? Realmente no me importa si tardaría apt-get upgradedos horas más en terminar, solo quiero seguir trabajando sin las interrupciones durante la actualización.

Respuestas:


26

El comando nicese puede utilizar para manipular las prioridades de programación de la CPU del proceso . El comando asigna un valor de "amabilidad" de -20 (más importante) a +19 (menos importante) al proceso. Root puede asignar cualquier valor, otros usuarios solo positivos (importancia menor). El valor predeterminado es 0.

nice -n <niceness> <command>

Para establecer la prioridad de un comando apt-get al menor valor, puede usar el comando

sudo nice -n 19 apt-get upgrade

Para establecer la prioridad de un proceso que ya se está ejecutando, renicese puede usar el comando :

renice -n <niceness> -p <pid>

Editar: Gracias a @David por mencionar el ionicecomando, que le permite manipular la prioridad de E / S del disco . Puede poner un proceso en tres clases diferentes:

  • Idle solo le da tiempo al disco del proceso, si ningún otro proceso lo reclama en este momento.
  • Mejor esfuerzo (clase predeterminada). Esto le permite asignar prioridades de 0 a 7, donde 0 es más importante y 7 menos. Puede intentar asignar -n 7como nivel de prioridad.
  • Los procesos en tiempo real se manejan antes que todo lo demás, suspendiendo la E / S de disco para otros procesos, tan pronto como lo requieran ellos mismos. Úselo con cuidado!

IOnice combina la sintaxis de nice y renice:

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

Ambos comandos se pueden combinar, p. Ej.

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
...

66
Me sorprende que haya tantos votos positivos. ¡la actualización de apt-get está vinculada a IO!
Joshua

3
¿qué tal ionice?
David LeBauer el

1
Entonces, para aclarar, ¿ sudoen su comando no es para nice, sino para apt-getsí mismo? Parece que eso nice -n 19 sudo apt-get upgradetambién funciona para mí. ¿Hay alguna diferencia importante?
wchargin

1
@WChargin sudo nice apt-getfunciona bien como root y permitirá establecer prioridades más bajas que 0. apt-get aún se ejecutará como root. nice sudo apt-getfuncionará bien como usuario actual y, por lo tanto, solo permitirá prioridades superiores o iguales a 0. apt-get se iniciará como root.
s3lph

1
@David Agregué ionice a mi respuesta.
s3lph
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.