Linux / コマンド / top - プロセスのリソース使用量をリアルタイムで確認

topは、CPU・メモリ使用量とプロセスの状態を繰り返し更新するインタラクティブなツールです。サーバーが遅くなったときに、どの作業がリソースを使用しているかをリアルタイムで確認できます。

上部にはシステムの負荷、CPU、メモリの概要があり、下部にはプロセスごとの数値が表示されます。一度の高い数値よりも、複数回の更新で持続するパターンを見ることが重要です。終了するには、画面内でqを押します。

基本的な文法

top [オプション]

インストールされている実装とオプションは、配布版によって異なる場合があります。man topで現在のシステムの説明を確認してください。

使用例

リアルタイムリスト表示

実行中に q で終了します。大文字の P はCPU使用率、大文字の M はメモリ使用量を並べ替えの基準にします。

top

特定のPIDのみ観察

psで確認したプロセスID(PID) に 1234 を置き換え、そのプロセスに絞って観察します。

top -p 1234

一度だけ出力

対話型画面が不要なときは、バッチモードで1回だけ記録します。

top -b -n 1

リアルタイム画面で最初に確認する値

topを実行すると、上部にロード平均、CPU・メモリの概要が、下部にはプロセスごとのPID・CPU使用率・メモリ使用率が周期的に更新されます。バッチモードでは、1回の画面をテキストとして取得できます。

top -b -n 1 | head -n 8

例示画面の構造(数字はシステムごとに異なります):

top - ... load average: ...
Tasks: ... total, ... running
%Cpu(s): ... us, ... sy, ... id
MiB Mem : ... total, ... free, ... used
    PID USER      %CPU %MEM COMMAND

%CPUだけで問題を断定せず、持続時間とプロセスの役割も合わせて見てください。対話型画面では、PでCPU基準にソート、Mでメモリ基準にソート、qで終了できます。表示単位と列は実装・設定によって異なります。VIRTは予約領域なども含む仮想アドレス空間で、その量がそのまま物理メモリ消費ではありません。RESは現在物理メモリにある領域を表し、共有ページも含むため、単純に合計せず、freeのシステム全体のメモリ表示 などと併せて確認します。

主なオプションと形式

オプション・形式 説明
-p PID 指定したPIDのみ観察します。
-d 秒 画面更新間隔を設定します。
-b バッチ出力モードを使用します。
-n 回数 指定した回数だけ更新します。

使用する際の注意点

1回の表示だけで持続的な負荷を判断せず、複数回の更新を見ます。CPU使用率の計算範囲と累積CPU時間は区別してください。1つのプロセスが複数コアを使うと100%を超える場合がありますが、CPU数で正規化する設定もあるため表示モードを確認します。q はtopの表示を終了する操作で、監視中のプロセスを終了させません。一方、k などのシグナル送信操作は対象の動作へ影響するため、PIDと実行内容を確認してから使います。

よくある質問

topを終了するにはどうすればよいですか?

対話型画面でqを押します。ターミナルに入力するシェルコマンドではなく、top内部の操作です。

公式ドキュメント

オプションの正確な動作や実装ごとの違いは、top関連の公式ドキュメントで確認できます。