Linuxコマンド「htop」の使い方 オプションや現場での事例をもとに徹底解説!

最終更新日 2025年1月14日

スポンサーリンク

htopについて

概要

Linuxでシステム調査やパフォーマンス監視を行う際に、htopは非常に便利なコマンドです。

htopはターミナルベースのtopコマンドを改良したツールで、機能性と解析性を高めたGUI(グラフィカルユーザーインターフェースのことで視覚的に操作しやすい画面のことです)ベースのビューを提供します。

このツールを使うことで、システムのリソース使用状況をより視覚的に観測し、問題の分析や解決を行えます。

主な特徴

htopコマンドの主な特徴は以下です。

  • カラーコード化されたCPU(中央演算処理装置)やメモリ利用率表示できる
    負荷が高い部分が一目で分かります。
  • プロセス(実行中のプログラム)ごとの情報を視覚化
    リソースを多く消費しているプロセスを簡単に特定可能。
  • マウス操作に対応したインタラクティブなUI(ユーザーインターフェース)
    初心者にも扱いやすいです。
  • フィルタリング(特定条件で絞り込み)機能
    特定のプロセスを素早く検索できます。
  • マルチスレッドプロセスの詳細表示
    スレッドごとの情報も確認可能。
  • I/Oリソース監視
    ディスク読み書きの負荷を確認可能。
htopの主な特徴  
htopは視覚的にシステム情報を把握でき、多機能なインターフェースを提供します。  
カラーコード化  
CPUやメモリの利用率が色分けされ、負荷の高い部分を一目で視認可能です。視覚的にリソース使用状況を把握しやすくなります。  
マウス操作対応  
htopはインタラクティブなユーザーインターフェースを持ち、マウスを使用したプロセス管理が可能で、直感的な操作を実現しています。  
プロセス情報の視覚化  
実行中のプロセスがグラフィカルに表示され、リソース消費の多いプロセスを簡単に特定し、迅速に対策を講じることができます。
htopの主な特徴
スポンサーリンク

htopのオプション

htopコマンドで利用可能なオプションは以下です。

オプション説明
-dディレクトリ(フォルダ)を指定
-uユーザーを指定(例:htop -u root)
-pプロセスIDを指定(例:htop -p 1234)
-CCPU利用率をカラーで表示
--treeプロセスをツリー構造(親子関係が分かる形式)で表示
--sort-keyソート基準を指定して表示(例:htop --sort-key=CPU)
htopのオプション  
htopのオプションで監視作業を効率化し、
システムパフォーマンスを最大化できます。  
オプションの意義  
htopのオプションを活用することで、表示される情報をカスタマイズし、効率的にプロセス監視を行えるようになります。これにより、システム運用の最適化を実現できます。  
主なオプション例  
「-d」オプションは更新間隔を指定し、「-C」はスレッドの情報を表示。「-u」は特定ユーザーに絞り込み可能。これらを知ることで利用シーンに合わせた運用が可能です。

htopのオプション

出力結果のステータスの見方

出力結果におけるステータスの見方は以下の通りです。

項目名説明
PIDプロセスID:システムがプロセス(プログラム)を識別するための一意の番号。
USERユーザー名:そのプロセスを実行しているユーザー(例: root や appuser)。
PRI優先度(Priority):プロセスの優先順位。数値が低いほど高い優先度で処理される。
NINice値:プロセスの優先度を調整する値。小さいほど優先度が高くなる(管理者権限で変更可能)。
VIRT仮想メモリ(Virtual Memory):プロセスが使用する仮想アドレス空間の合計サイズ。
RES実メモリ(Resident Memory):プロセスが実際に使用している物理メモリの量。
SHR共有メモリ(Shared Memory):プロセス間で共有されているメモリの量。
Sステータス(Status):プロセスの状態を示す。主な値は以下の通り:
- R:実行中(Running)
- S:待機中(Sleeping)
- Z:ゾンビプロセス(Zombie)
- D:割り込み不可状態(Disk sleep)
%CPUCPU使用率:プロセスが現在使用しているCPUリソースの割合。
%MEMメモリ使用率:プロセスがシステム全体の物理メモリのうちどれだけ使用しているかの割合。
TIME+実行時間:プロセスが開始されてから使用されたCPU時間の累積値(フォーマットは HH:MM:SS)。
COMMANDコマンド:プロセスを開始したコマンドや実行中のプログラムの名前(例: nginx, python)。
スポンサーリンク

