topコマンド

Linux
この記事は約10分で読めます。

前々回は自身のプロセスの状態を把握するpsコマンドについてでしたが、そのpsコマンドを静止画とすると、その動画版であるtopについての話。

さらにtopのカラー版がhtopです。

topコマンドの実行

ターミナルで ” top ” と入力します。

psの状態のモニターが始まります。

表示結果の解釈

モニターは上段5行のヘッダー部と、その下のプロセス表示部に分かれています。

top

ヘッダ部

主に統計情報が表示されます。

top header

1行目

top – 「現在の時刻」
up 「システムの稼働時間」,
「ログインユーザ数」 users,
load average: 「過去1分」, 「過去5分」, 「過去15分」 (下記参照)

load averageについて

平均タスク待ち数(単位時間当たりの平均的なシステムへの負荷タスク数)のことです。

計算方法は、CPU1コア当たりの(実行中のタスク+実行待ちのタスク)の平均値を計算します。

例えば4コアのラズパイの場合、この値が4.0となれば100%CPUを使用していることになります。

参考

仕事単位の大きさ: ジョブ > プロセス > スレッド

タスク数=プロセス数+スレッド数

2行目 タスクの情報

現在取り扱っているタスク数が表示されています

tasks: 「総数」total, 「実行中の数」 running, 「待機中の数」sleeping, 「停止中の数」zombie

3行目 CPU使用率

CPU使用割合が%表示されています。

usユーザープロセスのCPU使用割合
syシステムプロセスのCPU使用割合
ni優先度を変更されたプロセスのCPU使用割合(nice値)
idアイドル状態(何もしていない)の割合
waI/O待機に消費されている割合
hiハードウェア割り込み処理に消費されている割合
siソフトウェア割り込み処理に消費されている割合
st他の仮想マシンに盗まれた割合

nice値:優先度を示す値:小さいほど優先:優先度が上がればマイナス表示、優先度が低いとプラス表示

4行目 メモリ使用状況(物理メモリ)

total合計メモリ容量
free未使用メモリ容量
used使用中メモリ容量
buffバッファやキャッシュに使用中メモリ容量

5行目 メモリ使用状況(スワップ)

total合計スワップ容量
free未使用スワップ容量
used使用中スワップ容量
avail mem使用可能メモリ容量(物理+スワップ)

プロセス表示部

” ps aux ” コマンド実行時と同じような、現在実行中のプロセスが一覧表で表示されます。

top process

列の意味

デフォルトで表示されるプロセス表示欄の各列の意味です。

PIDプロセスID
USERユーザ名
PR優先度:低い方が優先
NInice値(相対優先度):低い方が優先
niceコマンドによるユーザの優先度補正が可能
-20から19までの数値
VIRT仮想メモリ(物理メモリ+スワップ)
RES物理メモリ
SHR共有メモリ(他プロセスとの共有可能性含む)
S状態コード(下記)
( ” ps aux ” の ” STAT ” 列に相当)
%CPUCPU使用率
%MEMメモリ使用率
TIME+累積のCPU使用時間
COMMANDコマンド名またはプロセス名

S(状態コード)欄の意味

そのプロセスの状態を表示します。 ” ps aux ” の ” STAT ” 列の表示に相当します。

状態コード説明
R実行中(Running)又は実行可能状態、CPUで動作中。
S待機中(Sleeping)割込可能
D割込不可の待機中ディスク操作中など
Zゾンビプロセス終了したが親プロセスが回収していない
T停止中

オプション

デフォルトでは3秒毎に表示の更新が行われています。

静止画オプション

psと同じようにある瞬間の情報を得たい場合は、

top -b -n 1

 ”-b ” がバッチ(書き出し)オプション、 ” -n 1 ” で1回目の更新時に終了(してそれを書き出し)というオプションです。

” -d ” オプション

データ更新までの時間(デフォルトでは3秒)を変更設定する。

例えば5秒毎に更新したいならば、

” -v ” オプション

バージョンは4.0.4

top version

topのヘルプ

以下の通り

help

対話モードでのキー操作

コマンドラインのオプション以外にも、topコマンド実行後のキー操作(対話モードでのキー操作)で様々な操作ができます。以下、代表的なキー操作です。

” q ” キー

topの終了キーです。

” h ” キー

キー操作のヘルプが表示されます。

h

ヘルプ画面からの離脱は、 ” q ” 又は ” Esc ” キー。

プロセス操作キー

” k ” キー

プロセスを終了させます。

kキー後に指定するシグナル番号の詳細

シグナル名番号意味
SIGTERM15デフォルトの終了(普通終了)
SIGKILL9強制終了(普通終了が出来ない時)
SIGHUP1設定の再読込(デーモンに使用)
SIGSTOP19一時停止
” kill –STOP <PID> ” コマンドと同じ
SIGCONT18一時停止したプロセスの再開

