htopコマンドとは?Linuxでプロセスを見やすくリアルタイム監視する方法

Linux

LinuxでCPU使用率やメモリ使用量をリアルタイムで確認したいなら、まず思い浮かぶのがtopコマンドです。

ただ、「文字が多くて見づらい」「操作方法が分かりにくい」と感じた人も多いのではないでしょうか。

そんなときに便利なのがhtopコマンドです。

htopは、CPU・メモリ・スワップ・プロセス一覧をカラー表示で分かりやすく確認できる監視ツールです。カーソルキーやファンクションキーで直感的に操作できるため、Linux初心者にも人気があります。

この記事では、Linux初心者向けにhtopコマンドの基本的な使い方、インストール方法、画面の見方、よく使う操作方法、topコマンドとの違いまで詳しく解説します。

  1. htopコマンドとは
  2. htopのインストール方法
    1. Ubuntu・Debian
    2. CentOS Stream・Rocky Linux・AlmaLinux
    3. インストール確認
  3. htopコマンドの基本構文
  4. htop画面の見方
  5. CPU使用率の見方
  6. メモリ・スワップの見方
  7. プロセス一覧の見方
  8. CPU使用率順に並び替える方法
  9. メモリ使用率順に並び替える方法
  10. プロセスを検索する方法
  11. プロセスを終了する方法
  12. プロセスの優先度を変更する方法
  13. ツリー表示にする方法
  14. よく使うファンクションキー一覧
  15. htopを終了する方法
  16. htopで特定のユーザーのプロセスだけ表示する方法
  17. 特定のPIDだけを監視する方法
  18. htopの更新間隔を変更する方法
  19. htopを白黒表示する方法
  20. スレッドを表示・非表示にする方法
  21. プロセス名で絞り込む方法
  22. 並び順を素早く切り替える方法
  23. htopでプロセスを終了するときの注意点
  24. htopでnice値を変更する方法
  25. htopの設定画面を開く方法
  26. htopとtopコマンドの違い
  27. htop・ps・topの使い分け
  28. サーバーが重いときのhtopの確認手順
    1. 1.CPU使用率を確認する
    2. 2.メモリ使用量を確認する
    3. 3.ロードアベレージを確認する
    4. 4.プロセスの状態を確認する
    5. 5.プロセスを終了する前に正体を確認する
  29. CPU使用率が100%でも異常とは限らない
  30. htopでメモリ使用量が多く見える理由
  31. htopが見つからない場合の対処法
  32. ファンクションキーが反応しない場合の対処法
  33. htopで表示されるCPU使用率が100%を超える理由
  34. htopの主なオプション一覧
  35. 操作ミスを防ぐなら読み取り専用で起動する
  36. htopだけで障害原因を断定しない
  37. よくある質問
    1. htopはLinuxへ最初からインストールされていますか?
    2. htopを終了するにはどうすればよいですか?
    3. htopでCPU使用率順に並び替えるにはどうすればよいですか?
    4. htopでメモリ使用率順に並び替えるにはどうすればよいですか?
    5. htopからプロセスを終了しても大丈夫ですか?
    6. CPU使用率が100%を超えているのは異常ですか?
    7. メモリバーが埋まっていたらメモリ不足ですか?
    8. htopとtopはどちらを使えばよいですか?
    9. htopの表示内容は保存できますか?
  38. まとめ

htopコマンドとは

htopは、LinuxでCPU・メモリ・プロセスをリアルタイムで監視するためのコマンドです。

標準搭載されていることが多いtopコマンドを、より見やすく・操作しやすくしたツールと考えると分かりやすいでしょう。

例えば次のようなことができます。

  • CPU使用率をグラフで確認
  • メモリ・スワップ使用量をグラフ表示
  • CPU使用率順・メモリ使用率順に並び替え
  • プロセス検索
  • プロセス終了
  • nice値変更
  • マウス操作(一部環境)

サーバーが重い原因を調べるときに非常によく使われます。

htopのインストール方法

環境によっては標準インストールされていないため、最初にインストールします。

Ubuntu・Debian

sudo apt update
sudo apt install htop

CentOS Stream・Rocky Linux・AlmaLinux

