top プロセスのCPUやメモリの使用状況をリアルタイムに表示する
top [オプション]試してみる
top -b -n 1 | head -15バッチモードで1回だけ表示します。-b は対話なし、-n 1 は1回で終了する指定です。
top -b -n 1 -o %MEM | head -12メモリの使用率が大きい順に並べて表示します。
top -b -n 1 -u user | head -12ユーザー user のプロセスだけを表示します。
top -b -n 1 -p "$(pgrep -o -x sleep)" | tail -2PID を指定して、特定のプロセスだけを表示します。
top -b -n 2 -d 1 | grep -c '^top'1秒間隔で2回表示させます。表示のたびに先頭行が出るので、2回分の2が表示されます。
top -b -n 1 | grep -i 'mem'メモリとスワップの行だけを取り出します。
主なオプション
-b | バッチモード。対話せず、端末に出力する。ファイルやパイプに流すときに使う |
|---|---|
-n 回数 | 指定した回数だけ更新して終了する |
-d 秒 | 更新の間隔を指定する |
-u ユーザー | 指定したユーザーのプロセスだけを表示する |
-p PID | 指定したPIDのプロセスだけを表示する |
-o 列 | 並べ替えに使う列を指定する(%CPU、%MEM など) |
解説
画面の見方
top は、プロセスの状態を一定間隔で更新し続けます。ターミナルでそのまま実行すると、q を押すまで動きます。このページのように対話なしで使うときは -b と -n を付けます。
表示の上のほうは、システム全体の要約です。
| 行 | 内容 |
|---|---|
| 1行目 | 時刻、稼働時間、ユーザー数、ロードアベレージ(直近の1分、5分、15分の平均) |
| Tasks | プロセスの総数と、実行中、スリープ中、停止中、ゾンビの数 |
| %Cpu(s) | CPU の使われ方(us ユーザー、sy カーネル、id アイドル) |
| Mem、Swap | メモリとスワップの合計、空き、使用量 |
下の一覧の PR は優先度、NI は nice 値、S はプロセスの状態です。
対話中のキー操作
画面を表示しているときは、次のキーが使えます。
| キー | 動作 |
|---|---|
| q | 終了する |
| k | PIDを入力してシグナルを送る(プロセスを終了させる) |
| r | PIDを入力して nice 値を変える |
| M | メモリ使用量の順に並べる |
| P | CPU使用率の順に並べる |
| h | ヘルプを表示する |
ps との違い
ps はその瞬間の状態を1回表示しますが、top は更新し続けます。重いプロセスを探すときに、まず top を見て、PID が分かれば kill で止めます。