top コマンドとは?
top コマンドは、Linux/Unix システムで現在のプロセス情報やシステムリソースの使用状況(CPU、メモリ、ロードアベレージなど)をリアルタイムで表示するインタラクティブツールです。
基本構文
top [オプション]
実行すると、動的に更新される画面が表示され、プロセスの一覧やシステム全体のリソース使用状況を確認できます。
表示内容の見方(上部:システム情報)
top - 14:23:45 up 3 days, 2:04, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 150 total, 1 running, 149 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.0 us, 0.5 sy, 0.0 ni, 96.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7862.5 total, 112.3 free, 3004.2 used, 4746.0 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 4620.0 avail Mem
| 項目 | 説明 |
|---|
| load average | 1分・5分・15分の平均負荷 |
| Tasks | プロセスの状態(total: 全体, running: 実行中など) |
| %Cpu(s) | CPU使用率の内訳(us: ユーザー, sy: システム, id: アイドル) |
| Mem | メモリの総量・使用量・空き・バッファキャッシュ |
| Swap | スワップ領域の使用状況 |
プロセス一覧(下部)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
| 列 | 説明 |
|---|
| PID | プロセスID |
| USER | 実行ユーザー |
| PR / NI | 優先度 / nice値 |
| VIRT / RES / SHR | 仮想 / 実メモリ / 共有メモリ |
| S | 状態(R: 実行中, S: スリープ, Z: ゾンビ) |
| %CPU / %MEM | CPU / メモリ使用率 |
| TIME+ | 累積CPU時間 |
| COMMAND | 実行中のコマンド |
よく使うインタラクティブ操作
| キー | 説明 |
|---|
q | topを終了 |
P | CPU使用率でソート(大きい順) |
M | メモリ使用量でソート |
T | 累積CPU時間でソート |
k | プロセスをkill(プロセスID入力) |
r | nice値を変更 |
1 | 各CPUコアごとの使用状況表示 |
h | ヘルプ表示 |
オプション一覧
| オプション | 説明 |
|---|
-d N | 更新間隔をN秒に設定 |
-n N | 指定回数だけ更新して終了 |
-b | バッチモード(スクリプト用途、非対話形式) |
-u USER | 特定ユーザーのプロセスのみ表示 |
使用例
CPU使用率順で監視
$ top
(実行後に `P` を押す)
メモリ順に並び替え
$ top
(実行後に `M` を押す)
特定ユーザーのみ表示
$ top -u nginx
非対話形式で1回だけ表示
$ top -b -n 1
よくあるトラブルと対処
| 問題 | 原因 | 対処法 |
|---|
| 表示が止まらない | 対話モードで起動している | q で終了 or -n 1 -b で実行 |
| 特定のプロセスが表示されない | ユーザー/条件でフィルタされている | -u 指定や並び替え条件を確認 |
まとめ
top はプロセス・リソース監視の代表ツール
P, M, T で動的にソート、k でプロセスkillも可能
- 非対話形式の
-b + -n でスクリプトでも活用できる
参考リンク
- https://man7.org/linux/man-pages/man1/top.1.html
- https://linux.die.net/man/1/top