sudo dnf install htop

インストール確認

htop --version

htopコマンドの基本構文

htop [オプション]

通常はオプションなしで起動します。

htop

htop画面の見方

起動すると、大きく次の3つのエリアに分かれています。

  • CPU・メモリ使用率
  • システム情報
  • プロセス一覧

一番上にはCPU使用率がバー表示されます。

CPUコアが複数ある場合は、コアごとに表示されるため、どのCPUが忙しいか一目で分かります。

CPU使用率の見方

CPUバーでは現在のCPU使用率をリアルタイム表示します。

色によって使用状況も分かります。

意味(代表例)
ユーザー処理
システム処理
低優先度処理
I/O待ちなど

ディストリビューションやテーマによって多少色が異なる場合があります。

メモリ・スワップの見方

CPUバーの下にはメモリ使用率が表示されます。

物理メモリだけでなく、スワップ使用量もグラフで確認できます。

メモリ不足かどうかを確認したい場合は、前回紹介したfree -hも併用すると分かりやすいです。

free -h

プロセス一覧の見方

画面下には実行中プロセスが一覧表示されます。

意味
PID プロセスID
USER 実行ユーザー
%CPU CPU使用率
%MEM メモリ使用率
TIME+ 累積CPU時間
Command 実行コマンド

初心者はまず%CPU%MEMを見るだけでも十分です。

CPU使用率順に並び替える方法

画面上部メニューから並び替えできますが、一番簡単なのはF6です。

F6

Sort byで%CPUを選択するとCPU使用率順になります。

メモリ使用率順に並び替える方法

同じくF6から%MEMを選択します。

メモリリークや大量消費しているプロセスを探すときによく使います。

プロセスを検索する方法

プロセス数が多い場合は検索が便利です。

F3

例えば

mysql

と入力するとMySQL関連プロセスだけ探せます。

プロセスを終了する方法

終了したいプロセスをカーソルで選択します。

その後

F9

を押します。

SIGTERM(15)が標準なので、まずはこちらを使用しましょう。

どうしても終了しない場合のみSIGKILL(9)を使用します。

いきなり9を使うのは避けるのがおすすめです。

プロセスの優先度を変更する方法

優先度(nice値)はF7・F8で変更できます。

  • F7:優先度を上げる
  • F8:優先度を下げる

root権限が必要になる場合があります。

ツリー表示にする方法

親子関係を見たい場合はツリー表示が便利です。

F5

Apache・PHP・MySQLなどの関係も分かりやすくなります。

よく使うファンクションキー一覧

キー 内容
F2 設定
F3 検索
F4 フィルター
F5 ツリー表示
F6 並び替え
F7 nice値を上げる
F8 nice値を下げる
F9 プロセス終了
F10 終了

htopを終了する方法

htopを終了するときは、キーボードのqを押します。

q

画面下部に表示されているF10 Quitを使っても終了できます。

ファンクションキーが使いにくいノートパソコンやターミナルでは、qを覚えておくと簡単です。

htopで特定のユーザーのプロセスだけ表示する方法

複数のユーザーが利用するサーバーでは、自分や特定ユーザーのプロセスだけを確認したいことがあります。

htopの起動時に-uオプションを付けると、指定したユーザーのプロセスだけを表示できます。

htop -u ユーザー名

例えば、rootユーザーのプロセスだけを表示する場合は次のように実行します。

htop -u root

現在ログインしているユーザーのプロセスだけを確認したい場合は、次のようにも指定できます。

htop -u "$USER"

大量のプロセスから対象を絞り込みたいときに便利です。

特定のPIDだけを監視する方法

-pオプションを使うと、指定したPIDだけを表示できます。

htop -p PID

PIDが1234のプロセスを監視する場合は、次のように実行します。

htop -p 1234

複数のPIDを指定する場合は、カンマ区切りで指定できます。

htop -p 1234,5678

アプリケーションの動作確認や、特定のプロセスだけ継続的に監視したい場合に役立ちます。

htopの更新間隔を変更する方法

htopは、一定間隔で画面を更新します。

-dオプションを使うと、更新間隔を10分の1秒単位で指定できます。

htop -d 数値

例えば、2秒ごとに更新する場合は20を指定します。

