天天看點

dstat6、dstat重點(個人意見)

官方對dstat的定義為:多功能系統資源統計生成工具( versatile tool for generating system resource statistics)。在擷取的資訊上有點類似于top、free、iostat、vmstat等多個工具的合集,官方解釋為vmstat、iostat、ifstat等工具的多功能替代品,且添加了許多額外的功能(Dstat is a versatile replacement for vmstat, iostat and ifstat. Dstat overcomes some of the limitations and adds some extra features.);其結果可以保持到csv檔案,使用腳本或第三方工具對性能進行分析利用(如通過監控平台監控,也可以保持到資料庫)。

在root賬戶下執行指令yum install dstat , 進行軟體的安裝

安裝完成後,我們執行指令dstat。顯示為系統的整體的性能資訊

[root@docker-01 ~]# dstat

You did not select any stats, using -cdngy by default.

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--

usrsysidlwaihiqsiq|read writ|recv send| in out |int csw

0 0 100 0 0 0|1068B 2066B| 0 0 | 0 0 | 14 21

0 0 100 0 0 0| 0 0 |112B 146B| 0 0 | 41 58

0 0 100 0 0 0| 0 0 |290B 1156B| 0 0 | 38 65

0 0 100 0 0 0| 0 0 | 56B 138B| 0 0 | 32 54

0 0 100 0 0 0| 0 0 | 56B 338B| 0 0 | 44 62

0 0 100 0 0 0| 0 0 | 56B 338B| 0 0 | 27 51

1 0 100 0 0 0| 0 0 | 56B 338B| 0 0 | 36 60

針對預設輸出字段解釋如下

分組 分組含義及子項字段含義
CPU狀态 CPU的使用率。顯示了使用者占比,系統占比、空閑占比、等待占比、硬中斷和軟中斷情況。
磁盤統計 磁盤的讀寫,分别顯示磁盤的讀、寫總數。
網絡統計 網絡裝置發送和接受的資料,分别顯示的網絡收、發資料總數。
分頁統計 系統的分頁活動。分别顯示換入(in)和換出(out)。
系統統計 統計中斷(int)和上下文切換(csw)。

1.指令格式

2.指令選項

Options Details
-c, - -cpu 開啟cpu統計
-C 該選項跟cpu的編号(0~cpu核數-1,多個用都好隔開)如:0,3,total表示分别包含cpu0、cpu3和total
-d, - -disk 開啟disk統計
-D 改選跟具體的裝置名(多個用逗号隔開)如:total,hda,hdb表示分别統計total、hda、hdb裝置塊
-g, - -page 開啟分頁統計
-i, - -int 開啟中斷統計
-l, - -load 開啟負載均衡統計,分别是1m,5m,15m
-m, - -mem 開啟記憶體統計,包括used,buffers,cache,free
-n, - -net 開啟net統計,包括接受和發送
-N 該選項可以跟網絡裝置名多個用逗号隔開,如eth1,total
-p, - -proc 開啟程序統計,包括runnable, uninterruptible, new
-r, - -io io開啟請求統計,包括read requests, write requests
-s, - -swap 開啟swap統計,包括used, free
-S 該選項可以跟具體的交換區,多個用逗号隔開如swap1,total
-t, - -time 啟用時間和日期輸出
-T, - -epoch 啟用時間計數,從epoch到現在的秒數
-y, - -sys 開啟系統統計,包括中斷和上下文切換
- -aio 開啟同步IO統計 (asynchronous I/O)
- -fs 開啟檔案系統統計,包括 (open files, inodes)
- -ipc 開啟ipc統計,包括 (message queue, semaphores, shared memory)
- -lock 開啟檔案所統計,包括 (posix, flock, read, write)
- -raw 開啟raw統計 (raw sockets)
- -socket 開啟sockets統計,包括 (total, tcp, udp, raw, ip-fragments)
- -tcp 開啟tcp統計,包括(listen, established, syn, time_wait, close)
- -udp 開啟udp統計 (listen, active)
- -unix 開啟unix統計(datagram, stream, listen, active)
- -vm 開啟vm統計 (hard pagefaults, soft pagefaults, allocated, free)
- -list 列舉内置插件擴充的名稱
-a, - -all 是預設值相當于 -cdngy (default)
-f, - -full 相當于 -C, -D, -I, -N and -S
-v, - -vmstat 相當于 -pmgdsc -D total
- -bw, - -blackonwhite 在白色背景終端上改變顯示顔色
- -float 在螢幕上的輸出強制顯示為浮點值(即帶小數)(相反的選項設定為 - -integer)
- -integer 在螢幕上的輸出強制顯示為整數值,此為預設值(相反的選項設定為- -float)
- -nocolor 禁用顔色(意味着選項 - -noupdate)
- -noheaders 禁止重複輸出header,預設會列印一螢幕輸出一次header
- -noupdate 當delay>1時禁止在過程中更新(即在時間間隔内不允許更新)
- -output file 輸出結果到cvs檔案中

