
「なんだかLinuxの動作が重い…」「ファンの音が急にうるさくなった」 そんな経験はありませんか?Windowsの「タスクマネージャー」やMacの「アクティビティモニタ」のように、Linuxでも「今、システムで何が起きているか」をリアルタイムで監視する方法があります。
今回は、どの環境にも入っている標準コマンド top と、それをより見やすく高機能にした htop について紹介します。これを使えば、「重い原因(犯人)」を一発で見つけられるようになります。

6 記事
Linuxコマンド入門 Part3 ~システムの状態確認とネットワークの基本~
Linuxのシステム管理コマンドや基本的なネットワーク関係コマンドを理解しよう。
top コマンド
基本構文
使い方は、以下のようにターミナルに打ち込むだけです。
top実行画面の見方
実行すると、画面全体が切り替わり、数値が絶えず更新される画面になります。
top - 10:35:22 up 14 days, 2:05, 1 user, load average: 0.15, 0.08, 0.01
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.5 us, 0.5 sy, 0.0 ni, 97.8 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7950.0 total, 1250.5 free, 3450.2 used, 3249.3 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 4200.5 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 1234568 56780 12340 S 1.2 0.7 0:15.22 nginx
5678 user 20 0 987654 43210 5678 R 0.5 0.5 0:03.45 python
1 root 20 0 123456 7890 1234 S 0.0 0.1 1:23.45 systemd出力の読み方
情報量が多いですが、まずは以下の2点だけ見ればOKです。
- 上半分(ヘッダー情報): システム全体の状況。
tasks: システムのタスク数。%Cpu(s): CPUの使用率。MiB Mem: メモリの使用状況。
- 下半分(プロセス一覧): 動いているプログラムのランキング。
%CPUや%MEMが高いものが、リソースを消費している「重い」プロセスです。
操作の終了方法: 元の画面に戻るには、キーボードの q を押してください。
htopコマンド
top は便利ですが、「文字ばかりでちょっと見づらい…」と感じることもあります。現代的な表示のhtopというコマンドもあります。

