在大多数Linux发行版上,如何调整进程Niceness (优先级)
Anne655
・2 分钟阅读
在gnu/Linux系统中,"niceness"用于定义进程的CPU优先级,如果非重要程序阻碍CPU性能,那么调整流程的niceness是很有用的。 默认情况下所有进程的niceness都为0准确度从20到19.
作为非root用户,你只能增加你拥有的进程的niceness,减少任何进程的niceness,需要root权限。
在本文中,我将假设你有root权限(以root用户身份登录,或者使用sudo
)。
显示进程的niceness
在htop
和top
中,对于"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。