実際の出力結果の見方

下記の出力結果が表している内容を説明します。

nginx プロセス(PID 1234)

  • システムの45%のCPUを使用中で、高負荷状態。
  • 実メモリ(RES)は256MB、物理メモリ全体の1.2%を使用。
  • 実行時間は1分10秒。

python プロセス(PID 5678)

  • CPU使用率は5%と低い。
  • メモリ使用率は2.3%、RESは512MBで、比較的多くのメモリを消費。

ポイント

ステータス確認の際のポイントは以下です。

  • 高い%CPUや%MEMの値に注目してリソースを大量消費しているプロセスを特定。
  • ステータス(S列)が「Z」や「D」のプロセスは異常が疑われるため、調査が必要。
  • TIME+ が増加し続けているかを監視することで、長時間動作しているプロセスの挙動を把握。

その他知っておいた方が良いこと

初期設定

初めてhtopを実行すると、デフォルト設定が適用されます。
しかし、好みに合わせて設定を変更することで、より効率的に活用できます。

設定画面はF2キーを押すことで開きます。

設定ファイルの編集

htopは設定内容を~/.config/htop/htoprcに保存します。このファイルを直接編集することで、より詳細なカスタマイズが可能です。

htopが見つからない場合

htopはデフォルトでインストールされていない場合があります。その際は以下のコマンドでインストールしてください。

パーミッションエラーが発生する場合

特定のプロセス情報を表示するには管理者権限が必要な場合があります。
以下のようにsudoを付けて実行してください。

システムが重い場合

htop自体が負荷をかける場合は、更新間隔を長く設定することで軽減できます。

利用するコマンド

スポンサーリンク

業務でよく使うコマンドの例

この章では業務でよく利用するオプションについて記載します。
実際に現場で利用したオプションや使い方について事例ベースで紹介していきます。

❶CPU利用率をカラー化

CPUごとの利用率が色分けして表示することが可能です。
これにより、どのCPUがどの程度使用されているかが一目で分かります。

利用するコマンド

上記のコマンドを利用すると以下のような出力になります。

❷プロセスの詳細監視

特定のプロセスに関連する詳細な統計情報が確認できます。

利用するコマンド

プロセスの詳細監視  
htopコマンドを用いて、特定のプロセスの詳細情報を簡単に監視  
htopコマンドの活用方法  
特定のプロセスを監視するには、「htop -p [プロセスID]」コマンドを使用します。このコマンドで、CPUやメモリの利用状況など詳細な情報を取得可能です。  
プロセス情報の重要性  
プロセス情報を監視することで、システムリソースの過剰利用やパフォーマンスの低下を即座に確認でき、効率的なシステム管理が可能となります。
プロセスの詳細監視
スポンサーリンク

❸フィルタリング機能

フィルタリング機能を使用して特定のプロセスを素早く探すことが可能です。

利用するコマンド

上記のコマンドを実施した後に、F4キーを押し、フィルタリングしたいプロセス名を入力(例:nginx)します。

フィルタリング機能  
htopのフィルタリング機能を使えば、必要なプロセスを即座に見つけ出すことが可能です。これにより業務効率を大幅に向上させます。
フィルタリングの方法  
htopを起動した後、F4キーを押します。次に検索したいプロセス名を入力し、Enterキーを押すと、フィルタリングが適用されます。この機能は特定のプロセスを探すのに非常に便利です。
業務効率の向上  
フィルタリング機能を使うことで、プロセス一覧から目的のものを探す手間が省けます。これは特に多くのプロセスが稼働している場合に重要で、時間を大幅に節約できます。
フィルタリング機能

❹プロセスを実行したユーザの指定

特定のユーザーが実行しているプロセスのみを表示することができ、リソース消費が大きいユーザーの特定に役立ちます。

利用するコマンド

上記のコマンドを利用すると以下のように特定のユーザに絞った出力になります。