htop -d 20

画面の更新が速すぎて見づらい場合や、監視による負荷を少し抑えたい場合に使えます。

htopを白黒表示する方法

色が見づらいターミナルでは、-Cオプションを使うと白黒表示にできます。

htop -C

--no-colorでも同じようにカラー表示を無効化できます。

htop --no-color

ターミナルの配色によって文字が読みにくい場合に試してみてください。

スレッドを表示・非表示にする方法

htopでは、プロセスだけでなく、その内部で動作しているスレッドも表示できます。

ユーザーランドスレッドの表示・非表示は、Hキーで切り替えられます。

H

カーネルスレッドの表示・非表示は、Kキーで切り替えられます。

K

プロセス数が多く見づらいときは、不要なスレッドを非表示にすると確認しやすくなります。

プロセス名で絞り込む方法

F4キーを押すと、入力した文字列に一致するプロセスだけを表示できます。

F4

例えば、Apache関連のプロセスを確認したい場合は、環境に応じて次のような文字列を入力します。

httpd

UbuntuやDebian系であれば、次のように入力することもあります。

apache2

F3の検索は一致するプロセスへ移動する機能、F4のフィルターは一致したプロセスだけを残す機能です。

並び順を素早く切り替える方法

F6から項目を選ぶ以外にも、キー操作で並び順を変更できます。

キー 並び替える項目
P CPU使用率
M メモリ使用率
T 累積CPU時間

サーバーが急に重くなった場合は、まずPを押してCPU使用率順に並び替えると原因を探しやすくなります。

メモリ不足が疑われる場合は、Mを押してメモリ使用率順に並び替えます。

htopでプロセスを終了するときの注意点

F9を押すと、選択したプロセスへシグナルを送信できます。

通常は、まずSIGTERMを選択します。

SIGTERM 15

SIGTERMは、プロセスへ正常終了を依頼するシグナルです。アプリケーション側が終了処理を行えるため、設定やデータを保存してから停止できる可能性があります。

それでも終了しない場合に限り、SIGKILLを検討します。

SIGKILL 9

SIGKILLはプロセスを強制終了します。プロセス側は終了処理を実行できないため、編集中データの消失やファイル破損につながる可能性があります。

特にデータベースや重要なサービスを、プロセスの役割を確認せずに終了するのは避けてください。

htopでnice値を変更する方法

htopでは、選択したプロセスのnice値を変更できます。

nice値は、CPUの実行優先度を調整するための値です。一般的には、値が小さいほど優先度が高く、値が大きいほど優先度が低くなります。

キー 動作
F7 nice値を小さくして、優先度を上げる
F8 nice値を大きくして、優先度を下げる

一般ユーザーは、自分のプロセスの優先度を下げる操作はできますが、優先度を上げる操作にはroot権限が必要になることがあります。

nice値を変更してもCPU使用率そのものを直接制限できるわけではありません。複数のプロセスがCPUを取り合う状況で、どのプロセスを優先するかを調整する機能です。

htopの設定画面を開く方法

F2を押すと、htopの設定画面を開けます。

F2

設定画面では、主に次の項目を変更できます。

  • CPUメーターの表示形式
  • メモリメーターの配置
  • 表示する列
  • 色のテーマ
  • ツリー表示の設定
  • カーネルスレッドの表示設定
  • 画面上部へ表示する情報

例えば、プロセスの開始時刻やディスク読み書き量などを確認したい場合は、表示列を追加できます。

設定内容は通常、ユーザーごとの設定ファイルへ保存され、次回起動時にも反映されます。

htopとtopコマンドの違い

htoptopは、どちらもLinuxのプロセスやCPU使用率をリアルタイムで確認するためのコマンドです。

主な違いは次のとおりです。

比較項目 htop top
標準搭載 別途インストールが必要な場合が多い 多くのLinux環境で利用できる
画面表示 カラーで見やすい 文字中心の表示
画面のスクロール 上下左右へ移動しやすい htopより操作が限定的
プロセス選択 カーソルで選択できる PIDなどを入力して操作することが多い
マウス操作 対応する環境がある 基本的にキーボード操作
最小構成のサーバー インストールされていない場合がある 利用できる可能性が高い

