dstat 是一個能夠取代vmstat,iostat,netstat和ifstat這些命令的多功能產品。dstat克服了這些命令的侷限並增長了一些另外的功能,增長了監控項,也變得更靈活了。dstat能夠很方便監控系統運行情況並用於基準測試和排除故障。python
dstat可讓你實時地看到全部系統資源,例如,你可以經過統計IDE控制器當前狀態來比較磁盤利用率,或者直接經過網絡帶寬數值來比較磁盤的吞吐率(在相同的時間間隔內)。ios
dstat將以列表的形式爲你提供選項信息並清晰地告訴你是在何種幅度和單位顯示輸出。這樣更好地避免了信息混亂和誤報。更重要的是,它可讓你更容易編寫插件來收集你想要的數據信息,以從未有過的方式進行擴展。服務器
Dstat的默認輸出是專門爲人們實時查看而設計的,不過你也能夠將詳細信息經過CSV輸出到一個文件,並導入到Gnumeric或者Excel生成表格中。網絡
特性socket
結合了vmstat,iostat,ifstat,netstat以及更多的信息tcp
實時顯示統計狀況ide
在分析和排障時能夠經過啓用監控項並排序模塊化
模塊化設計測試
使用python編寫的,更方便擴展示有的工做任務spa
容易擴展和添加你的計數器(請爲此作出貢獻)
包含的許多擴展插件充分說明了增長新的監控項目是很方便的
能夠分組統計塊設備/網絡設備,並給出總數
能夠顯示每臺設備的當前狀態
極準確的時間精度,即使是系統負荷較高也不會延遲顯示
顯示準確地單位和和限制轉換偏差範圍
用不一樣的顏色顯示不一樣的單位
顯示中間結果延時小於1秒
支持輸出CSV格式報表,並能導入到Gnumeric和Excel以生成圖形
安裝方法
# yum install -y dstat
使用方法
dstat的基本用法就是輸入dstat命令,輸出以下:
[root@test2 ~]# dstat
You did not select any stats, using -cdngy by default.
----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| 465B 1103B| 0 0 | 0 0 | 53 50
0 0 100 0 0 0| 0 0 | 423B 870B| 0 0 | 68 49
0 0 100 0 0 0| 0 0 | 277B 390B| 0 0 | 74 61
0 0 100 0 0 0| 0 0 | 303B 390B| 0 0 | 83 62
0 1 99 0 0 0| 0 3388k| 270B 390B| 0 0 | 185 103
0 0 100 0 0 0| 0 0 | 303B 390B| 0 0 | 104 91
0 0 100 0 0 0| 0 0 | 266B 390B| 0 0 | 107 100
0 0 100 0 0 0| 0 0 | 303B 390B| 0 0 | 107 100
0 0 100 0 0 0| 0 0 | 120B 390B| 0 0 | 87 83
0 0 100 0 0 0| 0 0 | 303B 390B| 0 0 | 105 94
0 0 100 0 0 0| 0 0 | 180B 390B| 0 0 | 94 89
0 0 100 0 0 0| 0 0 | 303B 390B| 0 0 | 100 89
這是默認輸出顯示的信息:
CPU狀態: CPU的使用率。這項報告更有趣的部分是顯示了用戶,系統和空閒部分,這更好地分析了CPU當前的使用情況。若是你看到"wait"一欄中,CPU的狀態是一個高使用率值,那說明系統存在一些其它問題。當CPU的狀態處在"waits"時,那是由於它正在等待I/O設備(例如內存,磁盤或者網絡)的響應並且尚未收到。
磁盤統計:磁盤的讀寫操做,這一欄顯示磁盤的讀、寫總數。
網絡統計:網絡設備發送和接受的數據,這一欄顯示的網絡收、發數據總數。
分頁統計:系統的分頁活動。分頁指的是一種內存管理技術用於查找系統場景,一個較大的分頁代表系統正在使用大量的交換空間,或者說內存很是分散,大多數狀況下你都但願看到page in(換入)和page out(換出)的值是0 0。
系通通計:這一項顯示的是中斷(int)和上下文切換(csw)。這項統計僅在有比較基線時纔有意義。這一欄中較高的統計值一般表示大量的進程形成擁塞,須要對CPU進行關注。你的服務器通常狀況下都會運行運行一些程序,因此這項老是顯示一些數值。
默認狀況下,dstat每秒都會刷新數據。若是想退出dstat,你能夠按"CTRL-C"鍵。
須要注意的是報告的第一行,一般這裏全部的統計都不顯示數值的。
這是因爲dstat會經過上一次的報告來給出一個總結,因此第一次運行時是沒有平均值和總值的相關數據。
可是dstat能夠經過傳遞2個參數運行來控制報告間隔和報告數量。例如,若是你想要dstat輸出默認監控、報表輸出的時間間隔爲3秒鐘,而且報表中輸出10個結果,你能夠運行以下命令:
dstat 3 10
在dstat命令中有不少參數可選,你能夠經過man dstat命令查看,大多數經常使用的參數有這些:
dstat [-afv] [options..] [delay [count]]
-a, --all:使用-cdngy 缺省的就是這樣顯示
-f, --full:使用 -C, -D, -I, -N and -S 顯示
-v, --vmstat:使用-pmgdsc -D 顯示
-c:顯示CPU系統佔用,用戶佔用,空閒,等待,中斷,軟件中斷等信息。
-C 0,3 : 是顯示cpu0和cpu3的信息。
-d:顯示磁盤讀寫數據大小。
-D hda,total:include hda and total。
-n:顯示網絡狀態。
-N eth1,total:有多塊網卡時,指定要顯示的網卡。
-l:顯示系統負載狀況。
-m:顯示內存使用狀況。
-g:顯示頁面使用狀況。
-p:顯示進程狀態。
-s:顯示交換分區使用狀況。
-S:相似D/N。
-r:I/O請求狀況。
-t:輸出當前日期和時間。
-T:輸出當前時間戳。
-y:系統狀態。
--aio enable aio stats
--fs, --filesystem enable fs stats
--ipc enable ipc stats
--lock enable lock stats
--raw enable raw stats
--socket enable socket stats
--tcp enable tcp stats
--udp enable udp stats
--unix enable unix stats
--vm enable vm stats
-–disk-util :顯示某一時間磁盤的忙碌情況。
-–freespace :顯示當前磁盤空間使用率。
-–proc-count :顯示正在運行的程序數量。
-–top-bio :指出塊I/O最大的進程。
-–top-cpu :圖形化顯示CPU佔用最大的進程。
-–top-io :顯示正常I/O最大的進程。
-–top-mem :顯示佔用最多內存的進程。
--ipc:顯示ipc消息隊列,信號等信息。
--socket:用來顯示tcp udp端口狀態。
--output 文件:此選項也比較有用,能夠把狀態信息以csv的格式重定向到指定的文件中,以便往後查看。例:dstat --output /root/dstat.csv & 此時讓程序默默的在後臺運行並把結果輸出到/root/dstat.csv文件中。