如何使`apt-get upgrade`使用更少的资源?

当我在我的低端笔记本电脑上运行带有很多软件包的sudo apt-get upgrade时,我得到一个可察觉的系统减速,有时会有最多3秒的屏幕冻结。

有没有办法将此作业标记为非常低优先级,即使用非常少的CPU,MEM和HDD? 我真的不在乎它是否会让apt-get upgrade两个小时才能完成,我只想继续工作而不会在升级过程中出现中断。

命令nice可用于操作进程CPU调度优先级 。 该命令为进程分配从-20(最重要)到+19(最不重要)的“niceness”值。 Root可以分配任何值,其他用户只能分配正值(次要重要性)。 默认值为0。

 nice -n   

要将apt-get命令的优先级设置为最小值,可以使用该命令

 sudo nice -n 19 apt-get upgrade 

要设置已在运行的进程的优先级,可以使用命令renice

 renice -n  -p  

编辑:感谢@David提到的ionice命令,它允许您操作磁盘I / O优先级 。 它可以将一个过程分为三个不同的类:

  • 如果此时没有其他进程声明,则Idle仅给出进程磁盘时间。
  • 尽力而为 (默认课程)。 这允许您分配从0到7的优先级,其中0是最重要的,7是最不重要的。 您可以尝试将-n 7指定为优先级。
  • 实时进程在其他所有进程之前处理,暂停其他进程的磁盘I / O,只要它们自己需要它。 小心使用!

IOnice结合了nice和renice的语法:

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

两个命令可以组合,例如

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