topコマンドの出力は情報量こそ豊富なものの、数値がずらりと並ぶだけでCPUやメモリの偏りを瞬時に掴みにくい場面があります。
この記事では、htopコマンドの実践的な使い方を、topとの違い・色分けの読み方・プロセスの強制終了・実務でのトラブルシュートまで解説します。RHEL 9.4 / Ubuntu 24.04 LTSで動作確認済みの内容で、20年以上サーバーを運用してきた現場感覚でまとめました。
この記事のポイント
・htopはtopの上位互換、カラー表示と矢印キー操作で直感的に使える
・F9でシグナル送信、F6でソート基準変更が即時にできる
・treeビュー(F5)で親子関係を追えば暴走プロセスの根元が分かる
・RHEL系はEPELリポジトリ、Ubuntu系はapt1発でインストール可能
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
htopとは何か?topとの違いを先に押さえる
htop(エイチトップ)は、Hisham Muhammad氏が開発したインタラクティブなプロセスビューアです。標準搭載のtopと同じくプロセス一覧・CPU・メモリ使用率を表示しますが、カラー表示・マウスクリック対応・矢印キーによるスクロールなど、操作性が大きく改善されています。topと比較した時の主な違いは以下の通りです。
・カラー表示:CPU使用率バーがuser/system/niceで色分けされ、どこに負荷が寄っているか一目で分かる
・縦スクロール:↑↓キーで全プロセスを追える(topは画面内のみ)
・横スクロール:←→キーで長いコマンドライン全体を確認できる
・treeビュー:F5キーで親子関係をツリー表示、fork元が一発で分かる
・マウス対応:カラム名クリックでソート、プロセス行クリックで選択
・複数選択:Spaceキーで複数プロセスをマークして一括killできる
現場でhtopを使い始めると、もうtopには戻れないという声を受講生からもよく聞きます。
htopのインストール方法(RHEL系・Debian系)
htopは標準リポジトリに含まれていないディストリビューションもあります。環境別にインストールします。1. Ubuntu / Debian系
aptコマンドでそのまま入ります。# パッケージ情報更新 $ sudo apt update # htopインストール $ sudo apt install -y htop # バージョン確認 $ htop --version htop 3.3.0
2. RHEL / Rocky Linux / AlmaLinux系
標準リポジトリにhtopが無いため、EPEL(Extra Packages for Enterprise Linux)を有効化します。# EPELリポジトリを追加 $ sudo dnf install -y epel-release # htopインストール $ sudo dnf install -y htop # インストール確認 $ which htop /usr/bin/htop
3. ソースからビルドする場合
パッケージが古い、あるいは最新版を試したい場合はソースビルドします。# 依存パッケージ(RHEL系の例) $ sudo dnf install -y ncurses-devel autoconf automake # ソース取得 $ git clone https://github.com/htop-dev/htop.git $ cd htop $ ./autogen.sh && ./configure && make $ sudo make install
基本的な使い方|起動と画面の読み方
htopを起動して画面構成を押さえます。1. 起動する
引数なしで起動すれば全プロセスが対象になります。$ htop
2. CPU使用率バーの色分けを読む
CPU行のバーは複数の色で描画されます。それぞれの意味を押さえると負荷の原因が読み解けます。・青:low priority(nice値の低い優先度)
・緑:normal user processes(通常のユーザープロセス)
・赤:kernel processes(カーネル・システム処理)
・水色:virtualization(仮想化overhead)
赤が大きい時はカーネル側が忙しく、I/O待ちや割り込みが多い可能性があります。緑が支配的ならアプリケーション側のCPU消費です。
3. メモリ表示の読み方
Mem行は以下の色で表示されます。・緑:used memory(使用中)
・青:buffers(ファイルシステムバッファ)
・橙:cache(ページキャッシュ)
freeコマンドの「used」を見て慌てることがありますが、橙色のcache分はカーネルが解放可能なメモリです。実際のアプリ消費は緑部分で判断します。
プロセス操作|ソート・検索・kill
1. ソート基準を変える(F6)
F6キーを押すとソートできるカラムが左側に並びます。矢印で選んでEnterで確定します。・PERCENT_CPU:CPU使用率順(デフォルト)
・PERCENT_MEM:メモリ使用率順(メモリリーク調査に必須)
・TIME:累積CPU時間(長時間稼働プロセスの特定)
・IO_RATE:ディスクI/O量(要root権限)
2. プロセスを検索する(F3)
F3でインクリメンタル検索ができます。プロセス名やコマンドライン文字列で絞り込めます。類似機能としてF4のフィルタは「名前が一致するものだけ表示」するモードで、検索(F3:一致行へジャンプ)と使い分けます。長時間張り付いて監視する時はF4が便利です。
3. プロセスを強制終了する(F9)
プロセスを選択してF9を押すと、送信するシグナル一覧が左側に表示されます。# F9後の選択肢(主要なもの) # 15 SIGTERM … 通常の終了要求(まずこれを試す) # 9 SIGKILL … 強制終了(SIGTERMが効かない場合の最終手段) # 1 SIGHUP … 設定再読み込み(Apache/nginxなど) # 2 SIGINT … Ctrl+C相当
4. 複数プロセスをまとめて操作する
Spaceキーで該当行がマーク(黄色反転)されます。マークした全プロセスに対してF9でシグナルを一括送信できます。暴走した子プロセスをまとめて止める時に重宝します。応用・実務Tips
1. treeビューで親子関係を追う(F5)
F5でプロセスのツリー表示に切り替わります。systemdから各サービス、Apacheのworker、dockerコンテナ内のプロセスなど、fork関係が一目で分かります。負荷の原因プロセスのPPID(親プロセスID)をtreeで辿れば、根元のサービスが特定できます。子プロセスだけをkillしても親が再生成するケースでは、親を止めるか設定側を直す判断ができます。
2. 特定ユーザーのプロセスだけ表示
uオプションで実行ユーザーを切り替えられます。Uキー(大文字)でユーザー選択画面が開きます。# 起動時にユーザーを指定 $ htop -u www-data # 起動後はUキーで変更
3. 遅延表示と表示項目のカスタマイズ(F2)
F2でSetupメニューに入ると、表示カラム・色テーマ・更新間隔を調整できます。カスタマイズ内容は `~/.config/htop/htoprc` に保存され、次回以降も継続します。実サーバーでの一例です。
$ cat ~/.config/htop/htoprc # Beware! This file is rewritten by htop when settings are changed in the interface. fields=0 48 17 18 38 39 40 2 46 47 49 1 hide_kernel_threads=1 hide_userland_threads=0 shadow_other_users=0 show_thread_names=0 show_program_path=1 highlight_base_name=1 delay=15
4. バッチモードでログに残す
-Cでカラーなし、-dで更新間隔、-nで繰り返し回数を指定するとシェル経由で結果保存もできます。ただし、バッチ用途はtopやpsの方が素直です。htopは基本「手動で見る」ツールと考えた方が実務に合います。プロセス・ネットワークの深掘りには Linux ポート確認の全コマンド も組み合わせると、誰が何のポートで通信しているかも含めて特定しやすくなります。
「htop: command not found」が出た時の対処法
新規構築したばかりのサーバーで、htopが入っていないことはよくあります。RHEL系でEPELを追加せずにdnf install htopを試すと「No match for argument: htop」と出ます。前述の手順通り、先に `sudo dnf install -y epel-release` を実行してから入れ直してください。
Alpine Linux(Dockerコンテナでよく使う)では `apk add htop` です。最小構成のコンテナイメージだとそもそもncursesが無いケースもあるので、`apk add ncurses htop` でまとめて入れるのが安全です。
「画面が崩れる」「色が変」なときの対処法
SSH経由でhtopを起動した時、罫線が崩れたり色がおかしくなることがあります。原因の多くはTERM環境変数とロケールです。# 現在のTERMを確認 $ echo $TERM xterm-256color # ロケール確認 $ locale | grep LANG LANG=ja_JP.UTF-8 # 必要なら明示的に設定してから起動 $ TERM=xterm-256color LANG=en_US.UTF-8 htop
本記事のまとめ
htopは、topの情報量とpsの柔軟さを一画面で使える実務向けツールです。20年以上現場でLinuxサーバーを触ってきた経験から言うと、運用者が最初に入れるべきパッケージのひとつです。| やりたいこと | コマンド/キー操作 |
|---|---|
| Ubuntu系でインストール | sudo apt install -y htop |
| RHEL系でインストール | sudo dnf install -y epel-release && sudo dnf install -y htop |
| 特定ユーザーのプロセスのみ表示 | htop -u www-data |
| プロセス検索 | F3キー(インクリメンタル検索) |
| ソート基準変更 | F6キー(PERCENT_MEM等を選択) |
| プロセス強制終了 | F9キー(SIGTERM→SIGKILLの順) |
| 親子関係をツリー表示 | F5キー |
| 表示設定のカスタマイズ | F2キー(Setup) |
「どのプロセスが悪さをしているか」を一瞬で見抜けますか?
サーバーが急に重くなった時に原因プロセスを特定できない、killの順序を間違えてDBを壊した、こうした現場事故の多くは「プロセスとリソースの見方の基礎」が体系化できていないことが原因です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます