对于dstat的有用选项进行总结
因为dstat有很多有用的选项,所以大家都应该制作自己的个性化dstat。
适合那些懒得读到最后的人。
好像有点沉重了
$ sudo dstat -ta --top-cpu
当IO插口好像卡住了。
$ sudo dstat -ta --top-io-adv --top-bio-adv
暂且想要全部看一遍。
$ sudo dstat -af
我喜欢用vmstat。
$ dstat -v
我想要更多详细的了解。
$ man dstat
经常使用的选项
我列出了一些基本选项。当需要多个选项时,可以使用类似dstat -tcdn的命令指定。也可以使用长选项,像是dstat –time –cpu –disk,但因为太长,所以我从未使用过。
-cdngy
と等価でオプションをつけないと勝手にこれになる。-t時間を表示する。どのタイミングかわからなくなることがあるのでいつもつけている。-Tepoch timeを表示する
epoch timeで出ているログと併せてみたいときとかに便利。-cCPU使用率を表示する
基本。-dDisk IOを表示する
基本。-gページIN/OUTを表示する
-sと併せてつかったりする。-i割り込みを表示する
あまり使ったことないけど、特定番号の割り込みを監視したいときには便利かな。-lロードアベレージを表示する
ロードの数値だけで負荷を評価することがあまりないので使わない。-mメモリの使用量を表示する
すごい勢いでfreeが減っていくときにとか。-nネットワークIOを表示する
基本。単位はB/s。-pプロセス数を表示する
forkしてプロセスが増減するときに監視するときとかに使えるかも。-sスワップのused/freeを表示する
swapが特定タイミングで増えてしまうときとかに使う。-y割り込み回数とコンテキストスイッチの回数を表示する
あまり使ったことない……
按照CPU核心、硬盘和网络接口分别查看
在最近的Web服务器中,(虚拟机通常是这样的)单核CPU反而很少见,硬盘驱动器可能同时包括HDD和SSD,还会有eth0和eth1这样的网卡,通常会经常查看每个核心以及每个接口的状态和统计信息。
在这种情况下,可以使用-C、-D、-I、-N等选项。这些选项分别对应于-c、-d、-i、-n选项,并用逗号分隔进行指定。此外,可以使用total来查看总值。
举例来说,当我们想要在一台拥有4个核心的机器上分别查看每个CPU核心时,可以按照以下方式进行。
$ dstat -c -C 0,1,2,3,total # CPUコア0,1,2,3と合計を表示
eth1だけを見たい時とかは次のようになる。
$ dstat -n -N eth1 # eth1のstatだけを表示
当接口有多个时,指定全部接口很麻烦。但是,当想要查看总值时,-f选项很方便。不过,由于不能看到总值,所以想要查看总值时需要逐个指定。
$ dstat -af # とりあえず全部みたい
ログをファイルに保存する
要保存dstat日志,使用–output选项。这将以CSV格式保存每个值。
$ dstat --output dstat.csv
保存されるログは次のような書式だ。
$ cat dstat.csv
"Dstat 0.7.2 CSV output"
"Author:","Dag Wieers <dag@wieers.com>",,,,"URL:","http://dag.wieers.com/home-made/dstat/"
"Host:","debian7",,,,"User:","harukasan"
"Cmdline:","dstat --output dstat.csv",,,,"Date:","31 Oct 2013 15:18:21 JST"
"total cpu usage",,,,,,"dsk/total",,"net/total",,"paging",,"system",
"usr","sys","idl","wai","hiq","siq","read","writ","recv","send","in","out","int","csw"
2.291,0.227,97.373,0.004,0.001,0.105,37.173,12668.059,0.0,0.0,0.0,0.0,505.675,275.612
0.500,0.0,99.500,0.0,0.0,0.0,0.0,69632.0,134756.0,71311.0,0.0,0.0,228.0,218.0
1.250,0.250,98.500,0.0,0.0,0.0,0.0,0.0,243280.0,99172.0,0.0,0.0,204.0,156.0
0.750,0.0,98.750,0.0,0.0,0.500,0.0,0.0,793178.0,47389.0,0.0,0.0,365.0,148.0
3.250,0.0,96.500,0.0,0.0,0.250,0.0,0.0,2018204.0,36349.0,0.0,0.0,784.0,300.0
利用方便的插件
dstatはプラグインを組み込むことができ、標準でもいくつかプラグインが入っている(と思う)。これらを使うと様々な情報をdstatにまとめて表示できる。dstatはPythonで書かれているので、Pythonで簡単にプラグインを書くこともできる。
CPU負荷の原因を探る
ロードがすごく上がってるサーバとかでuserがCPU使いまくってる場合にtopでCPU使ってるプロセスを見たりするが、それをdstatでできるのが–top-cpuである。このプラグインでは、最もCPUを使ってるプロセス名とその値を表示してくれる。
$ sudo dstat -ta --top-cpu
Apache等同じプロセス名のプロセスが複数ある時はPIDも知りたい。そのようなときは–top-cpu-advが便利だ。–top-cpu-advはPIDに加えてread、writeの値も表示する。
$ sudo dstat -ta --top-cpu-adv
探究IO的原因
当需要详细查看类似IO卡住的服务器时,–top-io、–top-bio非常方便。
$ sudo dstat -ta --top-io --top-bio
–top-ioは最もIOが多いプロセスを表示し、–top-bioは最もブロックIOが多いプロセスを表示する。また、一般ユーザでは他ユーザのプロセスなどを取得できないので、sudoをつけて実行するとよい。もちろんPIDを知りたい時は–top-cpu-advと同じように–top-io-adv、–top-bio-advもある。
$ sudo dstat -ta --top-io-adv --top-bio-adv
查询有哪些插件
どのようなプラグインが使えるかしりたい場合は、dstat -Vを使う。Debian7.1では次のようになった。
harukasan@debian7:~$ dstat -V
Dstat 0.7.2
Written by Dag Wieers <dag@wieers.com>
Homepage at http://dag.wieers.com/home-made/dstat/
Platform posix/linux2
Kernel 3.2.0-4-amd64
Python 2.7.3 (default, Jan 2 2013, 13:56:14)
[GCC 4.7.2]
Terminal type: screen (color support)
Terminal size: 43 lines, 224 columns
Processors: 4
Pagesize: 4096
Clock ticks per secs: 100
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-tps, disk-util, dstat, dstat-cpu, dstat-ctxt, dstat-mem, fan, freespace, gpfs, gpfs-ops, helloworld, innodb-buffer, innodb-io, innodb-ops, lustre, memcache-hits,
mysql-io, mysql-keys, mysql5-cmds, mysql5-io, mysql5-keys, net-packets, nfs3, nfs3-ops, nfsd3, nfsd3-ops, ntp, postfix, power, proc-count, qmail, rpc, rpcd, sendmail, snooze, squid, test, thermal, top-bio,
top-bio-adv, top-childwait, top-cpu, top-cpu-adv, top-cputime, top-cputime-avg, top-int, top-io, top-io-adv, 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
このようなかんじで/usr/share/dstatにあるプラグインが表示された。使ったことないプラグインでも便利そうなやつが結構あるのでいつか試してみたい。
dstat非常实用。
大家都来使用dstat,它非常方便,就像这样。