一天一個 Linux 命令(39):dstat 命令
本文為joshua317原創文章,轉載請註明:轉載自joshua317部落格https://www.joshua317.com/article/194
一、簡介
Linux下的dstat是一個全能系統資訊統計工具的命令,用來替換vmstat、iostat、netstat、nfsstat和ifstat這些命令。dstat克服了這些命令的侷限並增加了一些另外的功能,增加了監控項,也變得更靈活了。dstat可以很方便監控系統執行狀況並用於基準測試和排除故障。
dstat將以列表的形式提供選項資訊並清晰地告訴你是在何種幅度和單位顯示輸出。這樣更好地避免了資訊混亂和誤報。更重要的是,它可以更容易編寫外掛來收集你想要的資料資訊,以從未有過的方式進行擴充套件。
dstat支援即時重新整理,譬如輸入dstat 3
即每三秒收集一次,但最新的資料都會每秒重新整理顯示。和sysstat相同的是,dstat也可以收集指定的效能資源,譬如dstat -c
即顯示CPU的使用情況。
如果系統沒有安裝,可以通過sudo yum install dstat
來安裝。
二、格式說明
dstat [-afv] [options..] [delay [count]] dstat [引數] Usage: dstat [-afv] [options..] [delay [count]] Versatile tool for generating system resource statistics Dstat options: -c, --cpu enable cpu stats -C 0,3,total include cpu0, cpu3 and total -d, --disk enable disk stats -D total,hda include hda and total -g, --page enable page stats -i, --int enable interrupt stats -I 5,eth2 include int5 and interrupt used by eth2 -l, --load enable load stats -m, --mem enable memory stats -n, --net enable network stats -N eth1,total include eth1 and total -p, --proc enable process stats -r, --io enable io stats (I/O requests completed) -s, --swap enable swap stats -S swap1,total include swap1 and total -t, --time enable time/date output -T, --epoch enable time counter (seconds since epoch) -y, --sys enable system stats --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 --plugin-name enable plugins by plugin name (see manual) --list list all available plugins -a, --all equals -cdngy (default) -f, --full automatically expand -C, -D, -I, -N and -S lists -v, --vmstat equals -pmgdsc -D total --bits force bits for values expressed in bytes --float force float values on screen --integer force integer values on screen --bw, --blackonwhite change colors for white background terminal --nocolor disable colors (implies --noupdate) --noheaders disable repetitive headers --noupdate disable intermediate updates --output file write CSV output to file --profile show profiling statistics when exiting dstat
三、選項說明
-a 此為預設選項,等同於-cdngy。 -c 顯示CPU系統佔用,使用者佔用,空閒,等待,中斷,軟體中斷等資訊 -d 顯示磁碟讀寫資料大小 -n 顯示網路狀態 -l 顯示系統負載情況 -m 顯示記憶體使用情況,包括used,buffer,cache,free值 -g 顯示頁面使用情況 -p 顯示程序狀態 -s 顯示交換分割槽使用情況 -t 將當前時間顯示在第一行 -r I/O請求情況 -y 系統狀態 –fs 顯示檔案系統統計資料(包括檔案總數量和inodes值) --ipc 顯示ipc訊息佇列,訊號等資訊 --socket 顯示網路統計資料,用來顯示tcp udp埠狀態 –tcp 顯示常用的TCP統計 –udp 顯示監聽的UDP介面及其當前用量的一些動態資料 --disk-util 顯示某一時間磁碟的忙碌狀況 --freespace 顯示當前磁碟空間使用率 --proc-count 顯示正在執行的程式數量 --top-bio 指出塊I/O最大的程序 --top-cpu 圖形化顯示CPU佔用最大的程序 --top-io 顯示正常I/O最大的程序 --top-mem 顯示佔用最多記憶體的程序
四、命令功能
一個全能系統資訊統計工具
五、常見用法
5.1 顯示cpu、disk、net、page、system資訊
# 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| 244B 38k| 0 0 | 0 0 | 758 1156
0 0 100 0 0 0| 0 0 | 150B 228B| 0 0 | 787 1285
0 0 100 0 0 0| 0 0 | 96B 372B| 0 0 | 690 1143
0 0 100 0 0 0| 0 0 | 54B 212B| 0 0 | 673 1104
0 0 100 0 0 0| 0 0 | 138B 270B| 0 0 | 757 1235
0 1 99 0 0 0| 0 40k| 702B 1151B| 0 0 | 942 1421
0 0 99 0 0 0| 0 0 |2170B 3495B| 0 0 | 908 1417
CPU狀態:CPU的使用率。這項報告更有趣的部分是顯示了使用者,系統和空閒部分,這更好地分析了CPU當前的使用狀況。如果你看到"wait"一欄中,CPU的狀態是一個高使用率值,那說明系統存在一些其它問題。當CPU的狀態處在"waits"時,那是因為它正在等待I/O裝置(例如記憶體,磁碟或者網路)的響應而且還沒有收到。
磁碟統計(dsk):磁碟的讀寫操作,這一欄顯示磁碟的讀、寫總數。
網路統計(net):網路裝置傳送和接受的資料,這一欄顯示的網路收、發資料總數。
分頁統計(paging):系統的分頁活動。分頁指的是一種記憶體管理技術用於查詢系統場景,一個較大的分頁表明系統正在使用大量的交換空間,或者說記憶體非常分散,大多數情況下你都希望看到page in(換入)和page out(換出)的值是0 0。
系統統計(system):這一項顯示的是中斷(int)和上下文切換(csw)。這項統計僅在有比較基線時才有意義。這一欄中較高的統計值通常表示大量的程序造成擁塞,需要對CPU進行關注。你的伺服器一般情況下都會執行執行一些程式,所以這項總是顯示一些數值。
預設情況下,dstat每秒都會重新整理資料。如果想退出dstat,你可以按"CTRL+C"鍵。
需要注意的是報告的第一行,通常這裡所有的統計都不顯示數值的。
5.2 每3秒收集一次 cpu、disk、net、page、system 資訊
# dstat 3
5.3 顯示CPU系統佔用,使用者佔用,空閒,等待,中斷,軟體中斷等資訊
# dstat -c
5.4 顯示磁碟讀寫資料大小
# dstat -d
5.5 顯示網路狀態
# dstat -n
5.6 檢視全部記憶體都有誰在佔用
# dstat -g -l -m -s --top-mem
5.7 顯示CPU資源損耗的資料
# dstat -c -y -l --proc-count --top-cpu
5.8 輸出一個csv檔案
dstat –output /tmp/dstat.csv -tpcdrmgln
5.9 找出佔用資源最高的程序和使用者
dstat --top-mem --top-io --top-cpu
本文為joshua317原創文章,轉載請註明:轉載自joshua317部落格https://www.joshua317.com/article/194