1. ホーム
  2. コース一覧
  3. LinuC Level1 v10.0 対策コース(パート1)
  4. プロセスの監視について

中級

LinuC Level1 v10.0 対策コース(パート1)

LinuC Level1 v10.0 対策コース(パート1)10/39

プロセスの監視について

こちらの記事ではプロセスの監視方法について解説します。プロセスとはシステム内で実行中のプログラムのことを指します。プロセスの監視にはpstoppstreeuptimeコマンドなどがよく使用されます。

プロセス

プロセスとはシステム内で実行中のプログラムのことを指します。 システム内では常に複数のプログラムが常駐しており、それら一つ一つをプロセスといいます。ユーザーがプログラムを実行したり、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 waI/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優先度
NInice値、プロセスの実行優先度
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分の実行待ちプロセス数の平均値

まとめ

今回の記事ではtoppspstreeuptimeコマンドの解説をしました。

psコマンドは現在実行されているプロセスの一覧を表示することが出来ます。

topコマンドは現在実行されているプロセスの情報を一定間隔で更新しながら表示します。

pstreeコマンドは、実行中のプロセスを親子関係やツリー構造で表示することができるコマンドです。これにより、プロセス間の関係を視覚的に把握しやすくなります。

uptimeコマンドは、システムが起動してから経過した時間を表示します。

プロセスの監視方法について知ることで、エラーが発生した場合やパフォーマンスが低下した場合などの原因究明に役立ちます。 

記事の内容は理解できましたか?