EN JA
TOP(1)
TOP(1) FreeBSD General Commands Manual TOP(1)

名称

top - CPU プロセスの上位リストに関する情報を表示/更新する

書式

top [ -abCHIijnPqStuvz ] [ -d count ] [ -m io | cpu ] [ -o field ] [ -s time ] [ -U username ] [ number ]

解説

top は、システム内の上位プロセスを表示し、その情報を定期的に更新します。標準出力がインテリジェント端末 (以下を参照) なら、デフォルトでは、端末画面に合わせて表示プロセス数を決定します。それ以外の場合、適切な数のプロセス (約 20 プロセス) が表示されます。生の CPU パーセンテージを用いてプロセス順位を決めます。もし number が指定されると、デフォルト値に代えて、上位 number プロセスが表示されます。

top の動作は、高機能端末とそうでない端末とで異なります。この差異によって、いくつかのオプションのデフォルト値も変わってきます。以下の部分では、"インテリジェント"端末とは、カーソルアドレシング、画面クリアおよび行末までのクリアをサポートしている端末のことを指します。逆に "ダム"端末とは、そのような機能をサポートしていないものをいいます。 top の出力をファイルにリダイレクトすると、あたかもダム端末上で動作しているように振る舞います。

オプション

-C
CPU 表示モードを切り替えます。デフォルトで、top は、WCPU カラムで重み付けされた CPU の割合を表示します (これは、 ps(1) が CPU として表示する値と同じです)。 -C フラグが渡されるごとに、それぞれ "CPU"または "WCPU"カラムを表示する、"生の cpu"モードと "重み付けされた cpu"モードを切り替えます。
-S
システムプロセスも画面に表示します。 pager や swapper といったシステムプロセスは、通常、表示されませんが、このオプションによりそれらも見えるようになります。
-a
実際の実行形式の名前でなく、argv[] ベクトルから得られたコマンド名を表示します。それは、アプリケーションの状態情報をそこへ置く、アプリケーションを監視したいとき、役に立ちます。実際の名前が argv[0] と異なっているなら、丸括弧で囲んでそれを表示します。
-b
"バッチ"モードにします。バッチモードでは、端末からの入力は、全て無視されます。ただし割り込みキャラクタ (^C や ^\など) は、有効です。ダム端末上で実行する場合や出力先が端末以外の場合は、これがデフォルトです。
-H
マルチスレッド化されたプロセスのための各スレッドを個別に表示します。デフォルトで、単一の概要の行がプロセス毎に表示されます。
-i
"対話的実行"モードにします。対話的実行モードでは、あらゆる入力は、直ちに読み込んで処理されます。どのキーがどういう機能をもっているかについては、 "対話的実行モード"のセクションを参照して下さい。コマンドが処理されると、そのコマンドが理解されなかった場合でも、画面は、直ちに更新されます。出力先がインテリジェント端末の場合は、これがデフォルトです。
-I
アイドル状態のプロセスを表示しません。デフォルトでは、 top は、アクティブプロセスもアイドルプロセスも両方とも表示します。
-j
jail(8) ID を表示します。
-t
top プロセスを表示しないようにします。
-m display
'cpu' と 'io' のどちらかの統計情報を表示します。デフォルトは、'cpu' です。
-n
"非対話的実行"モードにします。これは、"バッチ"モードと同じです。
-P
cpu 毎の CPU 稼働統計を表示します。
-q
top を -20 に renice し、より高速に実行されるようにします。この機能は、システムが大変重い場合に、問題箇所を発見する可能性を高めるために用いられます。このオプションは、root のみ使用可能です。
-u
uid 値をユーザ名に変換する時間を割かないようにします。通常、 top は、必要に応じてファイル "/etc/passwd"を読み、出現する全てのユーザ id 値をログイン名に変換します。このオプションは、その変換を全て止め、できるだけ実行時間を低減させます。ログイン名の代わりに uid 値が表示されます。
-v
バージョン番号情報を標準エラー出力へ書き込み、即座に終了します。このオプションが使用された場合、他の処理は、行われません。 top 実行中に現在のリビジョン情報を閲覧したい場合、ヘルプコマンド "?"を使用してください。
-z
システムでアイドル中のプロセスを表示しません。
-d count
count 回だけ表示し、その後終了します。 1 回の表示とは、1 回の画面更新のことです。このオプションにより、ユーザは、希望する回数だけ状況を表示し、その後自動的に top を終了させることができます。インテリジェント端末では、表示回数の上限は、設定されていません。ダム端末では、デフォルト値は、1 回です。
-s time
画面更新間隔を time 秒に設定します。デフォルトの画面更新間隔は、2 秒です。
-o field
プロセス表示領域を指定したフィールドによってソートします。フィールド名には出力で示されているカラム名を用いますが、小文字で指定します。しばしば用いられる値は、"cpu", "size", "res", "time"ですが、これは、OS によっても異なります。必ずしも全ての OS でこのオプションがサポートされているわけではないことに注意して下さい。
-U username
ユーザ username が所有しているプロセスのみ表示します。現在のところ、このオプションは、ユーザ名指定のみ可能で、uid 値は、指定できません。

countnumber は、いずれも "無限"を指定でき、その場合、それらは、可能な限り引き延ばされます。これは、キーワード "infinity", "maximum", "all"のいずれかの、一意に識別可能な先頭からの部分文字列を指定することで行われます。実際、インテリジェント端末での count のデフォルト値は、 infinity となっています。

コマンドラインのオプションを調べる前に、環境変数 TOP が調べられます。これによりユーザ自身のデフォルト値を設定できます。表示プロセス数も環境変数 TOP で指定可能です。オプション -a, -C, -H, -I, -j, -P, -S, -t, -u-z は、実際にトグルを切り替えます。これらのオプションを 2 回指定すると、最初の指定を無効にします。ですから、環境変数 TOP を "-I"と設定しているユーザは、 "top -I"とすることでアイドルプロセスの状況を見ることができます。

対話的実行モード

"対話的実行モード"で動作している場合、 top は、端末からコマンドを読み込み、それに応じて動作を行います。このモードでは、端末は、"CBREAK"モードに設定され、入力文字が速やかに処理されるようになります。 top の表示と表示の間、つまり toptime 秒が経過するのを待っている間、ほとんどいつでもキー入力可能です。実際キーが押されると、そのコマンドは、直ちに処理され、画面が更新されます (そのコマンドが指示した変更も反映されます)。これは、コマンドが正しくない場合にも行われます。画面を更新している最中にキーが押されると、 top は、画面更新を終らせて、そのコマンドを処理します。コマンドによっては、更に情報の指定が必要になるものもありますが、その場合、それに応じてユーザに入力が求められます。その情報を入力する間、ユーザの削除キーと行削除キー ( stty コマンドで設定される) が利用でき、改行により入力が完了します。

現在のところ、以下のコマンドが利用可能です (^L は、control-L を表します):

^L
画面を再描画します。
h または  ?
コマンド一覧 (ヘルプ画面) を表示します。バージョン情報がこの画面に含まれます。
q
top を終了します。
d
表示する画面数を変更します (新しい数値入力が求められます)。次回の表示が 1 回目となります。ですから d1 と入力すると、 top は、1 回表示して直ちに終了します。
m
'cpu' と 'io' モードの表示をトグルします。
n または #
表示するプロセス数を変更します (新しい数値入力が求められます)。
s
表示間隔の秒数を変更します (新しい数値入力が求められます)。
S
システムプロセスの表示をトグルします。
a
プロセスタイトルの表示を切り換えます。
k
プロセスリストにシグナル (デフォルトでは、"kill") を送ります。 kill(1) コマンドと同様の働きをします。
r
プロセスリストの優先度 ("nice"値) を変更します。 renice(8) コマンドと同様の働きをします。
u
指定したユーザ名のユーザが所有するプロセスのみ表示します (ユーザ名入力が求められます)。ユーザ名として単に "+"が指定された場合、全ユーザのプロセスが表示されます。
o
表示のソート順序を変更します。必ずしも全ての OS でこのオプションがサポートされているわけではありません。ソートキーは、システムによって異なりますが、通常は、次のものが含まれます: "cpu", "res", "size", "time"。デフォルトは、cpu です。
e
前回の kill または renice コマンドで生じたシステムエラーがあれば、そのリストを表示します。
H
スレッドの表示を切り換えます。
i
(または I) アイドルプロセスの表示有無を切り替えます。
j
jail(8) ID の表示を切り換えます。
P
CPU 毎の統計値の表示を切り換えます。
t
top の表示有無を切り替えます。
z
システムでアイドル中のプロセスの表示を切り換えます。

表示

実際の表示画面は、そのマシンで動作している Unix の種類によって異なります。ここでの説明は、この特定マシンで動作する top コマンドの出力と厳密には合っていないかもしれません。相違点は、このマニュアルの終りに示してあります。

表示画面の先頭数行にはシステム状態に関する情報として、プロセスに割り当てられた最終プロセス ID (ほとんどのシステム)、 3 種のロードアベレージ、現在時刻、存在するプロセス数、各状態 (sleep 中、実行中、実行開始中、ゾンビ、停止中) のプロセス数、各プロセッサ状態 (ユーザ, nice, システム, アイドル) で消費した時間の割合等が表示されます。物理メモリおよび仮想メモリの割り当てに関する情報も表示されます。

