LinuC Level1 v10.0 対策コース(パート1)10/39
プロセスの監視について
こちらの記事ではプロセスの監視方法について解説します。プロセスとはシステム内で実行中のプログラムのことを指します。プロセスの監視にはps
、top
、pstree
、uptime
コマンドなどがよく使用されます。
プロセス
プロセスとはシステム内で実行中のプログラムのことを指します。 システム内では常に複数のプログラムが常駐しており、それら一つ一つをプロセスといいます。ユーザーがプログラムを実行したり、PCを起動したときにプロセスが生成されます。プログラムの処理が完了したらプロセスは消滅します。
現在システムの中で処理しているプロセスを監視したいときは、プロセスを表示するコマンドを実行します。
ps
ps
コマンドは現在実行されているプロセスの一覧を表示できます。
現在のシェルから生成したプロセスのみを表示したい場合は、オプションを付けずにps
コマンドを実行します。
# プロセスの一覧を表示
ps
PID TTY TIME CMD
616 pts/2 00:00:00 bash
632 pts/2 00:00:00 ps
# プロセスをバックグラウンドで実行
top &
[1] 814
# プロセスの一覧を表示
ps
PID TTY TIME CMD
799 pts/2 00:00:00 bash
# バックグラウンドで動くプロセスが追加されている
814 pts/2 00:00:00 top
816 pts/2 00:00:00 ps
ps
コマンドのオプションと項目
オプション | 説明 |
---|---|
-a | 他のユーザーのプロセスも含めて全てのプロセスを表示 |
-u | 指定したユーザーのプロセスだけを表示 |
-x | ヘッダー行を表示せずにプロセスを表示 |
-f | 詳細な情報を含めて、全てのプロセスを表示 |
-e | 現在のプロセス以外の全てのプロセスを表示 |
-C | コマンドライン引数を表示せずにプロセスを表示 |
-p | 指定したプロセスIDに対応するプロセスのみを表示 |
-N | 指定したユーザーのプロセスを除外して表示 |
-r | 逆順でプロセスを表示 |
項目 | 説明 |
---|---|
PID | プロセスID |
TTY | 制御する標準入出力端末のことで、由来はTerletypewriter |
TIME | 実行時間 |
CMD | コマンド |
pstree
pstree
コマンドはプロセスの親子関係をツリー構造で表示します 。オプションを付けずに実行すると、現在実行しているプロセスのツリー構造を表示できます。
pstree
init-+-init-+-init---docker-desktop----10*[{docker-desktop-}]
| `-init---docker---9*[{docker}]
|-init---tmux: server---2*[bash]
|-init---screen---bash
|-init---init---bash---pstree
`-{init}
top
top
コマンドは現在実行しているプロセスの情報を一定間隔で更新しながら表示してくれます。 表示される順番はCPU使用率の高い順で、3秒間隔での更新がデフォルトです。「Q」キーでtop
プロセスの終了ができます。
top
# 1段目
top - 08:21:28 up 3 min, 1 users, load average: 0.16, 0.19, 0.09
# 2段目
Tasks: 10 total, 1 running, 9 sleeping, 0 stopped, 0 zombie
# 3段目
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
# 4段目
MiB Mem : 6289.3 total, 4865.3 free, 378.8 used, 1045.1 buff/cache
# 5段目
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 5323.1 avail Mem
# 項目
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 896 528 464 S 0.0 0.0 0:00.04 init
166 root 20 0 904 92 20 S 0.0 0.0 0:00.00 init
167 root 20 0 11104 5088 3360 S 0.0 0.1 0:00.10 bash
305 root 20 0 10152 3468 2964 R 0.0 0.1 0:00.00 top
…続く
プロセスの表示内容の説明
1段目 | 説明 |
---|---|
- | 現在時刻 |
up x min | 起動してからの時間 |
x users | ログインユーザーの数 |
load average: | 左から1、5、15分の実行待ちプロセス数の平均値 |
2段目 | 説明 |
---|---|
Tasks x total | プロセス数 |
x running | 実行中のプロセス 数 |
x sleeping | スリープ状態のプロセス数 |
x stopped | 停止状態のプロセス数 |
x zombie | ゾンビ状態のプロセス数 |
3段目 | 説明 |
---|---|
%Cpu(s): | CPUの状態 |
x us | ユーザープロセスの使用時間 |
x sy | システムプロセスの使用時間 |
x ni | 実行優先度を変更した、ユーザープロセスの使用時間 |
x id | アイドル状態の時間 |
x wa | I/Oの終了待ちをしている時間 |
x hi | ハードウェア割り込み要求での時間 |
x si | ソフトウェア割り込み要求での時間 |
x st | 仮想化を利用しているときに、他の仮想CPUの計算で待たされた時間 |
4段目 | 説明 |
---|---|
MiB Mem : | メモリ状態の表示 |
total | メモリの合計サイズ |
free | 未使用のメモリサイズ |
used | 使用中のメモリサイズ |
buff/cache | バッファキャッシュ/ページキャッシュのメモリサイズ |
5段目 | 説明 |
---|---|
MiB Swap: | スワップ領域の表示 |
total | スワップ領域の合計サイズ |
free | 未使用のスワップサイズ |
used | 使用中のスワップサイズ |
avail Mem | 新しいアプリケーションがスワップせずに使えるメモリサイズ |
項目 | 説明 |
---|---|
PID | プロセスID |
USER | ユーザー名 |
PR | 優先度 |
NI | nice値、プロセスの実行優先度 |
VIRT | タスクが使用する仮想メモリの総量 |
RES | タスクが使用するスワップされていないメモリ |
SHR | タスクが使用する共有メモリの総量 |
S | プロセスの状態 |
%CPU | タスクの所要CPU時間占有率 |
%MEM | メモリの占有率 |
TIME+ | CPU 利用時間の合計 |
COMMAND | プログラムの名前 |
スワップ:ハードディスク内に設置される領域のことです。メモリー容量が足りなくなった時にメモリの中で不要な部分をスワップ領域に移動させることが出来ます。
uptime
uptime
コマンドはシステムが起動してから経過した時間を表示します。 システムを停止するか再起動するとリセットされます。基本的にはOSが起動してから現在までの時間を表します。ブートシーケンス中は経過した時間に含まれません。top
コマンドと比べて表示される項目も省略されます。
uptime
09:41:41 up 1:23, 0 users, load average: 0.00, 0.00, 0.00
項目 | 説明 |
---|---|
xx:xx:xx | 現在時刻 |
up | 起動してからの時間 |
users | ログインユーザーの数 |
load average: | 左から1、5、15分の実行待ちプロセス数の平均値 |
まとめ
今回の記事ではtop
、ps
、pstree
、uptime
コマンドの解説をしました。
ps
コマンドは現在実行されているプロセスの一覧を表示することが出来ます。
top
コマンドは現在実行されているプロセスの情報を一定間隔で更新しながら表示します。
pstree
コマンドは、実行中のプロセスを親子関係やツリー構造で表示することができるコマンドです。これにより、プロセス間の関係を視覚的に把握しやすくなります。
uptime
コマンドは、システムが起動してから経過した時間を表示します。
プロセスの監視方法について知ることで、エラーが発生した場合やパフォーマンスが低下した場合などの原因究明に役立ちます。
記事の内容は理解できましたか?