❺ツリー構造でプロセス表示

プロセスの親子関係(どのプロセスがどのプロセスを起動したか)がツリー形式で表示され、依存関係が分かりやすくなります。

利用するコマンド

上記のコマンドを利用するとツリー形式で表示されます。

スポンサーリンク

htopを使った実例

実例❶サーバー負荷軽減

大量のトラフィックが発生したウェブサーバーでの負荷軽減のため、htopでCPU使用率が高いプロセスを特定し、高負荷プロセスをF9で終了するという使い方をしました。

実際の対応手順

1.負荷の原因を調査する準備

まず、サーバーにアクセスできるようにします。サーバーがリモートにあったのでSSHを使って接続しました。


2. htopを起動する

サーバーにログインした後、次のコマンドを実行して htop を起動します。

画面が開いたら、色分けされたCPU利用率やメモリ使用量がリアルタイムで表示されます。


3. CPU使用率が高いプロセスを見つける

画面上部にCPUやメモリの利用状況が表示されていることを確認し、下記の手順を実施しました。

1.キーボードの矢印キー(↑↓)を使ってプロセスリストをスクロール。
2.%CPU 列に注目し、数値が大きいプロセスを探す。

上記のプロセスがCPUを95%使用しており、このプロセスが問題の原因となっていると考えました。


4. 高負荷のプロセスを終了する

問題のプロセスを終了するため、以下の手順を実行しました。

1.矢印キーを使って、終了したいプロセス(例: process_name)を選択
2.F9 キーを押します。これで「Kill Process(プロセスを終了)」メニューが開く
3.シグナル(終了の指令)を選択。※通常はデフォルト(SIGTERM)を選択します。
4.Enterキーを押してプロセスを終了

スポンサーリンク

実例❷メモリリークの検出

プログラムがメモリを解放せずに使い続けてしまう「メモリリーク」が発生すると、サーバーの動作が遅くなり、最悪の場合システムが停止することがあります。この問題を htop を使用し、下記の手順で特定し、プロセス対応しました。

1.プロセスのメモリ使用量が急激に増加しているのをhtopで監視。
2.メモリリークが疑われるプロセスを特定し、修正。

実際の対応手順

1.負荷の原因を調査する準備

まず、サーバーにアクセスできるようにします。サーバーがリモートにあったのでSSHを使って接続しました。


2. htopを起動する

サーバーにログインした後、次のコマンドを実行して htop を起動します。

画面が開くと、プロセスごとのメモリ使用量がリアルタイムで表示されます。


3. メモリ使用量が多いプロセスを確認

%MEM 列を確認します。これは、プロセスが全体のメモリのうちどの程度を使用しているかを示します。
矢印キー(↑↓)を使ってリストをスクロールし、異常に高い値を示すプロセスを探しました。

1.キーボードの矢印キー(↑↓)を使ってプロセスリストをスクロール。
2.%CPU 列に注目し、数値が大きいプロセスを探す。

上記のプロセスが45%のメモリを使用しており、メモリリークの原因であると考え、以降このプロセスに対して対策を実施していきました。

4. メモリ使用量の変化を監視

一定時間監視を続け、メモリ使用量が時間とともに増加し続けているかを確認しました。
確認方法としては、htop上で問題のプロセスを選択(矢印キーを使用)し、メモリ使用率が画面更新(デフォルトでは1秒ごと)が徐々に増加していると確認しました。


5.問題のプロセスを一時的に停止(必要に応じて)

影響を最小限にするために、問題のプロセスを選択し、F7キーで優先度を下げました。
その後、問題のプロセスが重要なサービスに関連していないか確認しました。


6.再起動

最後にメモリリークの原因となっているプログラムを再起動し、再び htop を使ってメモリ使用量が正常値に戻っているか確認しました。



この記事も参考になるかも!
この記事を書いた人!

ゴリタン

インフラエンジニアとして、ネットワークとサーバーの運用・保守・構築・設計に幅広く携わり、
現在は大規模政府公共データの移行プロジェクトを担当。

CCNPやLPICレベル3、AWSセキュリティスペシャリストなどの資格を保有しています。