画面の残りの部分には各プロセスに関する情報が表示されます。表示項目は、内容的には ps(1) に似ていますが、正確には同じではありません。 PID は、表示されるとき、プロセスに対応する jail(8) ID である、プロセス ID、JID で、 USERNAME は、プロセス所有者名 ( -u 指定時は、UID カラムが USERNAME に取って替わる)、 PRI は、現在のプロセス優先度、 NICE は、nice 値 (-20 から 20 までの範囲)、 SIZE は、プロセスサイズの合計 (text, data, stack)、 RES は、現在のメモリ常駐量 (SIZE と RES は、いずれもキロバイト単位)、 STATE は、現在の状態 ("START", "RUN" (SMP システムでは、 "CPUn"と表示), "SLEEP", "STOP", "ZOMB", "WAIT", "LOCK"またはプロセスウェートする (待ち) イベントの一つ)、 C は、実行されているプロセスのプロセッサ番号 (SMP システムのみ表示)、 TIME は、プロセスが消費したシステム時間およびユーザ時間の秒数、 WCPU は、(もしあれば) 重み付き CPU パーセンテージ (これは、 ps(1) が CPU として表示するものと同じ)、 CPU は、生のパーセンテージで、プロセス順序を決めるソート処理に用いられるもの、そして COMMAND は、プロセスが現在実行しているコマンド名です (もしプロセスがスワップアウト中なら、このカラムには "<swapped>"という印がつく)。

注意

プロセスが "SLEEP"または "LOCK"状態であるなら、状態のカラムは、プロセスが待っている、イベントまたはロックの名前を報告します。ロック名は、スリープイベントでない間、アスタリスク "*"が前に付けられます。

作者

William LeFebvre, EECS Department, Northwestern University

環境変数

TOP ユーザが設定できるオプションのデフォルト値

関連ファイル

/dev/kmem カーネルメモリ
 
/dev/mem 物理メモリ
 
/etc/passwd uid 値をユーザ名に変換するのに使用
 
/boot/kernel/kernel システムイメージ

バグ

-I のデフォルト値が、もう一度変更されましたが、私を責めないで下さい。 top が全プロセスを表示するわけではないことで大変多くの人が混乱したため、バージョン 2 の頃と同様、デフォルトでアイドルプロセスも表示することに決めました。しかしこの動作に耐えられない人々のために、環境変数 TOP に "デフォルト"オプションを設定しておく機能を追加しました (オプションのセクションを参照)。バージョン 3.0 が持っている振る舞いが必要な人は、環境変数 TOP に値 "-I"を設定するだけで OK です。

スワップされたプロセスに対するコマンド名は、追跡すべきですが、それを行うとプログラムの動作が遅くなるでしょう。

ps(1) と同様、 top が更新情報を収集している間に事態が変化する可能性があります。表示内容は、現実に近い近似値に過ぎません。

関連項目

kill(1), ps(1), stty(1), mem(4), renice(8)

FreeBSD に関する注

メモリに関する説明

Mem: 9220K Active, 1M Inact, 3284K Wired, 1M Cache, 2M Buf, 1320K Free ARC: 2048K Total, 342K MRU, 760K MFU, 272K Anon, 232K Header, 442K Other Swap: 91M Total, 79M Free, 13% Inuse, 80K In, 104K Out
K:
キロバイト。
M:
メガバイト。
G:
ギガバイト。
%:
1/100。

物理的メモリ統計

Active:
アクティブなバイト数。
Inact:
アクティブでないバイト数。
Wired:
BIO レベルのキャッシュされたファイルのデータページを含む、固定されている (wired down) バイト数。
Cache:
即座の再配分に利用可能なデータをキャッシュするクリーンなバイトの数。
Buf:
BIO レベルのディスクキャッシュに使用しているバイト数。
Free:
未使用バイト数。

ZFS ARC 統計

ARC が使用されているときのみ、これらの統計が表示されます。
Total:
ZFS ARC のために使用される結合された (wired) バイトの数。
MRU:
最も最近使用されたデータを保持する ARC バイトの数。
MFU:
最も頻繁に使用されるデータを保持する ARC バイトの数。
Anon:
フライト (flight) データで保持されている ARC バイトの数。
Header:
ヘッダを保持している ARC バイトの数。
Other
雑多な ARC バイト。

スワップ統計

Total:
使用可能なスワップ合計。
Free:
未使用スワップ合計。
Inuse:
使用中スワップ。
In:
(直前の表示間隔において) スワップデバイスからページインしたバイト数。
Out:
(直前の表示間隔において) スワップデバイスにページアウトしたバイト数。
Local 4th Berkeley Distribution