当然ですが重要なシステムプロセスを誤って停止させてしまうとシステムが不安定になるので注意が必要です。

” kill ” コマンドの、 ” kill –シグナル番号 <PID> ” と同じ効果です。

” r ” キー

プロセスの相対優先度(nice値)を変更する。値は-20(最優先)から、19(最劣後)まで。

rキーの後、優先度を変更したいPIDを入力し、nice値を入力する。

表示更新

space キー

手動で更新する。

” d “, 又は ” s ” キー

更新間隔(デフォルトは3秒)を変更。

” d “, 又は ” s ” を入力した後、秒数を入力。

d, s

上から6行目に入力表示が出ます。(上記は「10秒毎」に設定を変更しようとしています。

並び替え

いずれも大文字なので、 ” shift + 小文字 ” で入力します。

キー機能ソート列
PCPU使用率でソート(デフォルト)%CPU
Mメモリ使用率でソート%MEM
T累積CPU時間でソートTIME+
NプロセスIDでソートPID
R逆順にソート

検索・フィルタリング

ここでは ” u ” と ” o ” キーを取り上げます。

” u ” キーによるフィルタリング

” u ” キーにより、特定ユーザのみを表示できます。

” u ” キーにより、6行目が以下の入力待ちの状態となります。

u1

例としてユーザ ” kali ” のみを表示します。

u2

実行結果

u3

” o ” キーによるフィルタリング

” o ” キーにより、6行目が以下の入力待ちの状態となります。

o1

例として ” COMMAND=systemd ” の条件を設定しています。

o2

フィルタリングの実行結果

o3

表示のカスタマイズ

” f ” , ” X ” , ” z ” , ” b ” キーによる表示のカスタマイズができますが、ここでは列のカスタマイズを取り上げます。

” f ” キーによる列のカスタマイズ

” f ” キーを押すと列のリストが表示されます。

f

%CPUの項目がハイライトされていますが、上下キーでそのハイライトを動かせます。

(例:PPIDにハイライトが移動しています。)

f1

Spaceキーを押すと、選択/非選択を切り替えられます。

f2

左に*印が付き、選択されました。

” q ” キーで元の画面に戻ると、 ” PPID ” 列が追加されています。

f3

表示形式のカスタマイズ(ヘッダー部)

” 1 ” キー

ヘッダー部の各CPUコアの使用状況の表示/非表示の切替をします。

1

ラズパイのCPUは4コアなので、CPU0からCPU3までの4つのコア毎のCPU使用率が表示されます。

” t ” キー

ヘッダー部のタスクとCPUの統計情報の切替を行います(3画面あります。デフォルトを入れると4画面)

まずはデフォルト画面
t1
” t ” キーを1回押し後
t2

CPU使用率がグラフ表示になります。

” t ” キーを2回押し後
t3

CPU使用率が横棒グラフ表示になります。

” t ” キーを3回押し後
t4

タスクとCPUの欄が非表示となります。

さらに ” t ” キーを押すとデフォルト画面に戻ります。

” m ” キー

ヘッダー部のメモリとスワップの情報の表示/非表示の切替を行います。

まずはデフォルト画面
m1
” m ” キーを1回押し後
m2

メモリ/スワップの表示がグラフ表示となります。

” m ” キーを2回押し後
m3

メモリ/スワップの表示が横棒グラフ表示となります。

” m ” キーを3回押し後
m4

メモリ/スワップの表示が非表示となります。

さらに ” m ” キーを押すとデフォルト画面に戻ります。

表示形式のカスタマイズ(プロセス表示部)

” c ” キー

プロセス表示部のコマンド列の表示形式を変更します。

デフォルト画面のコマンド列。単純なコマンド名が表示されています。

c1

” c ” キーを押した後、

c2

詳細なフルコマンドラインが表示されます。

もう一度 ” c ” キーを押すとデフォルト画面に戻ります。

カスタマイズ内容の保存

” w ” キーにて保存できます。

現在の設定を保存し、次回に引継きます。

マウウェア発見の手掛かりとして

psコマンドの項でも述べましたが、topコマンドによるプロセスの監視により、不審なプロセスを発見する手掛かりになります。

注意点・限界

プロセスの監視だけでマルウェアを発見しようとする場合には、限界があります。

追加の精査手段

挙動不審なプロセスを発見した場合の追加検査手段。

まとめ

今回、topとhtopを併せて取り上げようと思ったのですが、topだけでかなりの分量となりましたので分割することにしました。

普段と何か違うような気がする場合、自分のマシンの挙動に不審を抱いた時にはとりあえずtopを覗いてみるのもアリかなと思います。

Mac上でもターミナルを起動すればtopが動きます。

(但しオプション類が、kali版とはかなり異なります)

top on mac
Mac上のターミナルで動くtop

また異常な状態を検知するには、普段からの状態を時々把握しておく必要があります。

コメント

タイトルとURLをコピーしました