top は動いているプロセスを更新し続けながら表示するコマンドです。画面の読み方、抜け方、スクリプトから使う `-b` の書き方を、ブラウザ上のターミナルで打ちながら確認できます。
最終更新: 2026-09-07
top [オプション]
動いているプロセスを、CPU をよく使っている順に並べて表示し続けます。
$ top
画面がプロセスの一覧に切り替わり、数字が更新され続けます。
戻るときは q です(Ctrl+C でも終了します)。
上5行がシステム全体の要約、その下がプロセスの一覧です。
| 行 | 読むところ |
|---|---|
top - ... | いまの時刻、起動してからの時間、load average |
Tasks: | プロセスの数と、その内訳(running / sleeping / zombie) |
%Cpu(s): | CPU の内訳。id が余っている割合 |
MiB Mem : | メモリ。右端の avail Mem が実際に使える量 |
MiB Swap: | スワップ。used が増え続けていればメモリ不足 |
プロセスの一覧は %CPU の大きい順です。
つまり、**画面のいちばん上が「いま重いもの」**になります。
load average は、1分・5分・15分の平均です。 CPU のコア数と比べて読み、コア数を超えた状態が続いていれば処理が追いついていません。
-b(バッチモード)と -n 1(1回で終わる)を付けると、画面を切り替えずに普通の出力として書き出せます。
$ top -b -n 1
top - 17:33:40 up 10:30:45, 2 users, load average: 0.12, 0.15, 0.10
Tasks: 12 total, 2 running, 10 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.0 us, 1.3 sy, 0.0 ni, 95.4 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7948.0 total, 1843.0 free, 3277.0 used, 2828.0 buff/cache
MiB Swap: 2048.0 total, 1920.0 free, 128.0 used. 4200.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3456 user 20 0 446.1m 85.6m 59.9m R 98.5 4.2 2:34:56 python3
2345 user 20 0 11.0m 1.2m 987k R 1.5 0.0 0:00.01 top
2847 user 20 0 337.6m 55.5m 38.8m S 1.2 1.5 1:23 node
123 root 20 0 117.5m 9.6m 6.8m S 0.3 0.2 0:01 systemd-j
1234 user 20 0 22.9m 3.4m 2.4m S 0.2 0.1 0:00 zsh
789 user 20 0 44.6m 5.3m 3.7m S 0.1 0.1 0:00 sshd
1 root 20 0 165.3m 12.8m 9.0m S 0.0 0.1 0:02 systemd
2 root 20 0 0k 0k 0k S 0.0 0.0 0:00 kthreadd
456 root 20 0 44.6m 5.3m 3.7m S 0.0 0.1 0:00 sshd
5678 root 20 0 12.1m 2.3m 1.6m S 0.0 0.0 0:00 crond
301 root 20 0 5.5m 1.2m 863k S 0.0 0.0 0:00 networking
201 systemd- 20 0 24.0m 6.6m 4.6m S 0.0 0.1 0:01 systemd-r
python3 が CPU を 98.5% 使っていることが分かります。
記録に残したいときや、ログに追記したいときはこの形です。
ps でも同じ順番に並べられます。
$ ps aux | sort -k3 -nr | head -3
user 3456 98.5 4.2 456789 87654 pts/0 R 09:15 154:56 python3 backup_sync.py
user 2847 1.2 1.5 345678 56789 pts/0 S 10:35 1:23 node server.js
root 123 0.3 0.2 120344 9876 ? Ss 00:01 0:01 /lib/systemd/systemd-journald
-k3 は3列目(%CPU)、-nr は数として大きい順、という意味です。
眺めるなら top、渡すなら ps と覚えておくと迷いません。
top は、サーバーが重いと言われたときに最初に開く画面です。
| 場面 | 打ち方 |
|---|---|
| 何が重いのか見る | top |
| 記録に残す | top -b -n 1 >> load.log |
| CPU の高い順に3つだけ見る | ps aux | sort -k3 -nr | head -3 |
| メモリの余裕を見る | free -h |
| 犯人が分かったら止める | kill <PID> |
top で PID を見つけ、kill で止める。
この2つが組になります。
q で抜けます。
Ctrl+C でも終わりますが、q が正式な抜け方です。
%CPU は瞬間の値です。
一瞬だけ高いのは正常なこともあります。
TIME+(そのプロセスが使った CPU 時間の合計)と合わせて見ると、ずっと重いのか一瞬なのかが分かります。
メモリは avail Mem を見ます。
free(空き)が少なくても、buff/cache は必要になれば解放されます。
足りているかどうかは avail Mem で判断してください。
画面を見続けるものなので、スクリプトには向きません。
自動で記録したいときは top -b -n 1、または ps を使ってください。
webterm.appこのサイト
ターミナル応用
特定場面で役立つコマンドを学ぶ
learn.webterm.app別のサイト
