linux網絡命令(九)之dstat

一、dstat使用

1、簡介

        dstat 是一個可以取代vmstat,iostat,netstat和ifstat這些命令的多功能產品。dstat克服了這些命令的侷限並增加了一些另外的功能,增加了監控項,也變得更靈活了。dstat可以很方便監控系統運行狀況並用於基準測試和排除故障。

        dstat可以讓你實時地看到所有系統資源,例如,你能夠通過統計IDE控制器當前狀態來比較磁盤利用率,或者直接通過網絡帶寬數值來比較磁盤的吞吐率(在相同的時間間隔內)。 

        dstat將以列表的形式爲你提供選項信息並清晰地告訴你是在何種幅度和單位顯示輸出。這樣更好地避免了信息混亂和誤報。更重要的是,它可以讓你更容易編寫插件來收集你想要的數據信息,以從未有過的方式進行擴展。 

        Dstat的默認輸出是專門爲人們實時查看而設計的,不過你也可以將詳細信息通過CSV輸出到一個文件,並導入到Gnumeric或者Excel生成表格中。


2、特性

  • 結合了vmstat,iostat,ifstat,netstat以及更多的信息 

  • 實時顯示統計情況 

  • 在分析和排障時可以通過啓用監控項並排序 

  • 模塊化設計 

  • 使用python編寫的,更方便擴展現有的工作任務 

  • 容易擴展和添加你的計數器(請爲此做出貢獻) 

  • 包含的許多擴展插件充分說明了增加新的監控項目是很方便的 

  • 可以分組統計塊設備/網絡設備,並給出總數 

  • 可以顯示每臺設備的當前狀態 

  • 極準確的時間精度,即便是系統負荷較高也不會延遲顯示 

  • 顯示準確地單位和和限制轉換誤差範圍 

  • 用不同的顏色顯示不同的單位 

  • 顯示中間結果延時小於1秒 

  • 支持輸出CSV格式報表,並能導入到Gnumeric和Excel以生成圖形


3、安裝使用

[[email protected] ~]# yum install -y dstat

dstat的基本用法就是輸入dstat命令,輸出如下:

wKiom1am5ljS5EaeAAAjfd60rAc162.png

這是默認輸出顯示的信息:

  • CPU狀態:CPU的使用率。這項報告更有趣的部分是顯示了用戶,系統和空閒部分,這更好地分析了CPU當前的使用狀況。如果你看到"wait"一欄中,CPU的狀態是一個高使用率值,那說明系統存在一些其它問題。當CPU的狀態處在"waits"時,那是因爲它正在等待I/O設備(例如內存,磁盤或者網絡)的響應而且還沒有收到。 hiq、siq分別爲硬中斷和軟中斷次數。

  • 磁盤統計:磁盤的讀寫操作,這一欄顯示磁盤的讀、寫總數。 

  • 網絡統計:網絡設備發送和接受的數據,這一欄顯示的網絡收、發數據總數。 

  • 分頁統計:系統的分頁活動。分頁指的是一種內存管理技術用於查找系統場景,一個較大的分頁表明系統正在使用大量的交換空間,或者說內存非常分散,大多數情況下你都希望看到page in(換入)和page out(換出)的值是0 0。 

  • 系統統計:這一項顯示的是中斷(int)和上下文切換(csw)。這項統計僅在有比較基線時纔有意義。這一欄中較高的統計值通常表示大量的進程造成擁塞,需要對CPU進行關注。你的服務器一般情況下都會運行運行一些程序,所以這項總是顯示一些數值。

默認情況下,dstat每秒都會刷新數據。如果想退出dstat,你可以按"CTRL-C"鍵。 


        需要注意的是報告的第一行,通常這裏所有的統計都不顯示數值的。 這是由於dstat會通過上一次的報告來給出一個總結,所以第一次運行時是沒有平均值和總值的相關數據。 

        但是dstat可以通過傳遞2個參數運行來控制報告間隔和報告數量。例如,如果你想要dstat輸出默認監控、報表輸出的時間間隔爲2秒鐘,並且報表中輸出3個結果,你可以運行如下命令:

wKioL1am5r3TfcGcAAAg4we5SmM267.png


4、常用參數

  • -l :顯示負載統計量 

  • -m :顯示內存使用率(包括used,buffer,cache,free值) 

  • -r :顯示I/O統計 

  • -s :顯示交換分區使用情況 

  • -t :將當前時間顯示在第一行 

  • –fs :顯示文件系統統計數據(包括文件總數量和inodes值) 

  • –nocolor :不顯示顏色(有時候有用) 

  • --socket :顯示網絡統計數據 

  • --tcp :顯示常用的TCP統計 

  • --udp :顯示監聽的UDP接口及其當前用量的一些動態數據

  • -c:顯示CPU系統佔用,用戶佔用,空閒,等待,中斷,軟件中斷等信息。 

  • -C:當有多個CPU時候,此參數可按需分別顯示cpu狀態,例:-C 0,1 是顯示cpu0和cpu1的信息。 

  • -d:顯示磁盤讀寫數據大小。

  • -D hda,total:include hda and total。 

  • -n:顯示網絡狀態。 

  • -N eth1,total:有多塊網卡時,指定要顯示的網卡。  

  • -g:顯示頁面使用情況。 

  • -p:顯示進程狀態。

  • -S:類似D/N。

  • -y:系統狀態。

  •  --ipc:顯示ipc消息隊列,信號等信息。 

  • -a:此爲默認選項,等同於-cdngy。 

  • -v:等同於 -pmgdsc -D total。

  •  --output 文件:此選項也比較有用,可以把狀態信息以csv的格式重定向到指定的文件中,以便日後查看。例:dstat --output /root/dstat.csv & 此時讓程序默默的在後臺運行並把結果輸出到/root/dstat.csv文件中。

dstat附帶了一些插件很大程度地擴展了它的功能。你可以通過查看/usr/share/dstat目錄來查看它們的一些使用方法,常用的有這些:

  • -–disk-util :顯示某一時間磁盤的忙碌狀況 

  • -–freespace :顯示當前磁盤空間使用率 

  • -–proc-count :顯示正在運行的程序數量 

  • -–top-bio :指出塊I/O最大的進程 

  • -–top-cpu :圖形化顯示CPU佔用最大的進程 

  • -–top-io :顯示正常I/O最大的進程 

  • -–top-mem :顯示佔用最多內存的進程


5、舉例

查看全部內存都有誰在佔用:

# dstat -g -l -m -s --top-mem

wKiom1am5pXxzuBwAAAhS90jgGo189.png

顯示一些關於CPU資源損耗的數據:

# dstat -c -y -l --proc-count --top-cpu

wKioL1am5vPwJb5UAAAgcLacsyo970.png

想輸出一個csv格式的文件用於以後,可以通過下面的命令:

# dstat –output /tmp/sampleoutput.csv -cdn


監控swap,process,sockets,filesystem並顯示監控的時間:

# dstat -tsp --socket --fs

wKiom1am5sfBez00AAA2I0AHhaw805.png

下面這些插件並不是都可以直接使用的,有的還依賴其他包,如想監控mysql,必須要裝python連接mysql的一些包。

wKiom1am5t3R9LXLAABBbi3LHP0807.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章