dstat が便利

October 24th, 2009 by naoya | Filed under day.

dstat という vmstat, iostat, netstat, nfsstat, ifstat 用の置き換えとして使える多機能ツールがあることを知ったので、CentOS でさっそく試してみました。

まず、インストール方法ですが、公式に dstat パッケージが提供されているので yum 一発でインストールすることができます。

$ sudo yum install dstat

/usr/bin/dstat にインストールされます。

dsat は多機能ツールですが、使い方は dstat –help するとたくさん表示されます。

まず、オプションを指定しないで実行してみます。

$ /usr/bin/dstat
—-total-cpu-usage—- -dsk/total- -net/total- —paging– —system–
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
2   0  96   1   0   0|  58k  441k|   0     0 | 188B  176B| 206  1473
0   0 100   0   0   0|   0     0 |3780B  974B|   0     0 |1068  2916
0   0 100   0   0   0|   0     0 |8356B 2943B|   0     0 |1070  2865

CPU、ハードディスク、ネットワーク、ページング、システム、それぞれの状態が1秒ごとにまとめてカラー表示されます。これは、なかなか分かりやすい表示です。

次に、CPU の使用率のみを表示してみます。

$ /usr/bin/dstat –cpu

—-total-cpu-usage—-
usr sys idl wai hiq siq
2   0  96   1   0   0
3   0  96   0   0   0
1   0  99   0   0   0

また、CPU の特定のコアを指定することもできます。-C オプションになるので注意してください。

$ /usr/bin/dstat -C 0,2,total
Terminal width too small, trimming output.
——-cpu0-usage————–cpu2-usage———–total-cpu-usage—->
usr sys idl wai hiq siq:usr sys idl wai hiq siq:usr sys idl wai hiq siq>
2   0  98   0   0   0:  3   0  91   5   0   0:  2   0  96   1   0   0>
2   0  98   0   0   0:  0   0 100   0   0   0:  1   0  99   0   0   0>
10   0  90   0   0   0:  3   0  97   0   0   0:  3   1  96   0   0   0

-C オプションを使うと特定のコアに偏っていないかチェックすることができます。

次に、ハードディスクの状態を表示してみます。

$ /usr/bin/dstat –disk
-dsk/total-
read  writ
58k  441k
0     0
0   700k

ディスクへの読み書きの割合が表示されます。さらに特定のハードディスクの使用状態もみることができます。

$ /usr/bin/dstat -D total,sda
—-total-cpu-usage—- –dsk/sda– -net/total- —paging– —system–
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
2   0  96   1   0   0|  58k  441k|   0     0 | 188B  176B| 206  1473
6   1  85   9   0   1|   0  1980k|  58k   28k|   0     0 |1871  3351
5   0  70  24   0   0|   0  4868k|  49k   19k|   0     0 |2356  3511

通常の表示に加えて、各ハードディスクごとの状態を表示することができます。

次にロードアベレージを表示してみます。

$ /usr/bin/dstat –load

—load-avg—
1m   5m  15m
0.1  0.1  0.1
0.1  0.1  0.1
0.1  0.1  0.1

その他にもさまざまなリソースの状態を表示することができます。

ヘルプを翻訳すると、次のようになります。

使い方: dstat [-afv] [options..] [delay [count]]

-c, --cpu          CPU 状態表示を有効にします
  -C 0,3,total       CPU0 と CPU3 と合計を含めます
-d, --disk         ディスクの状態表示を有効にします
  -D total,hda       /dev/hda と合計を含めます
-g, --page         ページの状態表示を有効にします
-i, --int          割り込みの状態表示を有効にします
  -I 5,eth2          int5 と eht2 によって使われている割り込みを含めます
-l, --load         ロードアベレージの状態表示を有効にします
-m, --mem          メモリの状態表示を有効にします
-n, --net          ネットワークの状態表示を有効にします
-N eth1,total      eth1 と合計を含めます
-p, --proc         プロセスの状態表示を有効にします
-s, --swap         スワップの状態表示を有効にします
-t, --time         日時のカウント表示を有効にします
-y, --sys          システムの状態表示を有効にします
--ipc              IPC(Inter-Process Communication、プロセス間通信)の状態表示を有効にします
--lock             (ファイル)ロックの状態表示を有効にします
--raw              raw の状態表示を有効にします
--tcp              TCP の状態表示を有効にします
--udp              UDP の状態表示を有効にします
--unix             UNIX の状態表示を有効にします

-M stat1,stat2     外部ステータスの表示を有効にします
   --mods stat1,stat2

-a, --all          -cdngy と同じです(デフォルト)
-f, --full         -D, -I と -N のリストを拡張します
-v, --vmstat       -pmgdsc -D total と同じです

--integer          整数値を表示します
--nocolor          カラー表示を無効にします
--noheaders        ヘッダー表示を無効にします
--noupdate         仲介更新を無効にします
--output file      出力結果を CSV ファイルに書き出します

delay は更新間隔の秒数です
count は終了するまでに表示する回数です
デフォルトの delay は 1 秒で、count は無制限です

dstat を使えば、かなり分かりやすくシステムリソースの使用状況が分かるツールなので、かなり重宝する定番のツールになりそうです。

Leave a Reply