Linux環境で、Windowsのタスクマネージャーのようにシステムリソースの使用状況や実行しているプロセスごとのリソースの使用状況をリアルタイムに確認する場合、標準搭載されているtopコマンドを使った方法や、topコマンドよりも視覚的にもわかりやすい代替ツールを使った方法があります。
そこでここではRedHat互換のAlmaLinuxを例に、CUI/GUIそれぞれの環境でおすすめのシステムモニターツール(タスクマネージャーツール)概要や基本的な使い方を紹介します。
目次
CUI環境
top
topコマンドは、CUIのLinux環境で最も一般的なシステムモニターツールで、CPUやメモリの使用状況や、プロセスごとのリソース使用状況をリアルタイムで確認できます。
topコマンドを実行すると以下のような画面が表示されます。
topコマンドの見方
topコマンドの基本的な見方は、以下のとおりです。
top - 16:20:29 up 5 min, 3 users, load average: 0.36, 0.52, 0.28
1行目には、左から現在の時刻とOSが起動してからの経過時間、現在ログインしているユーザー数が表示されており、一番右のload averageでは、多くの場合ディスクIO待ちのプロセス数が左から1分平均・5分平均・15分平均で表示されています。
load averageの数値は、システムの負荷を確認するときに役立ち、数値がCPUコアの総数を恒常的に超えているような場合は、負荷が高い状態と判断することが多いようです。
Tasks: 206 total, 1 running, 205 sleeping, 0 stopped, 0 zombie
2行目には、プロセスの状態ごとの個数が表示されており、左からプロセスの総数・実行中のプロセス数・スリープ中のプロセス数・停止中のプロセス数・ゾンビプロセス数が表示されています。
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
3行目には、プロセスのカテゴリごとのCPU時間の割合が表示されています。それぞれのカテゴリは以下を表しています。
- us:ユーザプロセスのCPU使用時間の割合
- sy:システムプロセスのCPU使用時間の割合
- ni:優先度が設定されたユーザプロセスのCPU使用時間の割合
- id:アイドル状態の割合
- wa:ディスクIO待ちプロセスのCPU使用時間の割合
- hi:ハードウェア割込み処理のCPU使用時間の割合
- si:ソフトウェア割込みの処理のCPU使用時間の割合
- st:CPUリソースを割り当てられなかった時間の割合
MiB Mem : 3659.0 total, 769.5 free, 1448.5 used, 1699.0 buff/cache
MiB Swap: 3584.0 total, 3584.0 free, 0.0 used. 2210.5 avail Mem
4行目には、左から搭載物理メモリのサイズ、空きメモリのサイズ、 OSやアプリケーションに割り当て済メモリのサイズ、バッファやキャッシュに割り当てられているメモリのサイズが表示されています。
5行目には、左からスワップ領域のサイズ、スワップ領域の空きサイズ、OSやアプリケーションに割り当て済のサイズが表示されています。なお、一番左の「avail Mem」には、物理メモリの実質的な空き容量が表示されており、メモリの空き状況を確認したい場合はこの値を確認します。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 170308 13440 9728 S 0.0 0.4 0:01.15 systemd
下段部分には、実行しているプロセスごとのプロセスIDやCPU使用率、メモリ使用量などのリソースの利用状況などを確認できます。
表示項目は、左から以下のとおりです。
- PID:プロセスID
- USER:実行ユーザ
- PR:プロセスの実行優先度(値が低いほど優先度が高い)
- NI:nice値での優先度(値が低いほど優先度が高い)
- VIRT:割当済の仮想メモリサイズ
- RES:消費しているメモリサイズ
- SHR:共有メモリとして消費しているメモリサイズ
- S : プロセスの状態(R:稼働、S:スリープ、D:スリープ(使用不可)、T:停止中、Z:ゾンビ)
- %CPU:プロセスが使用しているCPU時間の割合(パーセント表示)
- %MEM:プロセスが使用している物理メモリの割合(パーセント表示)
- TIME+ : プロセスが起動してからのCPU時間の合計
- COMMAND : 実行しているプロセス名
topコマンドのキー操作
topコマンド実行中は、以下のキー操作でプロセスをCPU使用率やメモリ使用率や、任意の項目で並べ替えることができます。
キー | 説明 |
---|---|
Shift+m | メモリ使用率順に並べ替え |
Shift+p | CPU使用率順に並べ替え |
Shift+o | 並べ替える項目を指定 |
topコマンドのオプション
また、topコマンドには以下のようなオプションが用意されており、表示の更新頻度や指定したユーザーのプロセスだけを表示する、指定したプロセスのリソース使用状況だけを表示するといったこともできます。
オプション | 説明 |
---|---|
-b | ユーザーの操作を受け付けないバッチモードで実行。ファイルに保存するときに有用 |
-d 秒 | 表示内容の更新秒数を指定 |
-n 回数 | 表示する回数を指定 |
-u ユーザー名 | 指定したユーザーのプロセスのみ表示 |
-p PID | 指定したプロセスIDのプロセスのみ表示 |
また「-b」オプションを使用して以下のようなコマンドを実行すれば、topコマンドの実行結果をファイルに保存するといったこともできます。
# top -b -n 1 >>/var/log/top_result_.txt
topコマンドは、画面の見方などをある程度覚えておく必要があり、グラフなどの視覚的な表示が一切ないので使いづらいと感じることもありますが、さまざまなLinux環境を扱うことがあるなら、topコマンドの使い方は覚えておいて損はないです。
htop
htopコマンドは、CUIのLinux環境向けのシステムモニターツールで、確認できる項目はtopコマンドと同様ですが、CPU使用率がグラフ表示できたり、矢印キーでの画面操作やプロセスの検索、シグナルの送信といった機能が搭載されており、topコマンドの高機能版といった位置づけです。
htopは、EPELリポジトリからインストールできます。
# dnf install epel-release
# dnf install htop
htopコマンドを実行すると、以下のような画面が表示され、画面左上には、CPUコアごとの使用率やメモリの使用率、スワップの使用率がグラフ表示されます。
また、画面下部ではプロセスごとのリソース使用率や表示され、最下部にはファンクションキーの機能が表示されており、ファンクションキーやマウスクリックで、htopのヘルプや設定のカスタマイズ、プロセス検索やフィルター、並べ替え、シグナル送信などを行えます。
また、htopコマンドには以下のようなオプションが用意されており、表示の更新頻度や指定したユーザーのプロセスだけを表示する、指定したプロセスのリソース使用状況だけを表示するといったこともできます。
オプション | 説明 |
---|---|
-C | モノクロ表示 |
-d 秒数 | 表示の更新間隔を指定 |
-u ユーザー名 | 指定したユーザーのプロセスのみ表示 |
-p PID | 指定したプロセスIDのプロセスのみ表示 |
GUI環境
GNOMEシステムモニター
Linuxのデスクトップ環境として一般的なGNOMEには「System Monitor」と呼ばれるタスクマネージャー(システムモニター)ツールが標準搭載されています。
Gnome System Monitorを起動するには、パネルの「アプリケーションを表示する」から「システムモニター」を選択します。
端末アプリから「gnome-system-monitor」と入力してエンターキーを押すことでも起動できます。
$ gnome-system-monitor &
GNOMEシステムモニターの画面には「プロセス」「リソース」「ファイルシステム」という3つのタブがあり、「プロセス」タブでは、プロセスごとのリソースの使用率を確認できます。
「リソース」タブでは、システム全体でのCPUやメモリ、ネットワークの使用率をグラフ表示で確認できます。
「ファイルシステム」タブでは、ファイルシステムごとの使用量や使用率などを確認できます。
あとがき
PCやサーバーでシステムモニターツールを起動するのは、なんらかのトラブルが発生した時ぐらいですが、いざという時に備えてどのツールを使ってどのようにチェックするのか確認しておくとよいでしょう。