新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=ゾンビなど)
%CPUCPU使用率
%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コマンドを使いこなせば、あなたもサーバー監視の達人です💪✨