UNIX/Linuxの部屋 topコマンドの使い方

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド top プロセスの状態をリアルタイムに表示 このエントリーをはてなブックマークに追加

最終更新


UNIX/Linux の top コマンドは、OS 全体の CPU 使用率・メモリ消費量・スワップ消費量や、各プロセスの CPU 使用率・メモリ消費量などを知ることができるコマンドである。



top コマンドの基本的な使い方
top コマンドを実行すると、以下のような表示になり、数秒おきに新しい情報表示される (下記例は FreeBSD の top コマンド)。
last pid: 56219;  load averages:  0.20,  0.27,  0.28         up 213+01:25:37 21:44:06
32 processes:  1 running, 30 sleeping, 1 stopped
CPU:  0.0% user,  0.0% nice,  0.6% system,  0.0% interrupt, 99.4% idle
Mem: 29M Active, 44M Inact, 843M Wired, 46M Free
ARC: 529M Total, 379M MFU, 82M MRU, 144K Anon, 13M Header, 56M Other
Swap: 2048M Total, 17M Used, 2031M Free

  PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME    WCPU COMMAND
56218 68user        1  20    0 20120K  2624K CPU0    0   0:00   0.07% top
52278 68user        1  20    0 83092K  5264K select  1   0:02   0.02% sshd
  552 root          1  20    0  9512K   616K select  1  87:08   0.02% devd
  702 root          1  20    0 10472K   512K select  0  33:08   0.01% syslogd
55825 www           1  21    0 86300K  3308K select  0   0:00   0.01% httpd
  841 root          1  20    0 20600K   740K select  0  30:36   0.00% sendmail
90020 root          1  20    0 86300K  1848K select  1   1:36   0.00% httpd
  848 root          1  52    0 12564K   452K nanslp  1   4:21   0.00% cron
  ....

特によく確認すべき箇所は以下のとおり。
▷ ロードアベレージ
load averages: 0.56, 0.26, 0.11
▷ メモリ/スワップ使用量
Mem: 65M Active, 34M Inact, 15M Wired, 6328K Cache, 8346K Buf, 1876K Free
Swap: 350M Total, 350M Free

プロセス情報の説明
下部に表示されるプロセス情報の見方は以下のとおり (FreeBSD の top。説明文は FreeBSD の top(1) より流用)。
PID プロセス ID
USERNAME プロセス所有者名 ( -u 指定時は UID カラムが USERNAME に取って替わる)、
PRI 現在のプロセス優先度
NICE nice 値 (-20 から 20 までの範囲)
SIZE プロセスサイズの合計 (text, data, stack)
RES 現在のメモリ常駐量 (SIZE と RES はいずれもキロバイト単位)
STATE 現在の状態 ("sleep", "WAIT", "run", "idl", "zomb", "stop" のいずれか)
TIME プロセスが消費したシステム時間およびユーザ時間の秒数
WCPU (もしあれば) 重み付き CPU パーセンテージ (これは ps(1) が CPU として表示するものと同じ)
CPU 生のパーセンテージで、プロセス順序を決めるソート処理に用いられるもの
COMMAND プロセスが現在実行しているコマンド名です (もしプロセスがスワップアウト中なら、このカラムには "<swapped>" という印がつく)

top コマンドのオプション
-a (Linux の top):
メモリ使用量順にソート (多いものほど上に表示される)
-a (FreeBSD の top):
"COMMAND" の列について、引数を表示。argv[0] が更新されている場合、更新前の argv[0] をカッコ内に表示する
  PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME    WCPU COMMAND
  327 www           1  36    0 86300K  3448K lockf   0   0:00   0.35% /usr/local/sbin/httpd -DNOHTTPACCEPT
 2296 68user        1  20    0 20120K  2856K CPU0    0   0:00   0.12% top -a
95839 68user        1  20    0 83092K  5788K select  1   0:06   0.03% sshd: 68user@pts/0 (sshd)
  841 root          1  20    0 20600K   720K select  0  31:20   0.02% sendmail: accepting connections (sendmail)
-b (Linux の top):
バッチモード。太字や色などのエスケープシーケンスを出力せず、ユーザからのキー入力を受け付けない。-n オプションで最大繰り返し回数を指定しない限り、永遠に動き続ける。
-b または -n (FreeBSD の top):
バッチモード。一度だけ出力し、終了する。-b も -n も同じ挙動になる。
-S swapper、pagedaemonなども表示する
-I アイドル状態のプロセスを表示しない
-d [更新間隔秒数] (Linux の top)
デフォルトでは 3秒おきに情報を更新するが、-d オプションにて更新間隔 (秒数) を指定できる。-d 0.1 や -d 0 などもできるが、ちらつくだけで見られたものではないし、マシンに負荷がかかるだろう。
-d [繰り返し回数] (FreeBSD の top)
繰り返し回数を指定する。デフォルトでは top コマンドは無限に更新し続けるが、-d 10 とすると 10回情報を更新すると終了する。
-n [繰り返し回数] (Linux の top):
繰り返し回数を指定する。デフォルトでは top コマンドは無限に更新し続けるが、-n 10 とすると 10回情報を更新すると終了する。
-P (FreeBSD の top)
CPU のコア別に CPU 使用率などを表示する。top 実行中に "P" を入力するとトグル切り替えができる。
-u ユーザ名 (Linux の top)
指定のユーザ名のプロセスのみを表示
-U ユーザ名 (FreeBSD の top)
指定のユーザ名のプロセスのみを表示

関連コマンド
>> Linuxオンラインマニュアル(man) Linux top(1)
>> FreeBSDオンラインマニュアル(man) FreeBSD top(1)