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






