2010年3月1日月曜日

Linux プライオリティ

通常のプロセス(非リアルタイムプロセス)には、2種類の優先度がある。
値が「小さい方」が優先度が高い。
 ・静的優先度
 ・動的優先度

静的優先度
0~139。
(0~99はリアルタイムプロセスに使用、通常プロセスは100~139。)
プロセスのnice値により固定的に決まる。
niceは-20~19→100~139にずらした値が静的優先度。

動 的優先度
100~139。
静的優先度をベースにCPU使用量に基づいて算出。
スケジューラは動的優先度を使用。
topコマ ンドのPRIフィールド
(カーネル内で使用している値100~139が0~39にずらされて表示)

優先的にプログラムを動作させるには、
 ・静的優先度/bin/nice値を-20(最優先)。
 ・動的優先度(priority)を高くする。普段おとなしく(run_time値を低く)しとく。


nice:
デフォルト10
変更できるのはrootのみ。
一般ユーザは自プロセスのみの優先度を下げることが可能。

参考:niceコマンド
$ /bin/nice -n 100 ./priority

参考:psコマンド
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6269 user 38 19 42708 38m 356 R 89.1 1.0 0:02.68 priority
6268 user 18 0 42708 38m 364 R 66.8 1.0 0:02.01 priority

0 件のコメント:

コメントを投稿