普段の監視では、画面が見やすく操作しやすいhtopが便利です。

一方、障害対応で入った最小構成のサーバーや、追加パッケージをインストールできない環境ではtopが役立ちます。

どちらか一方だけではなく、両方の基本操作を覚えておくと安心です。

htop・ps・topの使い分け

プロセスを確認するコマンドには、htop以外にもtoppsがあります。

コマンド 向いている用途
htop プロセスを見ながらリアルタイムに調査・操作する
top 追加インストールなしでリアルタイム監視する
ps 特定時点のプロセス情報をコマンド結果として取得する

人が画面を見ながら原因を探すならhtop、ほぼすべての環境で確認したいならtop、シェルスクリプトやログへ結果を残したいならpsという使い分けができます。

サーバーが重いときのhtopの確認手順

サーバーが重くなったときに、何を見ればよいのか分からなくなることがあります。

そんなときは、次の順番で確認すると原因を整理しやすくなります。

1.CPU使用率を確認する

まず、画面上部のCPUバーを確認します。

一部のCPUコアだけが高負荷なのか、すべてのCPUコアが高負荷なのかを見ます。

次にPを押して、CPU使用率順に並び替えます。

P

%CPUが高いプロセスのPID、ユーザー名、コマンド名を確認してください。

2.メモリ使用量を確認する

続いて画面上部のメモリバーとスワップを確認します。

Mを押すと、メモリ使用率順に並び替えられます。

M

ただし、Linuxでは空きメモリをキャッシュとして活用します。メモリバーが埋まっているように見えるだけで、すぐにメモリ不足とは限りません。

より詳しく確認する場合は、別のターミナルで次のコマンドも実行します。

free -h

availableの値やスワップの使用状況も含めて判断しましょう。

3.ロードアベレージを確認する

htopの画面上部には、ロードアベレージが表示されます。

ロードアベレージは、CPUを使用している処理やCPUの実行を待っている処理など、システムの負荷を表す目安です。

一般的には、CPUの論理コア数と比較して確認します。ただし、I/O待ちの影響を受けることもあるため、ロードアベレージだけで原因を断定してはいけません。

4.プロセスの状態を確認する

CPU使用率が高いプロセスだけでなく、プロセスの状態も確認します。

状態 主な意味
R 実行中または実行可能
S 割り込み可能な待機状態
D 割り込みできない待機状態
T 停止中またはトレース中
Z ゾンビプロセス

D状態のプロセスが多数ある場合は、ディスクやネットワークストレージなどのI/O待ちが発生している可能性があります。

Z状態は処理が終了しているものの、親プロセスが終了状態を回収できていないゾンビプロセスです。ゾンビプロセス自体を強制終了して解決するとは限らないため、親プロセスの確認が必要です。

5.プロセスを終了する前に正体を確認する

負荷の高いプロセスを見つけても、すぐに終了させるのは危険です。

まず、次の項目を確認してください。

  • どのユーザーが実行しているか
  • どのサービスに関係するか
  • 一時的に負荷が上がっているだけではないか
  • 停止するとWebサイトやデータベースへ影響しないか
  • systemdにより自動的に再起動されないか

サービスとして動いているプロセスであれば、直接killするよりもsystemctlで停止・再起動したほうが安全な場合があります。

sudo systemctl status サービス名
sudo systemctl restart サービス名

CPU使用率が100%でも異常とは限らない

htopでCPU使用率が100%になっていると、すぐに障害だと思ってしまうかもしれません。

しかし、バックアップ、圧縮、動画変換、コンパイル、バッチ処理などがCPUを効率よく使っている場合、100%でも正常なことがあります。

重要なのは、CPU使用率だけでなく次の点を合わせて確認することです。

  • 処理内容が想定したものか
  • 高負荷が長時間続いているか
  • Webサイトやアプリケーションが遅くなっているか
  • ロードアベレージが上がり続けていないか
  • メモリやスワップも不足していないか

「CPU使用率が高い=異常」と決めつけず、プロセスの内容と実際の影響から判断しましょう。

htopでメモリ使用量が多く見える理由

Linuxは、使用していないメモリをディスクキャッシュとして積極的に利用します。