htopのメリット
- カラフル: CPUやメモリの使用量がバーで表示され、直感的に分かります。
- マウス操作: 設定によってはマウスでクリックして操作できます。
- スクロール: 画面外のプロセスも矢印キーでスクロールして確認できます。
htopのデメリット
- コマンドがわかりずらい: topと違いファンクションキーでの操作なので若干複雑
インストールが必要
top と違い、標準では入っていないことがあります。その場合は以下のコマンドでインストールできます。
# Ubuntu / Debian系
sudo apt install htop# CentOS / RHEL系
sudo yum install htop使い方は top と同じく、コマンド名を入力するだけです。
htop知っておくと便利な操作(top)
topで利用できるキー操作です。実行中にキーボードを押すことで表示を変えられます。htopでもおおむね同様の機能がF1やF2キーなどに割り当てられています。
| キー | 動作 | どんな時に使う? |
1 | CPUごとの表示切替 | 「1つのCPUだけ集中して負荷がかかっていないか?」を見たい時。コアごとの表示になります。 |
| L | コマンド検索 | “top”などを打ちこみEnterで検索できます。 |
| f | 表示項目編集 | デフォルトで表示されないDATAやUIDなどの表示切替ができます。 |
c | コマンド名の完全表示 | 実行コマンド名が長すぎて途切れている時に、フルのパス(場所)を表示します。 |
| P | PID順に並び変え | PID順にしたいとき。 |
| M | メモリ使用量順に並び替え | メモリ使用量が多いものを確認したいときに使います。 |
k | プロセスの終了 (Kill) | 暴走して止まらないプログラムを強制終了させたい時。 |
| Z | 表示の見た目変更 | 色を変えたりできる。 |
q | 終了 (Quit) | 元のターミナル画面に戻る時。 |
h | ヘルプ表示 | 操作コマンド一覧表示 |
※ htop の場合は、画面下部にファンクションキー(F1, F2…)のガイドが出ているので、それを参考に操作できます。
L (検索)補足
shift + l で”Locte string “と入力受付欄が表示されます。ここに”top”など検索したいコマンド名を打ち込めば、該当のタスクを表示してくれます。
入力受付
Tasks: 23 total, 1 running, 22 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0/0.1 0[ ]
MiB Mem : 3790.2 total, 3394.4 free, 367.7 used, 101.3 buff/cache
MiB Swap: 1024.0 total, 1024.0 free, 0.0 used. 3422.5 avail Mem
Locate string | <入力受付>
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 21828 11996 9180 S 0.0 0.3 0:02.75 systemd
2 root 20 0 3120 2176 2048 S 0.0 0.1 0:00.19 init-systemd(Ubtopを検索したときの出力例
top コマンドを実行しているタスクが表示されます。メモリを0.1%くらい使っているようです。
Tasks: 23 total, 1 running, 22 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0/0.0 0[ ]
MiB Mem : 3790.2 total, 3388.6 free, 370.7 used, 104.1 buff/cache
MiB Swap: 1024.0 total, 1024.0 free, 0.0 used. 3419.5 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
689 data 20 0 9268 5376 3328 R 0.0 0.1 0:00.01 top【中級者向け】f(表示項目編集 Field Management)補足
f キーを押すことで、表示する項目の表示非表示と並べ替えができます。
表示項目
表示項目のうち表示したいものに合わせて”space“をおせば表示と非表示を切り替えられ、左右キーと上下キーで表示順を並べ替えられます。設定後”q“キーで元の表示に戻せます。
Fields Management for window 1:Def, whose current sort field is %MEM
Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,
'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!
* PID = Process Id * nTH = Number of Threads nsPID = PID namespace Ino
* %CPU = CPU Usage nMin = Minor Page Faults RSsh = RES Shared (KiB)
* %MEM = Memory Usage (RES nDRT = Dirty Pages Count CGNAME = Control Group nam
* TIME+ = CPU Time, hundred WCHAN = Sleeping in Funct NU = Last Used NUMA no
* COMMAND = Command Name/Line Flags = Task Flags <sched LOGID = Login User Id
* PPID = Parent Process pi CGROUPS = Control Groups * EXE = Executable Path
UID = Effective User Id SUPGIDS = Supp Groups IDs RSS = Res Mem (smaps),
RUID = Real User Id SUPGRPS = Supp Groups Names PSS = Proportion RSS,
RUSER = Real User Name TGID = Thread Group Id PSan = Proportion Anon,
SUID = Saved User Id OOMa = OOMEM Adjustment PSfd = Proportion File,
SUSER = Saved User Name OOMs = OOMEM Score curre PSsh = Proportion Shrd,
* CODE = Code Size (KiB) ENVIRON = Environment vars USS = Unique RSS, KiB
GID = Group Id vMj = Major Faults delt ioR = I/O Bytes Read
GROUP = Group Name vMn = Minor Faults delt ioRop = I/O Read Operatio
PGRP = Process Group Id USED = Res+Swap Size (Ki ioW = I/O Bytes Written
TTY = Controlling Tty nsIPC = IPC namespace Ino ioWop = I/O Write Operati
SID = Session Id nsMNT = MNT namespace Ino AGID = Autogroup Identif
TPGID = Tty Process Grp I nsNET = NET namespace Ino AGNI = Autogroup Nice Va
STARTED = Start Time from b* USER = Effective User Na NI = Nice Value nsUSER = USER namespace In ELAPSED = Elapsed Running T* PR = Priority * P = Last Used Cpu (SM nsUTS = UTS namespace Ino* %CUU = CPU Utilization VIRT = Virtual Image (Ki* TIME = CPU Time LXC = LXC container nam %CUC = Utilization + chi RES = Resident Size (Ki* SWAP = Swapped Size (KiB RSan = RES Anonymous (Ki nsCGROUP = CGRP namespace In* SHR = Shared Memory (Ki* DATA = Data+Stack (KiB) RSfd = RES File-based (K nsTIME = TIME namespace In* S = Process Status nMaj = Major Page Faults RSlk = RES Locked (KiB)プロセスの詳細(VRIT,PPIDなど)
topで確認できる項目のうち、メモリ使用量などは分かりやすいですが、そのほかの項目についてはいまいちイメージが付きにくいものもあります。主要なもののうち特に知っておくといい項目について紹介します。
1. メモリの「見かけ」と「実質」を見抜く (VIRT / RES / SHR)
これらはメモリの使用量に関する項目です。
- VIRT (Virtual Image): 仮想メモリ使用量
- 意味: プロセスが「確保したい」と要求しているメモリの総量です。
- 解説: ここが数GBあっても驚かないでください。実際に物理メモリを使っているわけではなく、「予約」を含んだ数値だからです。
- RES (Resident Size): 物理メモリ使用量 【重要】
- 意味: 実際に物理メモリ(RAM)を消費している量です。
- 解説: 「メモリ不足かな?」と思った時に見るべきなのは、VIRTではなく、この RES です。
- SHR (Shared Memory): 共有メモリ
- 意味: 他のプロセスと共有しているメモリ量です(ライブラリなど)。
2. 重い原因はここかも? (SWAP)
これはデフォルトではオフになっていることが多いですが、確認して損はない項目です。
- SWAP (Swapped Size): スワップ使用量
- 意味: 物理メモリに入りきらず、ディスク(HDD/SSD)に追い出されたデータの量です。
ここの数値が大きいプロセスは、動作が極端に遅くなっている可能性があります。PC全体の動作を重くしている原因になりやすいです。
また、ここの数値が0でないときは、処理に対して物理スペックが足りていないということなので、処理を軽量化したり、メモリを増設等を検討する必要があります。
3. 親を知る (PPID)
リストの下の方に * PPID とありますが、これはプロセスの親子関係を知るのに便利です。
- PPID (Parent Process ID): 親プロセスID
- 意味: そのプロセスを起動させた「親」のIDです。
- 解説: 「勝手に起動してくる謎のプロセス」がいる時、PPIDを辿ることで「誰(どのアプリ)がこいつを呼び出したのか」という犯人探しができます。
Z(見た目変更)補足
機能的には変わらないのでおまけ程度につかうコマンドですが、shift + z で見た目変更モードになり、そこで設定すると見た目を変更できます。

画像 通常出力

画像 見た目変更後
まとめ
top: いつでもどこでも使える基本の監視ツール。htop::見やすく進化した、監視ツール。- Mキー::メモリ使用率順に並び替える。
- fキー:表示項目の編集
topのほうが硬派に詳細表示できて操作も(CUI操作に慣れたら)苦がないので、個人的にはtopのほうがおすすめです。
これで「何が動いているか」を見る目は養われました。 次回は、「メモリの空き容量」や「稼働時間」など、もう少し細かい数字をサクッと確認するコマンドを紹介します。
【free】Linuxでメモリの空き容量を正しく確認する方法【Linuxコマンド入門 Part3-2】
メモリの使用量と空き容量を一発で確認する方法、linux freeコマンドについて、おすすめオプションも含めて紹介します。
第三回”Linuxコマンド入門 Part3 ~システムの状態確認とネットワークの基本~”では、linuxでどのようにCPUやメモリの状態を確認するか、ネットワークとの接続チェックなどの基本操作を解説しています。
6 記事
Linuxコマンド入門 Part3 ~システムの状態確認とネットワークの基本~
Linuxのシステム管理コマンドや基本的なネットワーク関係コマンドを理解しよう。
ここまで読んでいただきありがとうございます。
では、次の記事で。 lumenHero