0

来自 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+ 这意味着:正在运行,低优先级(对其他人很好),前景。优先级=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<+ 这意味着:可中断睡眠,高优先级(对其他人不好),前景。优先级=29 (2)

在情况 2 中,进程优先级增加,或者换句话说,进程变得更高优先级。

但这与手册页中 pri 的定义相矛盾(数字越大意味着优先级越低)

4

2 回答 2

6

您对PRI(立即优先级)与NICE(分配的优先级)感到困惑。 PRI当进程在 I/O 阻塞后重新启动时,通常会得到提升(即较低的值),相反,如果它用完调度程序分配的时间段而没有阻塞,则降低(较高的值),至少在标准调度程序中是这样。许多系统具有不同行为的替代调度程序,但在所有情况下PRI都是调度程序分配的实际当前优先级;该值受分配的“niceness”影响,但不受其定义。

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

于 2011-04-16T03:15:13.473 回答
1

尽管我不是 linux 调度程序方面的专家,但我知道它会“惩罚”受 CPU 限制的进程并奖励受 I/O 限制的进程(大多数调度程序或多或少都会这样做)。如前所述,此调整和其他调整以及 NICE 值会导致调度程序内的内部优先级设置。他们使用逆 NICE 值和非逆内部 PRI 值的事实有点令人困惑,但有道理。

于 2011-04-16T15:18:06.390 回答