
【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 psps -l コマンドの出力項目
| 項目 | 説明 |
|---|---|
| F | フラグ(プロセスの状態を示す) |
| UID | プロセスの所有者のユーザーID |
| PID | プロセスID |
| PPID | 親プロセスID |
| C | CPU使用率 |
| PRI | プロセスの優先度(低い値が高優先度) |
| NI | nice値(-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で、値が低いほど高い優先度となります。
このように、プロセスの優先順位を管理することで、システムのパフォーマンスを最適化することが可能です。
