首页 文章

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

提问于
浏览
0

关于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 <表示:可中断睡眠,高prio(对其他人不好),前景 . PRI = 29(2)

在案例2中,流程优先级增加或者以另一种方式说明流程变得更高优先级 .

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

2 回答

  • 1

    您被 PRI (即时优先)与 NICE (指定的优先级)混淆 . PRI 在I / O阻塞后重新启动进程时经常会获得提升(即较低的值),如果它在没有阻塞的情况下耗尽其调度程序分配的时隙,则相反地降低(更高的值),至少对于标准调度程序 . 许多系统具有不同行为的备用调度程序,但在所有情况下 PRI 是调度程序分配的实际当前优先级;此值受指定的"niceness"影响,但未定义 .

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

  • 6

    虽然我不是linux调度程序的专家,但我确实知道它“惩罚”CPU绑定进程并奖励I / O绑定进程(大多数调度程序在某种程度上做了什么) . 如上所述,此调整和其他调整以及NICE值会导致调度程序中的内部优先级设置 . 他们使用反NICE值和非反向内部PRI值的事实有点令人困惑,但是有道理 .

相关问题