htopとbtop:マシンで今何が起きているか
プロセス、CPU、メモリのライブ表示の見方、重要な列、全画面プログラムをテキストコンソールではなく「Screen」で実行すべき理由を説明します。
更新日 2026年8月23日
マシンの動作がおかしくなったとき、最初に確認すべきは「今、誰がリソースを食っているのか」です。それに答えてくれるのが htop と btop で、どちらもプロセス、コア負荷、メモリをリアルタイムで表示します。
インストール
apt update && apt install -y htop btop # Debian, Ubuntu
dnf install -y htop btop # AlmaLinux, CentOS Stream
古い AlmaLinux 9 のリポジトリには btop パッケージが存在しない場合があります。EPEL を有効化(dnf install -y epel-release)してから、インストールをやり直してください。
これらのプログラムは SSH 経由、または「Screen」モード(VNC)の「コンソール」タブで実行するのが便利です。テキストコンソールはシリアルポート経由で動作し、ウィンドウサイズを送信しません。常に 80×24 となり、btop のインターフェースは崩れるか描画を拒否します。詳しくはマシンのコンソールをご覧ください。
htop で見るべきポイント
上部のブロックには、各コア、メモリ、スワップのバーが表示されます。VDS-1 ではバーが 1 本、VDS-6 では 10 本です。その下がプロセステーブルで、重要な列は次のとおりです。
CPU%— 1 コアあたりの使用率です。100% はコア 1 つが完全にビジーであることを意味し、マシン全体ではありません。4 コアなら上限は 400% です。MEM%— そのプランの RAM に対する使用率です。RES— 実際にメモリを占有している量です。VIRTではなくこちらを基準にしてください。JVM やデータベースの仮想サイズは常に巨大で、意味を持ちません。S— 状態です。Rは実行中、Sはスリープ、Dはディスク待ち、Zはゾンビです。
便利なキー: F6 — ソート(通常は CPU% または MEM%)、F4 — 名前でフィルタ、F5 — プロセスツリー(誰が誰を起動したかがわかります)、F9 — シグナル送信、q — 終了。
状態 D のプロセスが多い場合はディスクがボトルネックです。ディスク負荷をご覧ください。CPU% が低いのに load average が高い場合も同じです。
btop と単発チェック
btop は同じ情報に加えて、直近数分間の CPU、ネットワーク、ディスクのグラフを表示します。動作は重く、まともなターミナルが必要ですが、スパイクがあったのか負荷が持続しているのかがすぐにわかります。
ターミナルが不便なときは、単発のコマンドで十分です。
ps aux --sort=-%cpu | head -10 # ten most CPU-hungry processes
ps aux --sort=-%mem | head -10 # by memory
uptime # average load for 1, 5 and 15 minutes
よくある間違い
- 一瞬の表示だけで負荷を判断する。 htop を起動した瞬間のスパイクは正常です。1 分ほど観察するか、パネル
/hosting/vds/m/<id>の「概要」でグラフを確認してください。 - いきなり
kill -9でプロセスを殺す。 まず通常のkill(TERM シグナル)またはsystemctl stopを使い、サービスがファイルと接続を閉じられるようにしてください。-9は最後の手段です。 - 「空きメモリが少ない」をメモリ不足と混同する。 Linux は空きメモリをキャッシュに回しますが、これは正常です。危険なサインはスワップの増加で、メモリとスワップの記事で解説しています。
SSH でマシンが応答しなくなり htop を開けない場合は、パネルの「コンソール」を使ってください。ネットワークが過負荷でもディスクが満杯でも動作します。