dstat---統計磁碟,CPU,IO,等相關資訊
阿新 • • 發佈:2018-11-29
dstat命令是一個用來替換vmstat、iostat、netstat、nfsstat和ifstat這些命令的工具,是一個全能系統資訊統計工具。與sysstat相比,dstat擁有一個彩色的介面,在手動觀察效能狀況時,資料比較顯眼容易觀察;而且dstat支援即時重新整理,譬如輸入dstat 3
即每三秒收集一次,但最新的資料都會每秒重新整理顯示。和sysstat相同的是,dstat也可以收集指定的效能資源,譬如dstat -c
即顯示CPU的使用情況。
使用說明
安裝完後就可以使用了,dstat非常強大,可以實時的監控cpu、磁碟、網路、IO、記憶體等使用情況。
直接使用dstat,預設使用的是-cdngy
dstat 5
是沒5s顯示一條,dstat 5 10
表示沒5s顯示一條,一共顯示10條。
[[email protected] ~]# dstat ----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 99 0 0 0|7706B 164k| 0 0 | 0 0 | 189 225 0 0 100 0 0 0| 0 0 |4436B 826B| 0 0 | 195 248 1 0 99 0 0 0| 0 0 |4744B 346B| 0 0 | 203 242 0 0 100 0 0 0| 0 0 |5080B 346B| 0 0 | 206 242 0 1 99 0 0 0| 0 0 |5458B 444B| 0 0 | 214 244 1 0 99 0 0 0| 0 0 |5080B 346B| 0 0 | 208 242
下面對顯示出來的部分資訊作一些說明:
- cpu:hiq、siq分別為硬中斷和軟中斷次數。
- system:int、csw分別為系統的中斷次數(interrupt)和上下文切換(context switch)。
常用選項
-c:顯示CPU系統佔用,使用者佔用,空閒,等待,中斷,軟體中斷等資訊。 -C:當有多個CPU時候,此引數可按需分別顯示cpu狀態,例:-C 0,1 是顯示cpu0和cpu1的資訊。 -d:顯示磁碟讀寫資料大小。 -D hda,total:include hda and total。 -n:顯示網路狀態。 -N eth1,total:有多塊網絡卡時,指定要顯示的網絡卡。 -l:顯示系統負載情況。 -m:顯示記憶體使用情況。 -g:顯示頁面使用情況。 -p:顯示程序狀態。 -s:顯示交換分割槽使用情況。 -S:類似D/N。 -r:I/O請求情況。 -y:系統狀態。 --ipc:顯示ipc訊息佇列,訊號等資訊。 --socket:用來顯示tcp udp埠狀態。 -a:此為預設選項,等同於-cdngy。 -v:等同於 -pmgdsc -D total。 --output 檔案:此選項也比較有用,可以把狀態資訊以csv的格式重定向到指定的檔案中,以便日後檢視。例:dstat --output /root/dstat.csv & 此時讓程式默默的在後臺執行並把結果輸出到/root/dstat.csv檔案中。
當然dstat還有很多更高階的用法,常用的基本這些選項,更高階的用法可以結合man文件。
例項
如想監控swap,process,sockets,filesystem並顯示監控的時間:
[[email protected] ~]# dstat -tsp --socket --fs ----system---- ----swap--- ---procs--- ------sockets------ --filesystem- date/time | used free|run blk new|tot tcp udp raw frg|files inodes 26-07 09:23:48| 0 0 | 0 0 0.0|104 8 5 0 0| 704 6488 26-07 09:23:49| 0 0 | 0 0 0|104 8 5 0 0| 704 6488 26-07 09:23:50| 0 0 | 0 0 0|104 8 5 0 0| 704 6489 26-07 09:23:51| 0 0 | 0 0 0|104 8 5 0 0| 704 6489 26-07 09:23:52| 0 0 | 0 0 0|104 8 5 0 0| 704 6489 26-07 09:23:53| 0 0 | 0 0 0|104 8 5 0 0| 704 6489
若要將結果輸出到檔案可以加--output filename
:
[[email protected] ~]# dstat -tsp --socket --fs --output /tmp/ds.csv ----system---- ----swap--- ---procs--- ------sockets------ --filesystem- date/time | used free|run blk new|tot tcp udp raw frg|files inodes 26-07 09:25:31| 0 0 | 0 0 0.0|104 8 5 0 0| 736 6493 26-07 09:25:32| 0 0 | 0 0 0|104 8 5 0 0| 736 6493 26-07 09:25:33| 0 0 | 0 0 0|104 8 5 0 0| 736 6493 26-07 09:25:34| 0 0 | 0 0 0|104 8 5 0 0| 736 6493 26-07 09:25:35| 0 0 | 0 0 0|104 8 5 0 0| 736 6494 26-07 09:25:36| 0 0 | 0 0 0|104 8 5 0 0| 736 6494
這樣生成的csv檔案可以用excel開啟,然後生成圖表。
通過dstat --list
可以檢視dstat能使用的所有引數,其中上面internal是dstat本身自帶的一些監控引數,下面/usr/share/dstat
中是dstat的外掛,這些外掛可以擴充套件dstat的功能,如可以監控電源(battery)、mysql等。
下面這些外掛並不是都可以直接使用的,有的還依賴其他包,如想監控mysql,必須要裝python連線mysql的一些包。
[[email protected] ~]# 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命令的基本用法就說到這裡,更多用法有待摸索,如果您需要補充內容請給我們發郵件,謝謝!