Hack 90. Top コマンド
top コマンドは。CPU ロード時間・メモリ使用量・プロセスリストなどのような
システムのパフォーマンス指標についてのリアルタイムの情報を表示します。
Syntax: top [options]
CPU 使用量のような現在のシステム状態はどのようにしたらみることができるのでしょうか?
コマンドラインから何もオプションを指定せずに top コマンドを実行してください。
以下に示すような出力が表示されるでしょう。
top コマンドの出力はリアルタイムの値を表示しつづけます。
「Control + c」か q を入力しない限り、コマンド出力から抜けられません。
# top top - 13:10:13 up 171 days, 20:21, 3 users, load average: 0.01, 0.05, 0.00 Tasks: 194 total, 1 running, 193 sleeping, 0 stopped, 0 zombie Cpu(s): 0.6% us, 0.7% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 1034624k total, 1007420k used, 27204k free, 174540k buffers Swap: 2031608k total, 0k used, 2031608k free, 615904k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 11912 apache 15 0 31828 13m 3916 S 1 0.2 0:46.35 httpd 19299 oracle 19 0 279m 18m 17m S 1 0.2 0:00.03 oracle 11398 jsmith 16 0 107m 28m 6404 S 0 0.4 0:03.07 perl
上記の top コマンドの出力をどのようにみたらよいでしょうか?
o Line 1 “top”は、システムが起動してから 171 日間実行していることを示します。
o Line 2 “Tasks”はプロセスの総数を示し、順に実行中・スリープ中・停止中・ゾンビプロセス数を示します。
o Line 3 “Cpu(s)”はシステムの現在の CPU 使用量を示します。例では、CPU は 98.7% アイドル状態です。
o Line 4 “Mem” と line 5 “Swap” はメモリ情報を示します。free コマンドと同じ情報になります。
o 残りの行はシステムのアクティブなプロセスすべてを示します。デフォルトでは CPU 使用率(%CPU カラム)でソートされています。
つまりデフォルトでは最も頻繁に CPU を使用してるプロセスが上位に表示されます。
top コマンドで利用可能なコマンドラインオプションやインタラクティブオプションがいくつかあります。
top コマンドのよく使用するオプションをいくつかみてみましょう。
もっともメモリを使用しているプロセスを調べるには?
top コマンドの出力が表示されているときに F を入力します。
そうすると次のようなメッセージが表示され、ソート可能なフィールドすべてを表示します。
たとえば n (メモリ使用量でプロセスをソートします) や enter を入力します。
top 出力のプロセスをメモリ使用量でソートして表示します。
Current Sort Field: K for window 1:Def
フィールドの文字を通してソートフィールドを選択します。
それ以外のキーを入力すると元に戻ります。
top 出力にフィールド(たとえば CPU 時間)を追加するには?
top コマンドが実行中に f を入力します。
そうすると次のようなメッセージが表示され、ソート可能なフィールドすべてを表示します。
l を入力すると、top 出力に CPU 時間のカラムが表示されます。
Current Fields: AEHIOQTWKNMbcdfgjplrsuvyzX for window 1:Def
フィールド文字を通してフィールドを入れ替えします。
ほかのキーを入力すると元に戻ります。
実行プロセスの振るパス名や引数を取得するには?
top コマンドが実行中に、c を入力します。
以下に示すようにコマンドカラムに実行プロセスのフルパス名が表示されます。
たとえば、httpd と表示されずに /usr/local/apache2/bin/httpd と表示されます。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 11912 apache 15 0 31828 13m 3916 S 1 0.2 0:46.35 /usr/local/apache2/bin/httpd
top コマンドで個々の CPU を表示するには?
top コマンド実行中に 1(数字のいち)を入力します。
以下に示すようにマシン上の個々の CPU のパフォーマンスデータを表示します。
top - 13:10:13 up 171 days, 20:21, 3 users, load average: 0.01, 0.05, 0.00 Tasks: 194 total, 1 running, 193 sleeping, 0 stopped, 0 zombie Cpu0 : 10.2% us, 2.6% sy, 0.0% ni, 86.8% id, 0.3% wa, 0.0% hi, 0.0% si Cpu1 : 9.6% us, 8.0% sy, 0.0% ni, 82.4% id, 0.0% wa, 0.0% hi, 0.0% si Cpu2 : 1.3% us, 1.3% sy, 0.0% ni, 95.0% id, 2.3% wa, 0.0% hi, 0.0% si Cpu3 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 1034624k total, 1007420k used, 27204k free, 174540k buffers