关于来自ps手册页的pri的注释:
“pri PRI优先级流程。数字越大意味着优先级越低”
在此处考虑PID 26073
$ renice +15 26073
26073: old priority 5, new priority 15 # I am making this process more nice
$ ps -t 1 -o pid,ppid,%cpu,stat,cmd,bsdstart,time,pri
PID PPID %CPU STAT CMD START TIME PRI
9115 18136 0.0 Ss bash 17:10 00:00:01 19
26073 9115 12.0 RN+ p4 sync 19:06 00:02:56 4
STAT = RN +表示:正在运行,低prio(对其他人好),前景。 PRI = 4(1)
$ sudo renice -10 26073
26073: old priority 15, new priority -10 # I am making this process less nice
$ ps -t 1 -o pid,ppid,%cpu,stat,cmd,bsdstart,time,pri
PID PPID %CPU STAT CMD START TIME PRI
9115 18136 0.0 Ss bash 17:10 00:00:01 19
26073 9115 12.0 S<+ p4 sync 19:06 00:03:15 29
STAT = S&lt; +表示:可中断睡眠,高prio(对其他人不好),前景。 PRI = 29(2)
在案例2中,流程优先级增加或以另一种方式说明流程变得更高优先级。
但是这与pri在man page中的定义相矛盾(更高的数字意味着更低的优先级)
答案 0 :(得分:6)
您被PRI
(即时优先)与NICE
(指定的优先级)混淆了。在阻塞I / O后重新启动进程时,PRI
经常会获得提升(即较低的值),如果它在没有阻塞的情况下耗尽其调度程序分配的时隙,则相反地降低(更高的值),至少使用标准调度程序。许多系统具有不同行为的备用调度程序,但在所有情况下PRI
是调度程序分配的实际当前优先级;此值受指定的“niceness”影响,但不是由其定义。
关于Linux优先级管理的参考here:http://oreilly.com/catalog/linuxkernel/chapter/ch10.html
答案 1 :(得分:1)
虽然我不是linux调度程序的专家,但我确实知道它“惩罚”CPU绑定进程并奖励I / O绑定进程(大多数调度程序在某种程度上做的事情)。如上所述,此调整和其他调整以及NICE值会导致调度程序中的内部优先级设置。他们使用反NICE值和非反向内部PRI值的事实有点令人困惑,但是有道理。