topコマンドとは
CPU使用率・メモリ使用率などのリソース情報をプロセスごとに一覧表示することができるコマンドです。
起動(オプションなし)
topで起動することができます。
top起動すると以下のような画面が表示されます。

デフォルトで画面は3秒ごとに更新されます。
コマンドを終了する場合はqキーを押下します。
操作方法
主な操作方法は以下の通りです。
Shift + p: CPU使用率順にプロセスをソートするShift + m: メモリ使用率順にプロセスをソートするShift + t: 実行時間順にプロセスをソートするh: ヘルプを表示するq: topコマンドを終了するk: 指定したプロセスを終了させるr: 指定したプロセスの優先度(nice値)を変更する
起動(1秒ごとに更新)
画面の更新間隔を指定する場合は-dオプションを指定します。
以下例では更新間隔を1秒に指定しています。
top -d1起動(特定プロセスを監視)
特定のプロセスの状況をバッチモードで監視する場合、-pオプションと-bオプションを指定します。
プロセスID290を3秒ごとに監視する場合
top -p 290 -b実行結果例
$ top -p 290 -btop - 23:25:53 up 3:08, 1 user, load average: 0.11, 0.07, 0.02Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie%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 stMiB Mem : 2914.8 total, 1678.9 free, 543.8 used, 692.2 buff/cacheMiB Swap: 1024.0 total, 1024.0 free, 0.0 used. 2214.6 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 290 root 20 0 1147948 90392 28540 S 0.0 3.0 0:13.85 python3.10
top - 23:25:56 up 3:08, 1 user, load average: 0.11, 0.07, 0.02Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie%Cpu(s): 1.8 us, 1.3 sy, 0.0 ni, 94.5 id, 1.7 wa, 0.0 hi, 0.5 si, 0.0 stMiB Mem : 2914.8 total, 1629.0 free, 573.8 used, 712.1 buff/cacheMiB Swap: 1024.0 total, 1024.0 free, 0.0 used. 2183.2 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 290 root 20 0 1147948 90392 28540 S 0.3 3.0 0:13.86 python3.10
top - 23:25:59 up 3:08, 1 user, load average: 0.10, 0.07, 0.02Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.4 us, 0.2 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 stMiB Mem : 2914.8 total, 1662.3 free, 540.3 used, 712.2 buff/cacheMiB Swap: 1024.0 total, 1024.0 free, 0.0 used. 2216.9 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 290 root 20 0 1147948 90392 28540 S 0.0 3.0 0:13.86 python3.10^Crootユーザのプロセスを確認する場合
top -u root起動オプション
topコマンドの主な起動オプションは以下の通りです。
| オプション | 意味 |
|---|---|
| -d 間隔 | 画面の更新間隔を指定する。 |
| -n 回数 | 画面の表示回数を指定する。 |
| -b | バッチモード 「-n」で指定された回数または「Ctrl+C」で強制終了する。 |
| -u | 監視するユーザを指定する。 |
| -p | 監視するプロセスIDを指定する。 |
一行目の見方(top)

top -行の各項目の意味は以下の通りです。
| 項目 | 内容 |
|---|---|
| 20:31:48 | 現在時間 |
| up 14 min | サーバの稼働時間 |
| 1 user | ログインユーザ数 |
| load average 0.05, 0.06, 0.06 | 過去1、5、15分間のロードアベレージ(実行待ちタスク数の平均値) |
二行目の見方(Tasks)

Tasks:行の各項目の意味は以下の通りです。
| 項目 | 内容 |
|---|---|
| total | 合計タスク数 |
| running | 稼働中タスク数 |
| sleeping | 待機中タスク数 |
| stopped | 停止タスク数 |
| zombie | ゾンビタスク数 |
三行目の見方(%Cpus)

%Cpu(s):行の各項目の意味は以下の通りです。
| 項目 | 内容 |
|---|---|
| us | ユーザプロセスが占めるCPU使用率の割合 |
| sy | システムプロセスが占めるCPU使用率の割合 |
| ni | 実行優先度を変更したユーザプロセスのCPU使用率の割合 |
| id | アイドル状態のCPUの割合 |
| wa | I/Oの終了待ちをしているCPUの割合 |
| hi | ハードウェア割込み処理に使われたCPUの割合 |
| si | ソフトウェア割込み処理に使われたCPUの割合 |
| st | 仮想マシンが他の仮想マシンによってCPU時間を「盗まれた」時間の割合 |
四行目の見方(MiB Mem:)

MiB Mem:行の各項目の意味は以下の通りです。
| 項目 | 内容 |
|---|---|
| total | 物理メモリの合計容量 |
| free | 未使用のメモリ容量 |
| used | 使用中のメモリ容量 |
| buff/cache | バッファキャッシュとして使用されているメモリの容量 |
五行目の見方(MiB Swap:)

MiB Swap:行の各項目の意味は以下の通りです。
| 項目 | 内容 |
|---|---|
| total | スワップ領域の合計容量 |
| free | 未使用のスワップ領域の容量 |
| used | 使用中のスワップ領域の容量 |
| avail Mem | スワップを含めた利用可能なメモリの容量 |
プロセス一覧の見方(6行目以降)

プロセス一覧の各項目の意味は以下の通りです。
| 項目 | 説明 |
|---|---|
| PID | プロセスID |
| USER | プロセスの実行ユーザ |
| PR | プロセスの静的優先度(Priority) |
| NI | プロセスの相対優先度(Nice value) 0が基準で、-20(最高優先度)から19(最低優先度)までの範囲で設定。 |
| VIRT | 確保された仮想メモリ量(Virtual Image) |
| RES | 使用している物理メモリ量(Resident size) |
| SHR | 共有メモリ量(Shared Mem size) |
| S | プロセスの状態(Process Status) D: 割り込み不能 R: 実行中 S: スリープ状態 T: 停止中 Z: ゾンビプロセス |
| %CPU | プロセスが使用しているCPU使用率の割合 |
| %MEM | プロセスが使用しているメモリ使用率の割合 |
| TIME+ | プロセスが使用したCPUの実行時間 |
| COMMAND | 現在実行中のコマンド名 |
以上で本記事の解説を終わります。
よいITライフを!