如何通过善良而仁慈的方式在Linux中更改进程优先级

Linux使您可以在一台机器上运行许多进程,而无需跳动。有时,密集的过程可能会降低系统速度。如果有一种方法可以在继续执行其他任务时以某种方式将其放回火炉上,这不是很好吗?您可以使用名为nice的实用程序。

与流程融洽相处

Nice是内置在Linux和Unix系统中的实用程序,可以降低进程的CPU优先级。该实用程序是Unix在多用户小型计算机和大型机上运行的时代的产物,但今天在单用户桌面上运行时仍然有用。

您可能正在玩游戏,并且由于某些密集的过程(例如torrent client)需要很长时间才能获得输出,因此出现了滞后现象。只需将其重新分配到后台并继续播放即可。

尼斯既可以是独立程序,也可以内置在Shell中。要弄清楚系统上的情况,请输入:

 which nice

在Ubuntu上,nice安装的版本是GNU版本

尼斯使用“很好的数字”的概念,这是任何流程的流程优先级。在GNU版本上,范围是19到-20。负数赋予该过程更高的优先级,而正数赋予该过程更少的优先级。您可以在tophtop之类的实用程序中的NI列中看到这个不错的数字。

要以较低的优先级运行进程,请使用以下命令:

 nice processname

processname替换为您要运行的进程。默认情况下,nice会分配10的整数。正常启动的所有进程都将默认为0。

如果您想要一个特定的数字(在这种情况下为绝对最低优先级),请使用-n选项和所需的精确数字:

 nice -n 19 processname

用renice更改流程优先级

现在,您可以以降低的优先级启动命令,但是如何更改正在运行的进程的优先级呢?您也可以使用另一个实用程序renice来做到这一点。

您需要要更改的进程的PID或进程ID。您可以使用ps命令,top或htop来找到它。一旦找到,只需将其提供给renice命令。

要为您的PID设置一个新的数字,请输入:

 renice priority PID

优先级是您要使用的有效数字。

-n标志以您提到的增量更改进程优先级,可以是正数或负数,因此,如果您的进程为10,并且想将其更改为8,请键入:

 sudo renice -n -2 PID

只有超级用户才能放弃属于另一个用户的进程或增加进程的优先级。您可以使用-u开关后跟用户名来调整任何用户的优先级:

 renice priority -u username

相关: Linux中的进程是什么?

现在,您可以更改流程优先级以获得最佳性能

使用nice和renice,您可以更改Linux中任何进程的优先级。在繁重的过程占用大量系统资源的时候,这无疑将为您提供帮助。此外,使用Stacer之类的监控工具来优化系统性能也可能会有所帮助。