そのため、htopのメモリバーが大きく使われていても、アプリケーションが使えるメモリまで完全に不足しているとは限りません。

メモリ不足かどうかを判断するときは、次の項目を確認します。

  • free -hのavailable
  • スワップの使用量
  • スワップ使用量が継続的に増えていないか
  • OOM Killerが動作していないか
  • 特定プロセスのメモリ使用量が増え続けていないか

OOM Killerの記録は、環境に応じて次のように確認できます。

journalctl -k | grep -i -E 'out of memory|killed process'

または、次のコマンドを使用します。

dmesg | grep -i -E 'out of memory|killed process'

権限やログの保存状態によっては、結果を確認できない場合があります。

htopが見つからない場合の対処法

htopを実行して、次のようなエラーが表示されることがあります。

htop: command not found

これは、基本的にhtopがインストールされていないか、実行ファイルへのパスが通っていないことを表します。

Ubuntu・Debian系では次のコマンドでインストールします。

sudo apt update
sudo apt install htop

CentOS Stream・Rocky Linux・AlmaLinuxなどでは、次のコマンドを試します。

sudo dnf install htop

パッケージが見つからない場合は、利用中のディストリビューション、バージョン、有効なリポジトリを確認してください。

インストール後は、次のコマンドで実行ファイルの場所を確認できます。

command -v htop

正常に認識されていれば、次のようなパスが表示されます。

/usr/bin/htop

ファンクションキーが反応しない場合の対処法

ノートパソコンや一部のターミナルでは、F2F10などがOS側の機能に割り当てられていることがあります。

その場合は、Fnキーを押しながら操作してみてください。

Fn + F6

また、htopではファンクションキー以外にも、次のような操作ができます。

キー 内容
q htopを終了
P CPU使用率順に並び替え
M メモリ使用率順に並び替え
T 累積CPU時間順に並び替え
H ユーザーランドスレッドの表示切り替え
K カーネルスレッドの表示切り替え

SSH接続先でキーが正しく伝わらない場合は、使用しているターミナルソフトのファンクションキー設定も確認しましょう。

htopで表示されるCPU使用率が100%を超える理由

マルチコアCPUの環境では、プロセスのCPU使用率が100%を超えて表示されることがあります。

これは必ずしも表示の異常ではありません。

htopの設定や表示方式によっては、CPUコア1個を100%として計算します。例えば、1つのプロセスがCPUコア2個をフルに利用していれば、約200%と表示されることがあります。

CPUが4コアなら、理論上はプロセスが複数コアを利用して400%近く表示されることもあります。

使用可能なCPU数は、次のコマンドで確認できます。

nproc

CPUの詳細は、次のコマンドでも確認できます。

lscpu

CPU使用率を見るときは、100%を超えたという数字だけではなく、搭載されている論理CPU数も合わせて確認してください。

htopの主なオプション一覧

オプション 内容
-d 数値 画面の更新間隔を10分の1秒単位で指定する
-u ユーザー名 指定したユーザーのプロセスだけを表示する
-p PID 指定したPIDだけを表示する
-C カラー表示を無効化する
-t ツリー表示で起動する
-s 列名 指定した列で並び替えて起動する
--readonly プロセスへ影響する操作を無効化する
--help ヘルプを表示する
--version バージョンを表示する

利用できるオプションは、インストールされているhtopのバージョンによって異なる場合があります。

現在の環境で利用できるオプションは、次のコマンドで確認してください。

htop --help

操作ミスを防ぐなら読み取り専用で起動する

本番サーバーでプロセスを確認するだけなら、読み取り専用モードで起動する方法もあります。

htop --readonly

読み取り専用モードでは、プロセスの終了や優先度変更など、プロセスへ影響を与える操作が制限されます。

「確認だけするつもりだったのに、誤ってプロセスを終了してしまった」という事故を避けたい場合に有効です。

特に本番環境へ入りたてのときや、重要なサービスが動作しているサーバーでは、読み取り専用モードを活用すると安心です。

htopだけで障害原因を断定しない

htopは、現在のCPU・メモリ・プロセスの状態を確認するには非常に便利です。

