Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第24章 システムモニタリングツール

システムを設定するには、多くの場合システム管理者は空きメモリの容量、空きディスク領域、ハードディスクのパーティション設定状況、実行中のプロセスを決定する必要があります。

24.1. システムプロセスの表示

24.1.1. ps コマンドの使用

ps コマンドは、実行中のプロセスについての情報を表示します。静的な一覧、すなわちコマンドを実行するときに実行しているプロセスのスナップショットです。実行中のプロセスを定期的に更新した場合は、top コマンドまたは System Monitor アプリケーションを代わりに使用します。
他のユーザーが所有しているプロセスを含め、現在システム上で実行中の全プロセスを一覧表示するには、シェルプロンプトで以下を入力します。
ps ax
一覧のプロセスごとに、ps ax コマンドがプロセス ID(PID)、それに関連付けられているターミナル(TTY)、現在のステータス(STAT)、累積された CPU 時間(TIME)、および実行可能ファイルの名前(COMMAND)を表示します。以下に例を示します。
~]$ ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:01 /sbin/init
    2 ?        S      0:00 [kthreadd]
    3 ?        S      0:00 [migration/0]
    4 ?        S      0:00 [ksoftirqd/0]
    5 ?        S      0:00 [migration/0]
    6 ?        S      0:00 [watchdog/0]
[output truncated]
各プロセスと同時に所有者も表示するには、以下のコマンドを使用します。
ps aux
ps ax コマンドで提供される情報とは別に、ps aux はプロセス所有者の実効ユーザー名(USER)、CPU のパーセンテージ(%CPU)およびメモリー(%MEM)の使用状況、キロバイト単位で仮想メモリーサイズ(キロバイト単位)、キロバイト単位での非スワップ物理メモリー容量(VSZ)、プロセスの開始日時を表示します。RSSたとえば、以下のようになります。
~]$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  19404   832 ?        Ss   Mar02   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Mar02   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Mar02   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    Mar02   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    Mar02   0:00 [migration/0]
root         6  0.0  0.0      0     0 ?        R    Mar02   0:00 [watchdog/0]
[output truncated]
ps コマンドを grep と組み合わせて使用して、特定のプロセスが実行中かどうかを確認することもできます。たとえば、Emacs が実行中かどうかを確認するには、以下を入力します。
~]$ ps ax | grep emacs
12056 pts/3    S+     0:00 emacs
12060 pts/2    S+     0:00 grep --color=auto emacs
利用可能なコマンドラインオプションの一覧は、ps(1)の man ページを参照してください。

24.1.2. top コマンドの使用

top コマンドは、システムで実行しているプロセスのリアルタイムの一覧を表示します。また、システムのアップタイム、現在の CPU およびメモリ使用率、実行中のプロセスの合計数についての追加情報も表示します。さらには、一覧の並び替えやプロセスの kill などの操作も実行できます。
top コマンドを実行するには、シェルプロンプトで以下を入力します。
top
一覧表示された各プロセスについて top コマンドはプロセス ID(PID)、プロセス所有者の実効ユーザー名(USER)、優先度(PR)、優れた値(NI)、プロセスが使用する仮想メモリー容量(VIRT)、プロセスが使用する非スワップ物理メモリー容量(RES)、プロセスが使用する共有メモリー容量(SHR)、プロセスステータスフィールド S)を表示します。 CPU(%CPU)およびメモリー(%MEM)の使用量の割合、累積された CPU 時間(TIME+)、実行可能ファイルの名前(COMMAND)。以下に例を示します。
~]$ top
top - 02:19:11 up 4 days, 10:37,  5 users,  load average: 0.07, 0.13, 0.09
Tasks: 160 total,   1 running, 159 sleeping,   0 stopped,   0 zombie
Cpu(s): 10.7%us,  1.0%sy,  0.0%ni, 88.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    760752k total,   644360k used,   116392k free,     3988k buffers
Swap:  1540088k total,    76648k used,  1463440k free,   196832k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
14401 jhradile  20   0  313m  10m 5732 S  5.6  1.4   6:27.29 gnome-system-mo
 1764 root      20   0  133m  23m 4756 S  5.3  3.2   6:32.66 Xorg
13865 jhradile  20   0 1625m 177m 6628 S  0.7 23.8   0:57.26 java
   20 root      20   0     0    0    0 S  0.3  0.0   4:44.39 ata/0
 2085 root      20   0 40396  348  276 S  0.3  0.0   1:57.13 udisks-daemon
    1 root      20   0 19404  832  604 S  0.0  0.1   0:01.21 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.02 ksoftirqd/0
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    7 root      20   0     0    0    0 S  0.0  0.0   0:01.00 events/0
    8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cpuset
    9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper
   10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns
   11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr
   12 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm
[output truncated]
表24.1「インタラクティブな top コマンド」 には、top で使用できる便利な対話型のコマンドが含まれています。詳細は、top(1)の man ページを参照してください。

表24.1 インタラクティブな top コマンド

コマンド 詳細
EnterSpace 表示を最新の情報に直ちに更新します。
h, ? ヘルプ画面を表示します。
k プロセスを強制終了します。プロセス ID およびプロセスに送信するシグナルがプロンプトされます。
-n 表示されるプロセス番号を変更します。番号を入力するようプロンプトされます。
u 一覧をユーザー別に並べ替えます。
M 一覧をメモリ使用率で並べ替えます。
%P 一覧を CPU 使用率で並べ替えます。
q ユーティリティーを終了して、シェルプロンプトに戻ります。

24.1.3. システムモニターツールの使用

System Monitor ツールの Processes タブを使用すると、グラフィカルユーザーインターフェースからプロセスの表示、検索、優先度の変更、kill を行うことができます。このツールをインストールするには、root で以下のコマンドを発行します。
~]# yum install gnome-system-monitor
System Monitor ツールを起動するには、パネルから ApplicationsSystem ToolsSystem Monitor を選択するか、シェルプロンプトで gnome-system-monitor と入力します。次に Processes タブをクリックして実行中プロセスの一覧を表示します。

図24.1 システムモニター — プロセス

システムモニター — プロセス
一覧のプロセスごとに、System Monitor ツールは 名前(Process Name)、現在のステータス(ステータス)、CPU 使用率のパーセンテージ(% CPU)、nice 値(Nice)、プロセス ID(ID)、メモリー使用量(メモリー)、プロセスが待機中のチャネル(Waiting Channel)、およびセッション(セッション)に関する追加情報を表示します。特定の列で昇順で情報を並べ替えるには、その列の名前をクリックします。特定のコラム別に情報を昇順で並び替えるには、コラム名をクリックします。
デフォルトでは、System Monitor ツールは現在のユーザーが所有しているプロセスの一覧を表示します。View メニューからさまざまなオプションを選択すると、以下が可能になります。
  • 実行中のプロセスのみの表示
  • すべてのプロセスの表示
  • ユーザーのプロセスの表示
  • プロセスの依存関係の表示
  • 選択したプロセスのメモリーマップの表示
  • 選択したプロセスで開いているファイルの表示
  • プロセスの一覧を更新します。
さらに、Edit メニューのさまざまなオプションにより、以下が可能になります。
  • プロセスを停止します。
  • 停止したプロセスの実行を継続します。
  • プロセスを終了します。
  • プロセスを強制終了します。
  • 選択したプロセスの優先度を変更する
  • プロセスの一覧の更新間隔や表示する情報など、システムモニター の設定を編集します。
また、一覧からプロセスを選択し、End Process ボタンをクリックしてプロセスを終了することもできます。