top 概要
`top` は、システムリソース (CPU、メモリ、スワップ) の使用量と各プロセスの詳細情報を定期的に更新して表示します。これにより、どのプロセスがシステムリソースを多く使用しているかを簡単に特定でき、システムの全体的な健康状態を監視できます。
top の主要な役割
`top` コマンドは主に次の目的で使用されます:
主要な活用分野
- {'key': 'システムモニタリング', 'value': 'リアルタイムで CPU、メモリ、スワップスペースの使用量を確認します。'}
- {'key': 'プロセス管理', 'value': '実行中のプロセスの状態を把握し、必要に応じて終了や優先順位の調整を行います。'}
- {'key': 'パフォーマンス問題の診断', 'value': 'システムの速度低下や応答なしの現象の原因を分析します。'}
- {'key': 'リソース使用の最適化', 'value': '過度なリソースを使用しているプロセスを特定し、対処します。'}
top 出力画面構成
`top` コマンドは大きく二つの部分に分かれて情報を表示します:
上部要約情報
システムの全体的な状態を要約して表示します。
- `uptime`: システムがブートされた後の経過時間
- `load average`: 過去1分、5分、15分のシステムの平均負荷 (実行待機キューにあるプロセス数)
- `Tasks`: 総プロセス数、実行中、スリープ中、停止中、ゾンビプロセス数
- `%Cpu(s)`: CPU 使用率 (us: ユーザー、sy: システム、ni: nice、id: アイドル、wa: I/O 待機など)
- `MiB Mem`: 物理メモリ (RAM) の総量、使用量、空き領域、バッファ/キャッシュ使用量
- `MiB Swap`: スワップメモリの総量、使用量、空き領域
下部プロセスリスト
実行中の各プロセスの詳細情報を表示します。このリストは基本的に CPU 使用率 (%) の基準でソートされます。
- `PID`: プロセス ID
- `USER`: プロセスを実行したユーザー
- `PR`: 優先順位 (Priority)
- `NI`: Nice 値 (優先順位調整に使用)
- `VIRT`: プロセスが使用する仮想メモリの総量
- `RES`: プロセスが使用する実際の物理メモリ (RAM) の量 (Resident Memory)
- `SHR`: プロセスが共有するメモリの量 (Shared Memory)
- `S`: プロセス状態 (R: 実行中、S: スリープ中、Z: ゾンビ、T: 停止など)
- `%CPU`: プロセスの CPU 使用率 (リアルタイム)
- `%MEM`: プロセスのメモリ使用率 (リアルタイム)
- `TIME+`: プロセスが使用した総 CPU 時間
- `COMMAND`: プロセス実行コマンド
`top` vs `htop`
`htop` は `top` の改善版で、よりユーザーフレンドリーなインターフェース (色、マウスサポート) と機能 (スクロール、検索、直接終了) を提供します。ほとんどの場合、`htop` の方が便利です。`htop` がインストールされていない場合は、パッケージマネージャを通じてインストールできます (例: `sudo apt install htop`)。
top コマンドのオプションとインタラクション
`top` は起動時にコマンドラインオプションを指定でき、実行中にもさまざまなキー入力を通じて画面表示方式やプロセスのソート、終了などの作業を行うことができます。
1. コマンドライン開始オプション
2. top 実行中のインタラクションキー
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`top` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
`top` コマンドのさまざまな活用例を通じて、システムリソース使用状況をリアルタイムで監視し、問題を診断する方法を学びましょう。
基本システムモニタリング開始
top
最も基本的な `top` コマンドの実行で、システムの現在の状態とプロセスリストを3秒ごとに更新して表示します。
CPU 使用率上位 5 件のプロセス確認 (1 秒間隔)
top -d 1 -n 5
`top` を実行した後、1 秒間隔で 5 回だけ更新し、終了します。これは特定の時点の CPU 負荷の原因を迅速に把握する際に便利です。
特定ユーザー (root) のプロセスのみモニタリング
top -u root
システムのすべての `root` ユーザーが実行するプロセスのみフィルタリングして表示します。システムデーモンやサービスのリソース使用量を追跡する際に便利です。
特定プロセス ID (PID) のみモニタリング
top -p 12345
PID が `12345` の単一プロセスに関する情報のみリアルタイムでモニタリングします。特定のアプリケーションのリソース消費を精密に追跡する際に便利です。
メモリ使用率が高い順にソート (実行中のインタラクション)
top # then press Shift + m
`top` が実行中の状態で `Shift + m` キーを押すと、プロセスリストをメモリ使用率が高い順にソートします。(コマンドラインで直接指定することはできません)
特定プロセス終了 (実行中のインタラクション)
top # then press 'k', enter PID, then optionally '9' for SIGKILL
`top` が実行中の状態で `k` キーを押すと、終了するプロセスの PID を入力するようにプロンプトが表示されます。PID を入力して `Enter` を押すと、基本的に SIGTERM シグナルが送信されます。強制終了するには、シグナル番号 9 を入力します。