需要ps的pri标准格式说明符的解释 – 可能在文档中的错误

ps手册页上的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 <+这意味着:可中断的睡眠,高级(对他人不好),前景。 PRI = 29(2)

在情况2中,过程优先级增加或者说另一种方式,过程变得更优先。

但是,这与pri的定义(man number)(这个更高的数字意味着更低的优先级)相矛盾,

Solutions Collecting From Web of "需要ps的pri标准格式说明符的解释 – 可能在文档中的错误"

您被PRI (即时优先)与NICE (指定的优先级)混淆。 如果一个进程在I / O阻塞之后重新启动, PRI通常会得到一个提升(即较低的值),反之,如果它没有阻塞地使用调度器分配的时隙,则反而会降低(较高的值),至少使用标准调度器。 许多系统具有不同行为的替代调度程序,但在所有情况下, PRI都是调度程序分配的实际当前优先级; 这个值受分配的“好”的影响,但没有被定义。

参考Linux的优先级管理: http : //oreilly.com/catalog/linuxkernel/chapter/ch10.html

尽管我不是linux调度器方面的专家,但是我知道它会“惩罚”CPU绑定的进程并奖励I / O绑定的进程(大多数调度程序在某种程度上做的事情)。 正如所解释的那样,这个调整和其他调整以及NICE值在调度器内导致内部优先级设置。 他们使用逆NICE值和非反内部PRI值的事实有点令人困惑,但有道理。