0

psのmanページからのpriに関する注記:

「プロセスのpriPRI優先度。数値が大きいほど優先度は低くなります」

ここでPID26073を検討してください

$ 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 +は、次のことを意味します:実行中、低優先度(他の人に良い)、フォアグラウンド。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の定義がマニュアルページから言っていることと矛盾します(数値が大きいほど優先度が低いことを意味します)

4

2 に答える 2

6

PRIあなたは(即時NICEの優先順位)と(割り当てられた優先 順位)によって混乱しています。PRII / Oでブロックした後にプロセスが再起動されると、多くの場合、ブースト(つまり低い値)が得られます。逆に、少なくとも標準のスケジューラーでは、ブロックせずにスケジューラーによって割り当てられたタイムスロットを使い果たすと、低くなります(高い値)。多くのシステムには、動作が異なる代替スケジューラがありますが、すべての場合においてPRI、スケジューラが割り当てた実際の現在の優先度です。この値は、割り当てられた「素晴らしさ」の影響を受けますが、定義されません。

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 に答える