Linuxでリソースやプロセスの実行状況をリアルタイムで確認する方法

Linuxでリソースやプロセスの実行状況をリアルタイムで確認する方法

Linux環境で、Windowsのタスクマネージャーのようにシステムリソースの使用状況や実行しているプロセスごとのリソースの使用状況をリアルタイムに確認する場合、標準搭載されているtopコマンドを使った方法や、topコマンドよりも視覚的にもわかりやすい代替ツールを使った方法があります。

そこでここではRedHat互換のAlmaLinuxを例に、CUI/GUIそれぞれの環境でおすすめのシステムモニターツール(タスクマネージャーツール)概要や基本的な使い方を紹介します。

この記事は、以下の環境での動作結果を基にしています。他のディストリビューションでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
AlmaLinux9.4

CUI環境

top

topコマンドは、CUIのLinux環境で最も一般的なシステムモニターツールで、CPUやメモリの使用状況や、プロセスごとのリソース使用状況をリアルタイムで確認できます。

topコマンドを実行すると以下のような画面が表示されます。

Linuxでリソースやプロセスの実行状況をリアルタイムで確認する方法

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+pCPU使用率順に並べ替え
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のヘルプや設定のカスタマイズ、プロセス検索やフィルター、並べ替え、シグナル送信などを行えます。

Linuxでリソースやプロセスの実行状況をリアルタイムで確認する方法

また、htopコマンドには以下のようなオプションが用意されており、表示の更新頻度や指定したユーザーのプロセスだけを表示する、指定したプロセスのリソース使用状況だけを表示するといったこともできます。

オプション説明
-Cモノクロ表示
-d 秒数表示の更新間隔を指定
-u ユーザー名指定したユーザーのプロセスのみ表示
-p PID指定したプロセスIDのプロセスのみ表示

GUI環境

GNOMEシステムモニター

Linuxのデスクトップ環境として一般的なGNOMEには「System Monitor」と呼ばれるタスクマネージャー(システムモニター)ツールが標準搭載されています。

Gnome System Monitorを起動するには、パネルの「アプリケーションを表示する」から「システムモニター」を選択します。

Linuxでリソースやプロセスの実行状況をリアルタイムで確認する方法

端末アプリから「gnome-system-monitor」と入力してエンターキーを押すことでも起動できます。

$ gnome-system-monitor &

GNOMEシステムモニターの画面には「プロセス」「リソース」「ファイルシステム」という3つのタブがあり、「プロセス」タブでは、プロセスごとのリソースの使用率を確認できます。

Linuxでリソースやプロセスの実行状況をリアルタイムで確認する方法

「リソース」タブでは、システム全体でのCPUやメモリ、ネットワークの使用率をグラフ表示で確認できます。

Linuxでリソースやプロセスの実行状況をリアルタイムで確認する方法

「ファイルシステム」タブでは、ファイルシステムごとの使用量や使用率などを確認できます。

Linuxでリソースやプロセスの実行状況をリアルタイムで確認する方法

あとがき

PCやサーバーでシステムモニターツールを起動するのは、なんらかのトラブルが発生した時ぐらいですが、いざという時に備えてどのツールを使ってどのようにチェックするのか確認しておくとよいでしょう。