topコマンドは、CPUをたくさん使っている順に、システムのプロセスを一定間隔で表示します。またプロセスを操作するための対話的なインターフェースがあり、結果を、CPUの使用度、メモリの使用量、実行時間などでソートしたりすることができます。
topコマンドは、デフォルトの設定を「/etc/toprc」と「~/.toprc」の2つのファイルから読み込みます。
また、Solarisではtopコマンドが標準で入っていませんので、prstatコマンドを使用します。
- ① d delay
- 画面を更新する間隔(秒)を「delay」に指定します。実行後は、対話コマンド「s」で変更することができます。デフォルトの更新間隔は5秒です。
- ② p pid
- 「pid」に指定したプロセスIDのプロセスのみを監視します。このフラグは20回まで指定することができます。
- ③ q
- 遅延時間なしで更新を続けます。スーパーユーザ特権を持って実行すると、最高の優先度で実行します。
- ④ c
- コマンド名だけでなく、コマンドラインを表示します。
- ⑤ C
- 各々のCPUの状態だけでなく全体のCPUの統計も表示します。SMP(CPUを複数搭載した)システムにのみ有効です。
- ⑥ S
- 累積モードを有効にします。死んだ子プロセスの分も含めて、利用したCPU時間とともに表示します。
- ⑦ s
- セキュアモードで実行して、潜在的に危険な対話的コマンドの実行を禁止します。
- ⑧ i
- アイドルプロセスやゾンビプロセスを無視します。
- ⑨ n iter
- 更新回数を「iter」に指定します。指定した回数だけ表示を更新して終了します。
- ⑩ b
- バッチモードを指定します。出力を他のプログラムやファイルに送る時に使用します。この時topコマンドはコマンドライン入力を受け付けません。オプション「n」で指定した回数だけ表示を繰り返すか、[Ctrl]+[C]キーを押すことなどによって中断されるまで実行を続けます。
topコマンドの実行中には、いくつかの対話コマンドを使用できます。これらについては、巻末にまとめていますので、そちらをご覧ください
$ top
10:27pm up 5:53, 6 users, load average: 1.82, 1.44, 1.27 ①
125 processes: 120 sleeping, 4 running, 1 zombie, 0 stopped ②
CPU states: 35.2% user, 14.3% system, 7.4% nice, 42.9% idle ③
Mem: 772468K av, 679768K used, 92700K free, 0K shrd, 110868K buff ④
Swap: 875500K av, 0K used, 875500K free 338988K cached ⑤
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
1350 cmd 15 0 13660 13M 2756 S 47.2 1.7 68:38 Xvnc
(略) 250 root 15 0 0 0 0 SW 0.0 0.0 0:00 knodemgrd ⑥
各フィールドについてまとめると以下のようになります。
① uptime
システムが起動してからの経過時間と、システムの負荷平均(load average)を表示します。システムの負荷平均は、実行待ちの状態にあるプロセスの、最近1分間、5分間、15分間の平均です。
② processes
最後の更新時に実行中だったプロセスの総数を表示します。また、実行状態(running)、スリープ状態(sleeping)、ゾンビ状態(zombie)、停止状態(stopped)のプロセス数をそれぞれ表示します。
③ CPU states
CPUの負荷率を、以下のプロセス状態に分けて表示します。
User :ユーザモードのプロセス
System :システムモードのプロセス
nice :nice値が負のプロセス
idol :アイドルプロセス
なお、nice値が負のプロセスのCPU使用時間は、ユーザモードやシステムモードの時間としてもカウントされるので、これらの総計は100%より大きくなります。
④ Mem
メモリの利用統計を表示します。利用できるメモリの総量、利用中のメモリ、空きメモリ、共有メモリ、バッファに用いられているメモリを、それぞれ表示します。
⑤ Swap
スワップ空間の統計を表示します。スワップ空間の総量、利用されているスワップ空間の量、利用可能なスワップ空間の量、キャッシュの量をそれぞれ表示します。
⑥ 各列に表示される内容について、表にまとめると以下のようになります。
PID | プロセスIDを表示する |
PPID | 親プロセスIDを表示する |
UID | 所有者のユーザIDを表示する |
USER | 所有者のユーザ名を表示する |
PRI | 優先度を表示する |
NI | 優先度をnice値で表示する。小さな値ほど優先度が高い |
SIZE | 「コード+データ+スタック」のサイズをキロバイト単位で表示する |
TSIZE | コードサイズを表示する。カーネルプロセスおよびELFプロセスに対しては動作しない |
DSIZE | 「データ+スタック」のサイズを表示する。ELFプロセスに対しては動作しない |
TRS | テキスト常駐サイズを表示する |
SWAP | スワップアウトされた部分のサイズを表示する |
D | dirtyマークされたページのサイズを表示する |
LC | 最後に利用されたプロセッサを表示する |
RSS | プロセスが用いている物理メモリの総量をキロバイト単位で表示する。ELFプロセスが用いているライブラリのページは計上するが、a.outプロセスでは計上しない |
SHARE | プロセスが利用している共有メモリの量を表示する |
STAT | プロセスの状態を表示する。状態は以下のとおりである S …… スリープ状態 T …… 停止中または/トレース中 D …… 割り込み不可能なスリープ状態 < …… 負のnice値を持つプロセス R …… 実行中 N …… 正のnice値を持つプロセス Z …… ゾンビ W …… スワップアウトされたプロセス |
WCHAN | プロセスがスリープしているカーネル関数を表示する |
WCHAN | 「/boot/psdatabase」またはカーネルのリンクマップ「/boot/System.map」があれば名前を、なければアドレスを表示 |
%CPU | 最後に画面が更新されて以降、プロセスがCPUを占有していた割合を、プロセッサひとつあたりの時間に対するパーセンテージで表示する |
%MEM | プロセスの物理メモリの占有量を表示する |
TIME | プロセスが起動してから利用したCPU時間の総計を表示する。累積モードが有効な場合、既に死んだ子プロセスが使ったCPU時間も含まれる。また、累積モードが有効な場合は、ヘッダ行が「CTIME」となる |
COMMAND | プロセスのコマンド名を表示する。一行におさまらない場合は一部の表示となる。また、メモリにあるプロセスはコマンドライン全体が表示されるが、スワップアウトされたプロセスは、名前だけをかっこで囲んで表示する |
本コンテンツは「UNIXコマンド辞典 ビギナー編」(2003年)を元にWeb用に再編集したものです
All Contents copyright © 2003-2009 Odyssey Communications Inc., Shoeisha Co., Ltd.