
新Linux入門|topコマンド:CPUやメモリの使用状況をチェックする
Linuxを使っていると、「システムの動作が重いけど、原因はどのプロセス?」と思うこと、ありますよね。
そんなときに大活躍するのが topコマンド です✨
topコマンドは、実行中のプロセスやシステムリソースの状態をリアルタイムで監視できるツールです。
CPUやメモリの使用率、ロードアベレージ(負荷平均)、プロセス数などを即座に確認できるため、サーバー運用やトラブルシューティングの必須コマンドなんです💪

🖥️ topコマンドの概要
top(=table of processes)は、システムで動作しているプロセスをリアルタイムに監視し、リソース使用状況を一覧表示するコマンドです。
| 項目 | 内容 |
|---|---|
| コマンド名 | top |
| 主な目的 | 実行中のプロセスやシステムリソースの状況をリアルタイム表示 |
| 表示内容 | CPU使用率・メモリ使用量・プロセス状態・ロードアベレージなど |
| 更新間隔 | デフォルト3秒(-dオプションで変更可能) |
💬ポイント
ps コマンドが「静的なスナップショット」であるのに対し、
top は「動的に変化するシステムの状態」を表示するのが大きな特徴です!
💡 コマンドの書式
top [オプション]- 画面は自動更新され、デフォルトでは 3秒ごと に更新されます。
- 終了するには qキー を押します。
🧭 主なオプションと説明
| オプション | 説明 |
|---|---|
| -d 秒数 | 画面更新間隔を指定(デフォルト3秒) |
| -p PID | 特定のプロセスIDのみ表示 |
| -u ユーザー名 | 特定ユーザーのプロセスだけを表示 |
| -c | コマンド名と引数の表示切替(プログラム名⇔フルコマンドライン) |
| -n 回数 | 指定した回数だけ更新して終了(例:-n 5) |
| -b | バッチモード(スクリプトなどで非対話的に出力) |
| -H | スレッド単位で表示 |
| -i | アイドル状態のプロセスを非表示にする |
| -h | ヘルプを表示する |
💬ポイント
たとえば「特定のユーザーだけ見たい」なら top -u suzuki、
「1回だけ出力して終了したい」なら top -n 1 と指定できます✨
📊 topコマンドの主な表示項目
topコマンドの画面は大きく 2つのエリア に分かれています。
| 区分 | 内容 |
|---|---|
| システム情報(上部) | CPU・メモリ使用率、ロードアベレージ、稼働時間など |
| プロセス情報(下部) | 各プロセスの詳細(PID、CPU%、MEM%、状態など) |
💡 主な列の意味は以下の通りです。
| 項目 | 意味 |
|---|---|
| PID | プロセスID |
| USER | 実行ユーザー |
| PR / NI | プロセスの優先度 / nice値 |
| VIRT / RES / SHR | 仮想メモリ / 実メモリ / 共有メモリ使用量 |
| S | 状態(R=実行中、S=スリープ、Z=ゾンビなど) |
| %CPU | CPU使用率 |
| %MEM | メモリ使用率 |
| TIME+ | CPU使用時間 |
| COMMAND | 実行中のコマンド名 |
🖥️ 使用例と出力例
① リアルタイムで全プロセスを監視
[suzuki@AlmaLinux ~]$ top出力例
top - 10:22:08 up 1:57, 2 users, load average: 0.04, 0.03, 0.05
Tasks: 215 total, 1 running, 214 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.3 us, 2.0 sy, 0.0 ni, 96.4 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
MiB Mem : 1881.9 total, 259.4 free, 795.1 used, 827.3 buff/cache
MiB Swap: 2097.0 total, 2097.0 free, 0.0 used. 910.2 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1372 root 20 0 326700 52244 27140 S 4.3 2.8 0:10.32 Xorg
2605 suzuki 20 0 3021732 203484 71408 S 3.3 10.8 0:11.00 gnome-shell
4491 suzuki 20 0 837288 31408 18540 S 1.3 1.7 0:00.52 gnome-terminal
736 root 20 0 90672 3232 2356 S 0.3 0.2 0:01.24 rngd💬ポイント
ここではCPU・メモリの使用率、稼働時間、ロードアベレージ(平均負荷)などがリアルタイムに更新されます。
load average が1.00を超えると、CPUがフル稼働している目安です🔥
② 特定のプロセスだけを監視(-p)
[suzuki@AlmaLinux ~]$ top -p 2605出力例
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 1.0 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1881.9 total, 262.1 free, 792.1 used, 827.6 buff/cache
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2605 suzuki 20 0 3021732 203092 71408 S 0.3 10.8 0:12.40 gnome-shell💬ポイント
-p オプションを使うと、指定したPIDのプロセス情報だけを追跡できます。
特定のアプリの動作確認にぴったりです🔍
③ 特定ユーザーのプロセスを表示(-u)
[suzuki@AlmaLinux ~]$ top -u suzuki出力例
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2605 suzuki 20 0 3021732 203104 71408 S 1.3 10.8 0:14.11 gnome-shell
4491 suzuki 20 0 837420 31408 18540 S 0.7 1.7 0:01.35 gnome-terminal
2530 suzuki 20 0 342940 1304 916 S 0.3 0.1 0:23.64 VBoxClient💬ポイント
-u suzuki とすることで、ユーザーsuzukiが動かしているプロセスだけに絞れます。
複数人で使うサーバーでも、すぐに自分のプロセス状況を確認できます🙆♀️
④ スレッド単位での表示(-H)
[suzuki@AlmaLinux ~]$ top -H💬ポイント
各プロセスの内部スレッドまで個別に表示します。
マルチスレッドアプリ(例:Java、ブラウザ、DBなど)の動きを詳しく見るときに使います🧠
⑤ 更新間隔の変更(-d)
[suzuki@AlmaLinux ~]$ top -d 1💬ポイント
1秒ごとに画面を更新して、よりリアルタイムな監視ができます。
デフォルトは3秒ですが、短く設定すると負荷変化をより細かく追えます⚡
🧠 topコマンドの見方を整理!
topの画面上部に表示される情報の意味を簡単にまとめてみましょう👇
| 表示行 | 内容 |
|---|---|
| 1行目 | 稼働時間、ログインユーザー数、ロードアベレージ |
| 2行目 | 全タスク数、実行中・スリープ・停止中のプロセス数 |
| 3行目 | CPU使用率(us=ユーザー, sy=カーネル, id=アイドル) |
| 4行目 | メモリ使用量(free/used/buff/cache) |
| 5行目 | スワップ領域の使用状況 |
💬ポイント
ロードアベレージやメモリ残量を見るだけでも、
「システムが重い原因」が一目でわかります👀
🌈 まとめ
- topコマンド は、CPUやメモリの使用状況をリアルタイムで監視するツール。
- ps が「静的情報」なのに対し、top は「動的な状態」を把握できる。
- -p, -u, -H, -d などのオプションで、必要な情報を柔軟に絞り込み可能。
Linux管理の第一歩は、「今、何が動いているか」を知ること。
topコマンドを使いこなせば、あなたもサーバー監視の達人です💪✨
