topの使い方

サーバのモニタリングを行う上でよくお世話になるコマンドのひとつがtopです。
topコマンドではCPUやメモリの使用状況と稼働しているプロセスが一目で確認することができるため、リアルタイムでサーバの状況を確認するときに重宝します。

topコマンドの見方と主なオプションをまとめます。

使い方

以下のコマンドを実行します。

top

実行すると以下のような画面が表示されます。

top - 20:59:34 up 5 days,  5:08,  2 users,  load average: 0.00, 0.00, 0.00
Tasks:  87 total,   1 running,  86 sleeping,   0 stopped,   0 zombie
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:   2057316k total,  2003836k used,    53480k free,    83156k buffers
Swap:  1324024k total,        0k used,  1324024k free,  1749296k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
15055 service   20   0 31480 2928 1088 S  0.3  0.1   1:34.45 tmux
24911 service   20   0 19072 1340 1020 R  0.3  0.1   0:00.94 top
    1 root      20   0  8356  844  716 S  0.0  0.0   0:07.29 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 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.49 ksoftirqd/0
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    6 root      20   0     0    0    0 S  0.0  0.0   0:09.28 events/0
    7 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cpuset
    8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper
    9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns
   10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr
   11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm
   12 root      20   0     0    0    0 S  0.0  0.0   0:00.62 sync_supers
   13 root      20   0     0    0    0 S  0.0  0.0   0:00.84 bdi-default
   14 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/0
   15 root      20   0     0    0    0 S  0.0  0.0   0:02.06 kblockd/0
   16 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kacpid
   17 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kacpi_notify
   18 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kacpi_hotplug
   19 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kseriod
   21 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kondemand/0
   22 root      20   0     0    0    0 S  0.0  0.0   0:00.14 khungtaskd
   23 root      20   0     0    0    0 S  0.0  0.0   0:00.74 kswapd0
   24 root      25   5     0    0    0 S  0.0  0.0   0:00.00 ksmd
   25 root      20   0     0    0    0 S  0.0  0.0   0:00.00 aio/0
   26 root      20   0     0    0    0 S  0.0  0.0   0:00.00 crypto/0
  119 root      20   0     0    0    0 S  0.0  0.0   0:00.12 ata/0
  120 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ata_aux
  185 root      20   0     0    0    0 S  0.0  0.0   0:00.04 scsi_eh_0
  186 root      20   0     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_1
  203 root      20   0     0    0    0 S  0.0  0.0   0:06.70 mpt_poll_0
  205 root      20   0     0    0    0 S  0.0  0.0   0:00.00 mpt/0
  206 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksuspend_usbd
  207 root      20   0     0    0    0 S  0.0  0.0   0:01.12 khubd
  308 root      20   0     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_2
  335 root      20   0     0    0    0 S  0.0  0.0   0:00.00 usbhid_resumer
  348 root      20   0     0    0    0 S  0.0  0.0   0:37.42 kjournald
  501 root      16  -4 16872  936  388 S  0.0  0.0   0:00.07 udevd
  634 root      20   0     0    0    0 S  0.0  0.0   0:25.64 flush-8:0
  645 root      18  -2 16868  836  316 S  0.0  0.0   0:00.04 udevd
  646 root      18  -2 16868  796  276 S  0.0  0.0   0:00.00 udevd
1行目(uptime

uptimeコマンドの出力と同じものが表示されます。

top - 20:59:34 up 5 days,  5:08,  2 users,  load average: 0.00, 0.00, 0.00
  • 20:59:34 up 5 days : 起動時間
  • 5:08 : 現在時刻
  • 2 users : 現在ログインしているユーザ
  • load average: 0.00, 0.00, 0.00 : ロードアベレージ
2行目(プロセス)

稼働中のプロセスの情報が表示されます。

Tasks:  86 total,   1 running,  85 sleeping,   0 stopped,   0 zombie
  • 86 total : プロセスの合計数
  • 1 running : 実行中のプロセス数
  • 85 sleeping : スリーブ中のプロセス数
  • 0 stopped : 停止中のプロセス数
  • 0 zombie : ゾンビプロセス数
3行目(CPU)

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
  • 0.0%us : ユーザのプロセスが使用している時間の割合
  • 0.0%sy : システムのプロセスが使用している時間の割合
  • 0.0%ni : nice値を変更したプロセスが使用している時間の割合
  • 100.0%id : アイドル状態の時間の割合
  • 0.0%wa : IOウェイトしている状態の時間の割合
  • 0.0%hi : ハードウェア割り込み要求で使用している時間の割合
  • 0.0%si : ソフトウェア割り込み要求で使用している時間の割合
  • 0.0%st : 仮想化時にゲストOSが割り当て要求を行ったにもかかわらず割り当ててもらえなかった時間の割合
4行目(メモリ)

メモリの使用状況に関する情報が表示されます。

Mem:   2057316k total,  1991060k used,    66256k free,    83612k buffers
  • 2057316k total : 合計メモリ量
  • 1991060k used : 使用しているメモリ量
  • 66256k free : 空きメモリ量
  • 83612k buffers : バッファとして使用しているメモリ量
5行目(スワップ

メモリスワップに関する情報が表示されます。

Swap:  1324024k total,        0k used,  1324024k free,  1749316k cached
6行目移行(稼働プロセス)
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      20   0  8356  844  716 S  0.0  0.0   0:07.31 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 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.50 ksoftirqd/0
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    6 root      20   0     0    0    0 S  0.0  0.0   0:09.34 events/0
    7 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cpuset
    8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper

現在稼働しているプロセスの一覧が表示されます。

よく使うオプション

サーバのモニタリングをする際には以下の並び替えもよく使います。

  1. Shift p : CPU使用率順にソート
  2. Shift m : メモリ使用率順にソート
  3. Shift o : 任意の列でソート