【Linux】プロセスの優先順位

 プロセスには処理の優先順位があり、必要に応じてプロセスの優先度を指定して処理の優先順位を変更することができます。プロセスの優先度を管理することで、重要なタスクを優先的に実行させることが可能です。

プロセスの優先度の確認

 ps -l コマンドを使用することで、プロセスの詳細情報を確認できます。このコマンドの出力には、プロセスの優先度に関連する情報が含まれています。

ps -l コマンド

user01@ubuntu-vm:~$ ps -l
F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000    4653    4611  0  80   0 -  3046 do_wai pts/0    00:00:00 bash
0 R  1000    4666    4653  0  80   0 -  3430 -      pts/0    00:00:00 ps

ps -l コマンドの出力項目

項目説明
Fフラグ(プロセスの状態を示す)
UIDプロセスの所有者のユーザーID
PIDプロセスID
PPID親プロセスID
CCPU使用率
PRIプロセスの優先度(低い値が高優先度)
NInice値(-20から19の範囲で優先度を調整)
SZ仮想メモリサイズ(ページ数単位)
RSS実メモリサイズ(キロバイト単位)
WCHANプロセスが待機しているカーネル関数
TTYターミナルデバイス
TIMEプロセスのCPU時間
CMD実行されたコマンド
ps -l コマンドの出力項目

top コマンド

 top コマンドを使用することでも、リアルタイムでプロセスの優先度やリソース使用状況を確認することができます。

user01@ubuntu-vm:~$ top

top - 02:23:02 up  3:05,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 180 total,   1 running, 179 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.4 sy,  0.0 ni, 99.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0
MiB Mem :   1943.3 total,    250.3 free,    817.6 used,    875.3 buff/cache
MiB Swap:   2680.0 total,   2644.6 free,     35.4 used.    925.0 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+
   2493 user01    20   0 4003376 256788 135964 S   1.7  12.9   0:23.12
   4611 user01    20   0  724580  71432  54132 S   0.7   3.6   0:00.30
   2751 user01    20   0  235072  81292  56496 S   0.3   4.1   0:09.39
   2980 user01    20   0  219912   3356   2944 S   0.3   0.2   0:26.02
   4587 root      20   0       0      0      0 I   0.3   0.0   0:00.20
      1 root      20   0  168064  13312   8320 S   0.0   0.7   0:02.09
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.00
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 
(省略)

nice値

 nice値の範囲は、-20~19の間の値となります。nice値をPRIに足し合わせることで優先度を調整します。

PRIとnice値の関係

  • PRIはプロセスの優先度を示します。数値が低いほど高い優先度を持ちます。
  • PRIに影響を与える値として、nice値が用意されています。
  • nice値を変更することで、間接的にPRIを調整することができます。

nice値の範囲

  • nice値の範囲は -20 から 19 の間です。
  • 優先度を高くする場合は、nice値を低く(例:-20)設定します。
  • 優先度を低くする場合は、nice値を高く(例:19)設定します。

nice値の設定

nice値を設定するためには、nice コマンドを使用します。

niceコマンドの使用例

# nice値を設定してプロセスを起動
nice -n 10 my_process

まとめ

  • プロセスの優先度は、システム内でプロセスがどの順番で実行されるかを決定する重要な要素です。
  • ps -l コマンドや top コマンドを使って、プロセスの優先度を確認できます。
  • nice値を調整することで、間接的にプロセスの優先度(PRI)を変更できます。
  • nice値の範囲-20 から 19 で、値が低いほど高い優先度となります。

 このように、プロセスの優先順位を管理することで、システムのパフォーマンスを最適化することが可能です。