在大多数Linux发行版上,如何调整进程Niceness (优先级)

・2 分钟阅读

在gnu/Linux系统中,"niceness"用于定义进程的CPU优先级,如果非重要程序阻碍CPU性能,那么调整流程的niceness是很有用的。 默认情况下所有进程的niceness都为0准确度从20到19.

作为非root用户,你只能增加你拥有的进程的niceness,减少任何进程的niceness,需要root权限。

在本文中,我将假设你有root权限(以root用户身份登录,或者使用sudo)。

显示进程的niceness

htoptop中,对于"NI"字段下的每个进程,都列出了niceness:


root@demo:~# top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
 1 root 20 0 56892 6580 5216 S 0.0 1.3 0:01.09 systemd 
 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 
 3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 
 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 
 7 root 20 0 0 0 0 S 0.0 0.0 0:00.07 rcu_sched 

使用特定的niceness值启动进程

可以使用nice命令执行一个命令,该命令有所选的niceness值,例如:


nice -n 10 apt upgrade

这运行apt upgrade,有10的niceness而不是默认值0.

上面的命令的一般格式如下所示:


nice -n NICENESS COMMAND

其中NICENESS是-20和19之间的任意数字COMMAND是你通常在shell中输入的任何命令。

更改进程的niceness

若要修改已运行的进程的nice值,将使用renice ,例如:


root@demo:~# renice -10 -p 564
564 (process ID) old priority 0, new priority -10

此命令使用PID 564为进程重新分配-10的nice值,通用格式如下所示:


renice NICENESS -p PID

其中NICENESS是-20和19之间的任意数字PID是目标进程的进程ID。

Anne655 profile image