前陣子在爬文看到一個好用的系統監視工具 dstat,實際使用過後根本超級好用,號稱可取代 vmstat , iostat .. 等效能監視工具
dstat 是基於 python 開發並且提供原始碼,提供各式各樣的監視訊息,並且擁有顏色顯示不同的單位,還可以 out file 之後再查看
在 CentOS 你可以直接 yum 安裝
$ yum install dstat
基本用法:dstat
$ 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|7681B 3986B| 0 0 | 0 0 | 90 120 0 0 100 0 0 0| 0 0 | 132B 314B| 0 0 | 85 115
- cpu:當 usr 和 sys 加起來超過 80 代表你的 CPU 很忙碌,若是 wai 數值升高,代表 CPU 一直在等待,可能你的 disk I/O 不足或是出了問題。
- dsk:硬碟的讀寫資料量/速度
- net:網路的收/發狀況
- paging:這個代表 swap,通常是 0,若產生數值則代表你的記憶體可能不足,必須採用 swap 來進行交換
- system:int 代表中斷次數,csw 代表 context switch,這項數值越高則代表整體系統 work 大量且緩慢。
顯示 Load average:dstat -l
$ dstat -l ---load-avg--- 1m 5m 15m 0 0.10 0.08 0 0.10 0.08
顯示記憶體使用率:dstat -m
$ dstat -m ------memory-usage----- used buff cach free 2500M 7284k 47.8M 78.4M 2500M 7284k 47.8M 78.4M
顯示 I/O:dstat -r
$ dstat -r --io/total- read writ 0.35 0.96
顯示網路統計 socket:dstat –socket
$ dstat --socket ------sockets------ tot tcp udp raw frg 217 10 3 0 0 218 11 3 0 0
顯示 tcp 統計:dstat -tcp
$ dstat -tcp ----system---- ----total-cpu-usage---- ---procs--- date/time |usr sys idl wai hiq siq|run blk new 30-04 02:28:37| 1 0 98 0 0 0| 0 0 0.1 30-04 02:28:38| 0 0 100 0 0 0| 0 0 0
更有效的系統分析參數
- dstat –proc-count 統計所有工作程式數量
- dstat –top-bio 指出目前 I/O 讀寫最大的程式
- dstat –top-cpu 指出目前 CPU 佔用最大的程式
- dstat –top-mem 指出目前 mem 佔用最多的程式
對於系統分析你也可以輸出 CSV
$ dstat --output /tmp/dstat_test.csv
所有的指令參數你都可以配合使用