鱒身(Masu_mi)のブログ

知った事をメモする場所。

勝手のいいdstatコマンドオプション

dstat のコマンドオプションが多くて便利なので定番の組み合わせを整理してまとめた。

使えるオプションの確認

以下のコマンドでdstat について調べられる。これによると機能拡張は/usr/share/dstat/ にモジュールを置けば良さそう。 ミドルウェア作ったらdstat 用のpluginを提供するの良さそう。

# ヘルプを表示する
$ dstat -h
# 使えるモジュールを一覧表示する
$ dstat --list
internal:
        aio, cpu, cpu24, disk, disk24, disk24old, epoch, fs, int, int24, io, ipc, load, lock, mem, net, page, page24, proc, raw, socket, swap, swapold, sys, tcp, time, udp, unix, vm
/usr/share/dstat:
        battery, battery-remain, cpufreq, dbus, disk-util, fan, freespace, gpfs, gpfs-ops, helloworld, innodb-buffer, innodb-io, innodb-ops, lustre, memcache-hits, mysql-io, mysql-keys,
        mysql5-cmds, mysql5-conn, mysql5-io, mysql5-keys, net-packets, nfs3, nfs3-ops, nfsd3, nfsd3-ops, ntp, postfix, power, proc-count, rpc, rpcd, sendmail, snooze, thermal, top-bio,
        top-cpu, top-cputime, top-cputime-avg, top-io, top-latency, top-latency-avg, top-mem, top-oom, utmp, vm-memctl, vmk-hba, vmk-int, vmk-nic, vz-cpu, vz-io, vz-ubc, wifi

基本的な確認

これで基本的な負荷を確認する。ロードアベレージが伸びていたら注意が必要。 使えているコア数より大きくならない様に考える。実際のコア数ではなくて、稼働システムのコア利用の偏りも考慮する必要がある。

$ dstat -tal
../../../_images/20150228-dstat_tal.png

dstat で基本情報を表示する

CPU状態を確認する

CPUの分散具合を確認する。systemの部分は割り込み・コンテキストスイッチの切り替えなどを表示してる。

$ dstat -taf --top-cpu
../../../_images/20150228-dstat_taf_top-cpu.png

dstat でCPU情報を表示する

I/O状況を確認する

どのプロセスがI/O, ブロックI/Oを使っているか確認したり、開かれてるファイル数を確認したり、またファイルロックの取得状態を確認したりする。

$ dstat -tdng --file --lock --top-io --top-bio
../../../_images/20150228-dstat_tdng_file.png

dstat でI/O情報を取得する

メモリの状況を確認する

メモリの使用状況を確認する、ページング・スワップ領域・メモリ・仮想メモリ・IPC・一番メモリを使っているプロセスを表示している。

$ dstat -t -gs --mem --vm --ipc --top-mem
../../../_images/20150228-dstat_tgs_mem.png

dstat でメモリ情報を取得する

ネットワーク状況を確認する

ソケットの利用状況を表示する。

$ dstat -tn --socket --tcp --udp --unix
../../../_images/20150228-dstat_tn_socket.png

dstat でソケットの情報を取得する

ロックにまつわる統計の表示

ファイルロックとかページフォルトとか割り込み量とかIPCとか詰まりそうな基本的なの一通り出してみる。

$ dstat -tspy --lock --vm --ipc --free
../../../_images/20150228-dstat-tspy.png

dstat でロック周辺の情報を取得する