topコマンドの基本的な使い方
[履歴] [最終更新] (2016/01/30 23:02:33)
最近の投稿
注目の記事

概要

topコマンドは、リアルタイムにシステムの状態を表示します。

基本的な使い方

更新間隔が既定では 2 秒なので "-d" オプションで 1 を指定するとよいです。

$ top -d1

特定のプロセスのみを監視したい場合は "-p" オプションを使用します。

$ top -d1 -p 989,1092

pgrepと組み合わせると便利です。

$ top -d1 -p `pgrep -d "," -f "http"`

起動後はプロセス一覧の並び順を適宜変更します。

  • shift+p : CPU使用率順
  • shift+m : メモリ使用率順
  • shift+o : その他の項目 (man top を参照)

主要なヘッダ表示内容の読み方

サーバ稼動時間、ログインユーザ数、過去1,5,15分前までのロードアベレージの平均値

top - 15:11:02 up 27 min, 1 user, load average: 0.00, 0.00, 0.00

タスクの状況 (全タスク数、実行中、待機中、停止中、ゾンビプロセス)

Tasks: 80 total, 1 running, 79 sleeping, 0 stopped, 0 zombie

CPU使用率

Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

実メモリ使用率 (実メモリMem total = used + free、実メモリMem used の一部が buffers および cached)

Mem: 510824k total, 125260k used, 385564k free, 7992k buffers
                                               52556k cached  ← ややこしいことにSwapの行に表示される

仮想メモリ使用率 (全仮想メモリSwap total = used + free)

Swap: 1048568k total, 0k used, 1048568k free, 52556k cached  ← ややこしいことにMemの情報が表示される

COMMAND 列を詳細表示に切り替える

実行中に 'c' を押すと COMMAND 列が詳細表示に切り替わります。コマンドの引数なども確認できるため便利です。例えば

mysqld

という表示が

/usr/libexec/mysqld --basedir=/usr --datadir=...

という表示に切り替わります。

CPU コア毎の使用率を表示

実行中に '1' を押すと CPU 使用率の行がコア毎に分割されます。

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
↓
Cpu0  :  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
関連ページ
    プロセスID関連 (ps, pgrep, pkill) 全プロセスを表示するためには ps ax とすればよく、その表示を見やすくするためには "u" と "w" を追加して ps auxw とすればよいです。表示件数自体は同じです。そのうち特定のコマンドのプロセスIDだけを表示したい場合は ps ax | grep 'my_script' | grep -v grep | aw
    コマンドのエイリアスを登録する (update-alternatives) mybin という名前のコマンドを登録 sudo update-alternatives --install /usr/local/bin/mybin mybin /usr/bin/echo 10 sudo update-alternatives --install /usr/local/bin/mybin mybin