ただし、htopだけでサーバーが重い原因をすべて特定できるわけではありません。

状況に応じて、次のコマンドも組み合わせます。

確認したい内容 主なコマンド
メモリ全体の状態 free -h
CPU・メモリ・プロセスの推移 vmstat
ディスクI/O iostat
ディスク容量 df -h
ディレクトリごとの使用量 du
サービスの状態 systemctl status
システムログ journalctl
ネットワーク接続 ss

例えば、CPU使用率は低いのにロードアベレージが高い場合は、ディスクI/O待ちやネットワークストレージの遅延が関係している可能性があります。

htopを入口として使い、必要に応じて別のコマンドで詳しく調べるのが実践的です。

よくある質問

htopはLinuxへ最初からインストールされていますか?

必ずしもインストールされているわけではありません。

topは多くのLinux環境で標準利用できますが、htopは別途インストールが必要な場合があります。

htop: command not foundと表示された場合は、利用しているディストリビューションに合わせてインストールしてください。

htopを終了するにはどうすればよいですか?

qキーまたはF10キーで終了できます。

q

ファンクションキーが反応しない環境では、qキーを使うのが簡単です。

htopでCPU使用率順に並び替えるにはどうすればよいですか?

Pキーを押すと、CPU使用率順に並び替えられます。

P

F6を押して、並び替え項目からPERCENT_CPUなどのCPU使用率に該当する列を選ぶ方法もあります。

htopでメモリ使用率順に並び替えるにはどうすればよいですか?

Mキーを押すと、メモリ使用率順に並び替えられます。

M

メモリを大量に消費しているプロセスを探すときに便利です。

htopからプロセスを終了しても大丈夫ですか?

終了して問題ないプロセスだと確認できている場合に限って実行してください。

まずはSIGTERMを送り、正常終了を試します。応答しない場合のみ、影響を理解したうえでSIGKILLを検討します。

データベースやWebサーバーなどのサービスは、直接終了するよりsystemctlで停止・再起動したほうがよい場合があります。

CPU使用率が100%を超えているのは異常ですか?

マルチコアCPUでは、CPUコア1個を100%として表示する設定があるため、100%を超える場合があります。

例えば、2つのCPUコアをほぼ完全に使っているプロセスは、約200%と表示されることがあります。

nproclscpuでCPU数を確認してから判断してください。

メモリバーが埋まっていたらメモリ不足ですか?

必ずしもメモリ不足ではありません。

Linuxは空いているメモリをキャッシュとして利用します。free -havailableやスワップ使用量も合わせて確認してください。

htopとtopはどちらを使えばよいですか?

普段の手動監視では、見やすく操作しやすいhtopがおすすめです。

一方、追加パッケージをインストールできない環境や、最小構成のサーバーではtopが役立ちます。

障害対応を考えると、両方の使い方を覚えておくのがおすすめです。

htopの表示内容は保存できますか?

htopは、人がリアルタイムで画面を確認するための対話型ツールです。そのため、監視結果をそのまま定期的に保存する用途にはあまり向いていません。

記録や自動監視を行いたい場合は、psvmstatpidstatsarなどを使う方法があります。

まとめ

htopは、LinuxのCPU使用率、メモリ使用量、スワップ、実行中プロセスをリアルタイムで確認できる監視コマンドです。

topよりも画面が見やすく、カーソルキーやファンクションキーで直感的に操作できます。

まずは、次の基本操作を覚えておくとよいでしょう。

操作 キー
CPU使用率順に並び替える P
メモリ使用率順に並び替える M
プロセスを検索する F3
プロセスを絞り込む F4
ツリー表示へ切り替える F5
並び替え項目を選ぶ F6
プロセスへシグナルを送る F9
htopを終了する qまたはF10

サーバーが重いときは、まずhtopを起動し、CPU使用率順とメモリ使用率順に並び替えて原因となるプロセスを探します。

htop

ただし、CPU使用率やメモリ使用量が高いだけで、すぐに異常と判断してはいけません。

プロセスの役割、ロードアベレージ、スワップ、ディスクI/O、ログなども確認し、プロセスを終了する前に影響範囲を調べることが大切です。

コメント

タイトルとURLをコピーしました