# dstat
系統監控工具
dstat顯示了cpu使用狀況,磁盤io狀況,網絡發包狀況和換頁狀況,輸出是彩色的,可讀性較強,相對於vmstat和iostat的輸入更加詳細且較爲直觀。在使用時,直接輸入命令便可,固然也能夠使用特定參數。
# dstat
(默認使用的是-cdngy參數,分別顯示cpu、disk、net、page、system信息,默認是每1s顯示一條信息。能夠在最後指定顯示一條信息的時間間隔,如dstat 5是每5s顯示一條,dstat 5 10表示每5s顯示一條,一共顯示10條。)
----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
說明:
cpu:
顯示了用戶,系統和空閒部分;
hiq、siq分別爲硬中斷和軟中斷次數。
dsk:
顯示磁盤的讀、寫總數。
net:網絡統計:網絡設備發送和接受的數據,這一欄顯示的網絡收、發數據總數。
paging:系統的分頁活動。分頁指的是一種內存管理技術用於查找系統場景,一個較大的分頁代表系統正在使用大量的交換空間,或者說內存很是分散,大多數狀況下你都但願看到page in(換入)和page out(換出)的值是0 0。
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文件中。
如想監控swap,process,sockets,filesystem並顯示監控的時間:
# 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
若要將結果輸出到文件能夠加--output filename:
# dstat -tsp --socket --fs --output /tmp/ds.csv
/usr/share/dstat目錄:
- -–disk-util :顯示某一時間磁盤的忙碌情況
- -–freespace :顯示當前磁盤空間使用率
- -–proc-count :顯示正在運行的程序數量
- -–top-bio :指出塊I/O最大的進程
- -–top-cpu :圖形化顯示CPU佔用最大的進程
- -–top-io :顯示正常I/O最大的進程
- -–top-mem :顯示佔用最多內存的進程
查看所有內存都有誰在佔用:
# dstat -g -l -m -s --top-mem