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