dstat 是一個可以取代vmstat,iostat,netstat和ifstat這些命令的多功能產品。dstat克服了這些命令的局限並增加了一些另外的功能,增加了監控項,也變得更靈活了。dstat可以很方便監控系統運行狀況並用於基準測試和排除故障。
安裝方法
Ubuntu/Mint和Debin系統
sudo apt-get install dstat
RHEL/Centos和Fedora系統:
yum install dstat
ArchLinux系統
pacman -S dstat
使用方法
dstat的基本用法就是輸入dstat命令,輸出如下:
- cpu:當 usr 和 sys 加起來超過 80 代表你的 CPU 很忙碌,若是 wai 數值升高,代表 CPU 一直在等待,可能你的 disk I/O 不足或是出了問題。
- dsk:硬碟的讀寫資料量/速度
- net:網路的收/發狀況
- paging:這個代表 swap,通常是 0,若產生數值則代表你的記憶體可能不足,必須採用 swap 來進行交換
- system:int 代表中斷次數,csw 代表 context switch,這項數值越高則代表整體系統 work 大量且緩慢。
顯示 Load average:dstat -l
[root@fileserver ~]# dstat -l ---load-avg--- 1m 5m 15m 0.03 0.02 0.05
顯示記憶體使用率:dstat -m
[root@fileserver ~]# dstat -m ------memory-usage----- used buff cach free 139M 26.8M 180M 647M
顯示 I/O:dstat -r
[root@fileserver ~]# dstat -r --io/total- read writ 0.17 0.20 0 7.00
顯示網路統計 socket:dstat –socket
[root@fileserver ~]# dstat -tcp ----system---- ----total-cpu-usage---- ---procs--- date/time |usr sys idl wai hiq siq|run blk new 08-02 02:54:09| 0 0 100 0 0 0| 0 0 0.0
更有效的系統分析參數
- dstat --proc-count 統計所有工作程式數量
- dstat --top-bio 指出目前 I/O 讀寫最大的程式
- dstat --top-cpu 指出目前 CPU 佔用最大的程式
- dstat --top-mem 指出目前 mem 佔用最多的程式
輸出 CSV
[root@fileserver ~]# dstat --output /tmp/dstat_test.csv ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- usr sys idl wai hiq siq| read writ| recv send| in out | int csw 0 0 100 0 0 0|4435B 1465B| 0 0 | 0 0 | 18 41
查看全部記憶體都有誰在佔用
[root@fileserver ~]# dstat -g -l -m -s --top-mem ---paging-- ---load-avg--- ------memory-usage----- ----swap--- --most-expensive- in out | 1m 5m 15m | used buff cach free| used free| memory process 0 0 | 0 0.01 0.05| 139M 26.8M 180M 646M| 0 2016M|mysqld 88.0M
顯示一些關於CPU資源損耗的資料
[root@fileserver ~]# dstat -c -y -l --proc-count --top-cpu ----total-cpu-usage---- ---system-- ---load-avg--- proc -most-expensive- usr sys idl wai hiq siq| int csw | 1m 5m 15m |tota| cpu process 0 0 100 0 0 0| 18 41 | 0 0.01 0.05| 74|mysqld 0.2