topコマンドで、サーバシステムと各プロセスのモニタリングを行う

 

topコマンドでは、リアルタイムなシステムモニタリングを行うことが可能です。

sarコマンドやvmstatコマンドでは把握できない、プロセス単位の情報を取得できるのが特徴です。

topコマンドの実行方法

ここでは、CentOS6を前提に説明していきます。

基本的な実行方法

基本的な実行方法は下記の通りです。システムの状況が表示されます。情報の更新間隔は3秒です。

コマンドを終了させる方法

topコマンドを実行すると、無期限に情報を更新し続けます。終了させたい場合は、「q」ボタンを使います。

更新間隔を変更したい場合

情報の更新間隔を変更したい場合は、-dオプションを利用します。10秒間隔で更新する例を示します。

更新回数を指定したい場合

情報の更新回数を指定したい場合は、-nオプションを利用します。6回更新する例を示します。

プロセスを指定したい場合

表示させるプロセスを指定したい場合は、-pオプションを利用します。

topコマンドの結果の見方

topコマンドを実行すると、下記のような結果を得ることができます。

ヘッダ

項目 内容
02:03:18 up 47 days 起動時間
23:49 現在時刻
1 user ログインユーザ数
load average: 0.00, 0.00, 0.00 ロードアベレージ 1分 5分 15分

ロードアベレージは、左側(1分)と右側(15分)の値のギャップが大きければ大きいほど急激に負荷があがっていることがわかります。

Tasks

項目 内容
82 total 合計プロセス数
1 running 起動プロセス数
81 sleeping スリーププロセス数
0 stopped 停止プロセス数
0 zombie ゾンビプロセス数

Cpu(s)

項目 内容
0.0%us ユーザが利用しているCPU使用率
0.0%sy システムが利用しているCPU使用率
0.0%ni nice値を変更しているプロセスのCPU使用率
99.9%id 待機中のCPU使用率
0.0%wa IO待ちしているCPU使用率
0.0%hi ハードウェア割り込みによるCPU使用率
0.0%si ソフトウェア割り込みによるCPU使用率
0.0%st ゲストOSが割り当て要求をしたが、割り当ててもらえなかったCPU使用率

Mem

項目 内容
502112k total 合計メモリ量
484760k used 利用メモリ量
17352k free 空きメモリ量
113956k buffers 利用メモリ量のうち、バッファ利用しているメモリ量

Swap

項目 内容
2150396k total 合計スワップ量
3564k used 利用スワップ量
2146832k free 空きスワップ量
111404k cached キャッシュしているスワップ量

プロセス一覧

項目 内容
PID プロセスID
USER 実行ユーザ名
PR 優先度
NI nice値
VIRT 仮想メモリ利用量
RES 物理メモリ利用量
SHR 共有メモリ利用料
S プロセス状態
D = 割り込み不可能なスリープ状態
R = 実行中
S = スリープ状態
T = トレース中/停止された
Z = ゾンビ
%CPU CPU使用率
%MEM メモリ使用率
TIME+ 稼働時間
COMMAND 実行コマンド

topコマンドの操作方法

top実行中にソート順や出力項目を変更することが可能です。

ソート順変更

「Ctl+o」 をおすことで、プロセス一覧のソート順を変更できます。メモリやCPUでソートすることが多いように思います。

下記画面へ遷移するので、ソートキーとしたい項目のキーをクリックします。クリックすると該当のソートキーに「*」がつきます。

エンターをおすことで元画面へ戻ることができます。

CPUでソートしたい場合は、「Ctl+o」でソート順変更画面へ遷移し、「K」をクリックし、エンターキーでもとに戻ります。

表示カラムの選択

「f」ボタンをおすことで、プロセス一覧の表示項目を選択することが可能です。

出力する項目には「*」がつきます。出力制御したい項目に対応するボタンを押すことで、出力有無を切り替えることが可能です。

まとめ

topコマンドを利用することで、リアルタイムにサーバ状況をモニタリングすることが可能になります。

vmstatやsarとは異なり、プロセス単位で情報を見ることができます。ボトルネックになっているプロセスを調査するために必須のコマンドですので覚えておきましょう。

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。