3.指令參數

參數名稱 參數描述
delay 兩次輸出之間的時間間隔,預設是1s
count 報告輸出的次數,預設是沒有限制,一直輸出知道ctrl+c

檢視cpu的整體情況,執行指令dstat -c。顯示各個資訊為CPU使用者占用,系統占用,空閑,等待,中斷,軟體中斷等資訊。

[root@docker-01 ~]# dstat -c

----total-cpu-usage----

usrsysidlwaihiqsiq

0 0 100 0 0 0

1 0 100 0 0 0

0 0 100 0 0 0

檢視系統的磁盤的讀寫資料大小,執行指令dstat -d

[root@docker-01 ~]# dstat -d

-dsk/total-

read writ

1067B 2105B

0 0

0 0

0 0

檢視系統的網絡狀态,執行指令dstat -n

[root@docker-01 ~]# dstat -n

-net/total-

recv send

0 0

56B 90B

56B 194B

56B 154B

檢視系統的記憶體資訊,執行指令dstat -m

[root@docker-01 ~]# dstat -m

------memory-usage-----

used buff cach free

258M 2108k 424M 9154M

258M 2108k 424M 9154M

258M 2108k 424M 9154M

檢視系統的負載情況,執行指令dstat -l

[root@docker-01 ~]# dstat -l

---load-avg---

1m 5m 15m

0 0.01 0.05

0 0.01 0.05

0 0.01 0.05

檢視系統的I/O請求情況,執行指令dstat -r

[root@docker-01 ~]# dstat -r

--io/total-

read writ

0.04 0.16

0 15.0

0 0

監控udp、tcp,監控CPU,顯示時間,每三秒掃描一次,共掃描三次

[root@docker-01 ~]# dstat --udp --tcp -c -t 3 3

--udp-- ----tcp-sockets---- ----total-cpu-usage---- ----system----

lisact|lisactsyntimclo|usrsysidlwaihiqsiq| time

8 0| 7 2 0 0 0| 0 0 100 0 0 0|19-08 21:50:55

8 0| 7 2 0 0 0| 0 0 100 0 0 0|19-08 21:50:58

8 0| 7 2 0 0 0| 0 0 100 0 0 0|19-08 21:51:01

8 0| 7 2 0 0 0| 0 0 100 0 0 0|19-08 21:51:04

4.插件指令

