「top」は時代遅れ!?これからは「htop」を使おう!

Linuxのプロセスビューワといえばtopですよね。でも、もっと高機能な「htop」というプロセスビューワがあるんです。topと同じように端末ウィンドウやコンソールで動きますが、ずっと高機能ですよ。主な特徴は以下の通りです。

  • CPU負荷やメモリ・スワップ使用率がグラフ表示される
  • 上下左右にスクロールしてすべて表示できる
  • カラフルな文字で見やすく表示される
  • 配色や表示項目などをカスタマイズできる
  • カスタマイズした内容を保存できる
  • キーボードだけじゃなくマウスでも操作できる

htopのインストール

では、htopをインストールしましょう。以下に、主なディストリビューションごとの手順を紹介します。

Ubuntu 16.04、Debian 9の場合は、以下のコマンドでインストールできます。

sudo apt -y install htop

Fedora 26の場合、以下のコマンドでインストールできます。

sudo dnf -y install htop

CentOS 7の場合、EPELレポジトリからインストールできます。有効になっていなければ、以下のコマンドで設定してください。

sudo yum -y install epel-release

その後、以下のコマンドでインストールできます。

sudo yum -y install htop

htopを起動する

起動は、コマンドラインで「htop」と実行するだけです。

htop

すると、以下のように表示されます。

画面左上は、CPUコアごとの使用率、メモリの使用率、スワップの使用率の表示です。グラフ表示されるので、topより分かりやすいですね。

右上は、プロセス(タスク)数、スレッド数、CPUを使っているスレッド数が表示されます。
その次の行は、ロードアベレージ(過去1分間、5分間、15分間の平均待ちプロセス数)です。
最後の行は、起動後の経過時間です。

画面の一番下には、ファンクションキーの機能が書かれています。F1は「Help」なのですが、デスクトップ環境で「gnome-terminal」のような端末エミュレーターを用いている場合、そちらのヘルプが開いてしまうでしょう。そういった場合は、マウスで「F1」の部分をクリックしてください。すると、以下のようにヘルプが表示されます。

これらの操作のうち、よく使われるものを見ていきましょう。

プロセス一覧の並べ替え

Shift+PキーでCPU使用率順、Shift+Mキーでメモリの使用率順、Sfhit+TキーでCPU使用時間の合計順に並べます。さらに、Shift+Iキーで昇順と降順を切り替えることができます。なお、マウスで各項目をクリックして並べ替えたり、昇順と降順を切り替えることも可能です。

また、F6キーを押して、並べ替える項目を矢印キーで選ぶこともできます。

プロセス一覧のスクロール

htopでは、矢印キーを使ってプロセス一覧を上下左右にスクロールさせることができます。これで、画面に入りきらないプロセスをみたり、コマンドのパラメーターを確認することが可能です。

htopの設定【F2キー】

F2キーを押すことで、設定画面に入ることができます。表示項目を変更したり、色のテーマを変えたりすることができます。

設定内容は、「~/.config/htop/htoprc」に保存されます。このファイルを消せば、デフォルトの設定に戻ります。

プロセスの検索【F3キー】

F3キーを押すと、入力した文字列でプロセスを検索できます。

F3キーで次を検索し、Escキーで検索モードを抜けます。

プロセスのフィルタ【F4キー】

F4キーでプロセスをフィルタします。入力した文字列に一致したプロセスのみが表示されます。

プロセスのツリー表示【F5キー】

F5キーもしくはtキーでプロセスの親子関係をツリー表示させることができます。この状態でプロセスを選んでF6を押すと、ツリーを閉じたり開いたりできます。
もう一度F5キーを押すと元に戻ります。

プロセスへのシグナル送信【F9キー】

プロセスを選択してF9キーもしくはkキーを押すと、「シグナル」を選択して送ることができます。topコマンドだと数値を入力しなければいけないので、少し楽ですね。

プロセスの優先度設定【F7・F8キー】

rootで実行した場合は、F7キーで選択したプロセスのnice値を下げる(プロセスの優先度を上げる)ことができます。
F8キーを押すと、選択したプロセスのnice値が上がります(優先度が下がります)。

プロセスが開いているファイルを見る【l(エル)キー】

プロセスを選択してlキーを押すと、lsofコマンドを実行し、そのプロセスが開いているファイルが表示されます。

プロセスのシステムコールをトレースする【sキー】

プロセスを選択してsキーを押すと、straceコマンドを実行し、そのプロセスのシステムコールをトレースします。

まとめ

topコマンドだと、少し見にくかったり、操作が面倒だったりする部分が、htopコマンドだと改善されています。また、矢印キーでのスクロールや検索、シグナルの送信なんかもできるので、ps、less、grep、killといったコマンドを組み合わせてやっていることもhtopだけでできますよね。ぜひ一度インストールして、試してみてください。