插件名稱 插件描述
- -battery 電池電池百分比(需要ACPI)
- -battery-remain 電池剩餘小時、分鐘(需要ACPI)
- -cpufreq CPU頻率百分比(需要ACPI)
- -dbus dbus連接配接的數量(需要python-dbus)
- -disk-util 顯示某一時間磁盤的忙碌狀況
- -fan 風扇轉速(需要ACPI)
- -freespace 每個檔案系統的磁盤使用情況
- -gpfs gpfs讀/寫 I / O(需要mmpmon)
- -gpfs-ops GPFS檔案系統操作(需要mmpmon)
- -helloworld dstat插件Hello world示例
- -innodb-buffer 顯示innodb緩沖區統計
- -innodb-io 顯示innodb I / O統計資料
- -innodb-ops 顯示innodb操作計數器
- -lustre 顯示lustreI / O吞吐量
- -memcache-hits 顯示memcache 的命中和未命中的數量
- -mysql5-cmds 顯示MySQL5指令統計
- -mysql5-conn 顯示MySQL5連接配接統計
- -mysql5-io MySQL5 I / O統計資料
- -mysql5-keys 顯示MySQL5關鍵字統計
- -mysql-io 顯示MySQL I / O統計資料
- -mysql-keys 顯示MySQL關鍵字統計
- -net-packets 顯示接收和發送的資料包的數量
- -nfs3 顯示NFS v3用戶端操作
- -nfs3-ops 顯示擴充NFS v3用戶端操作
- -nfsd3 顯示NFS v3伺服器操作
- -nfsd3-ops 顯示擴充NFS v3伺服器操作
- -ntp 顯示NTP伺服器的ntp時間
- -postfix 顯示字尾隊列大小(需要字尾)
- -power 顯示電源使用量
- -proc-count 顯示處理器的總數
- -rpc 顯示rpc用戶端調用統計
- -rpcd 顯示RPC伺服器調用統計
- -sendmail 顯示sendmail隊列大小(需要sendmail)
- -snooze 顯示每秒運算次數
- -test 顯示插件輸出
- -thermal 熱系統的溫度傳感器
- -top-bio 顯示消耗塊I/O最大的程序
- -top-cpu 顯示消耗CPU最大的程序
- -top-cputime 顯示使用CPU時間最大的程序(機關ms)
- -top-cputime-avg 顯示使用CPU時間平均最大的程序(機關ms)
- -top-io 顯示消耗I/O最大程序
- -top-latency 顯示總延遲最大的程序(機關ms)
- -top-latency-avg 顯示平均延時最大的程序(機關ms)
- -top-mem 顯示使用記憶體最大的程序
- -top-oom 顯示第一個被OOM結束的程序
- -utmp 顯示utmp連接配接的數量(需要python-utmp)
- -vmk-hba 顯示VMware ESX核心vmhba統計數
- -vmk-int 顯示VMware ESX核心中斷資料
- -vmk-nic 顯示VMware ESX核心端口統計
- -vz-io 顯示每個OpenVZ請求CPU使用率
- -vz-ubc 顯示OpenVZ使用者統計
- -wifi 無線連接配接品質和信号噪聲比

5.常用插件指令

插件名稱 插件描述
- -disk-util 顯示某一時間磁盤的忙碌狀況
- -freespace 顯示目前磁盤空間使用率
- -proc-count 顯示正在運作的程式數量
- -top-bio 顯示塊I/O最大的程序
- -top-cpu 顯示CPU占用最大的程序
- -top-io 顯示正常I/O最大的程序
- -top-mem 顯示占用最多記憶體的程序

例:

檢視CPU資源使用情況,執行指令

[root@docker-01 ~]# dstat -cyl --proc-count --top-cpu

----total-cpu-usage---- ---system-- ---load-avg--- proc -most-expensive-

usrsysidlwaihiqsiq|int csw |1m 5m 15m |tota| cpu process

0 0 100 0 0 0| 14 21| 0 0.01 0.05|109|python2 0.0

0 1 99 0 0 0| 57 40| 0 0.01 0.05|109|

1 0 99 0 0 0| 53 42| 0 0.01 0.05|109|

1 1 99 0 0 0| 36 28| 0 0.01 0.05|109|

0 0 100 0 0 0| 40 30| 0 0.01 0.05|109|

檢視記憶體資源使用情況,執行指令

[root@docker-01 ~]# dstat -glms --top-mem

Terminal width too small, trimming output.

---paging-- ---load-avg--- ------memory-usage----- ----swap--->

in out |1m 5m 15m |used buff cach free|used free>

0 0 | 0 0.01 0.05|258M 2108k 424M 9154M| 0 2048M>

0 0 | 0 0.01 0.05|259M 2108k 424M 9153M| 0 2048M>

0 0 | 0 0.01 0.05|259M 2108k 424M 9153M| 0 2048M>

0 0 | 0 0.01 0.05|259M 2108k 424M 9153M| 0 2048M>

6、dstat重點(個人意見)

dstat --top-cpu:顯示最消耗CPU的程序

dstat --top-cuptime:最消耗CPU時間的程序,以毫秒為機關

dstat --top-io:顯示消耗io最多的程序

dstat --top-latency:顯示哪個程序有最大的延遲

dstat --top-mem:顯示用記憶體最多的線程

dstat --top-mem --top-cpu:倆個一起使用也是OK的

關于運維學習、分享、交流,筆者開通了微信公衆号【運維貓】,感興趣的朋友可以關注下,歡迎加入,建立屬于我們自己的小圈子,一起學運維知識。