Linux命令 dstat - 通用的系統(tǒng)資源統(tǒng)計(jì)工具

2021-11-09 10:28 更新

dstat

通用的系統(tǒng)資源統(tǒng)計(jì)工具

補(bǔ)充說明

dstat命令 是一個(gè)用來替換vmstat、iostat、netstat、nfsstat和ifstat這些命令的工具,是一個(gè)全能系統(tǒng)信息統(tǒng)計(jì)工具。與sysstat相比,dstat擁有一個(gè)彩色的界面,在手動(dòng)觀察性能狀況時(shí),數(shù)據(jù)比較顯眼容易觀察;而且dstat支持即時(shí)刷新,譬如輸入dstat 3即每三秒收集一次,但最新的數(shù)據(jù)都會(huì)每秒刷新顯示。和sysstat相同的是,dstat也可以收集指定的性能資源,譬如dstat -c即顯示CPU的使用情況。

下載安裝

方法一

yum install -y dstat

方法二

官網(wǎng)下載地址:http://dag.wieers.com/rpm/packages/dstat

wget http://dag.wieers.com/rpm/packages/dstat/dstat-0.6.7-1.rh7.rf.noarch.rpm
rpm -ivh dstat-0.6.7-1.rh7.rf.noarch.rpm

使用說明

安裝完后就可以使用了,dstat非常強(qiáng)大,可以實(shí)時(shí)的監(jiān)控cpu、磁盤、網(wǎng)絡(luò)、IO、內(nèi)存等使用情況。

直接使用dstat,默認(rèn)使用的是-cdngy參數(shù),分別顯示cpu、disk、net、page、system信息,默認(rèn)是1s顯示一條信息??梢栽谧詈笾付@示一條信息的時(shí)間間隔,如dstat 5是沒5s顯示一條,dstat 5 10表示沒5s顯示一條,一共顯示10條。

[root@iZ23uulau1tZ ~]# 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|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
  0   0 100   0   0   0|   0     0 |5080B  346B|   0     0 | 206   242
  0   1  99   0   0   0|   0     0 |5458B  444B|   0     0 | 214   244
  1   0  99   0   0   0|   0     0 |5080B  346B|   0     0 | 208   242

下面對(duì)顯示出來的部分信息作一些說明:

  1. cpu:hiq、siq分別為硬中斷和軟中斷次數(shù)。
  2. system:int、csw分別為系統(tǒng)的中斷次數(shù)(interrupt)和上下文切換(context switch)。

其他的都很好理解。

語法

dstat [-afv] [options..] [delay [count]]

常用選項(xiàng)

-c:顯示CPU系統(tǒng)占用,用戶占用,空閑,等待,中斷,軟件中斷等信息。
-C:當(dāng)有多個(gè)CPU時(shí)候,此參數(shù)可按需分別顯示cpu狀態(tài),例:-C 0,1 是顯示cpu0和cpu1的信息。
-d:顯示磁盤讀寫數(shù)據(jù)大小。
-D hda,total:include hda and total。
-n:顯示網(wǎng)絡(luò)狀態(tài)。
-N eth1,total:有多塊網(wǎng)卡時(shí),指定要顯示的網(wǎng)卡。
-l:顯示系統(tǒng)負(fù)載情況。
-m:顯示內(nèi)存使用情況。
-g:顯示頁面使用情況。
-p:顯示進(jìn)程狀態(tài)。
-s:顯示交換分區(qū)使用情況。
-S:類似D/N。
-r:I/O請(qǐng)求情況。
-y:系統(tǒng)狀態(tài)。
--ipc:顯示ipc消息隊(duì)列,信號(hào)等信息。
--socket:用來顯示tcp udp端口狀態(tài)。
-a:此為默認(rèn)選項(xiàng),等同于-cdngy。
-v:等同于 -pmgdsc -D total。
--output 文件:此選項(xiàng)也比較有用,可以把狀態(tài)信息以csv的格式重定向到指定的文件中,以便日后查看。例:dstat --output /root/dstat.csv & 此時(shí)讓程序默默的在后臺(tái)運(yùn)行并把結(jié)果輸出到/root/dstat.csv文件中。

當(dāng)然dstat還有很多更高級(jí)的用法,常用的基本這些選項(xiàng),更高級(jí)的用法可以結(jié)合man文檔。

實(shí)例

如想監(jiān)控swap,process,sockets,filesystem并顯示監(jiān)控的時(shí)間:

[root@iZ23uulau1tZ ~]# 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
26-07 09:23:50|   0     0 |  0   0   0|104   8   5   0   0|  704   6489
26-07 09:23:51|   0     0 |  0   0   0|104   8   5   0   0|  704   6489
26-07 09:23:52|   0     0 |  0   0   0|104   8   5   0   0|  704   6489
26-07 09:23:53|   0     0 |  0   0   0|104   8   5   0   0|  704   6489

若要將結(jié)果輸出到文件可以加--output filename:

[root@iZ23uulau1tZ ~]# dstat -tsp --socket --fs --output /tmp/ds.csv
----system---- ----swap--- ---procs--- ------sockets------ --filesystem-
  date/time   | used  free|run blk new|tot tcp udp raw frg|files  inodes
26-07 09:25:31|   0     0 |  0   0 0.0|104   8   5   0   0|  736   6493
26-07 09:25:32|   0     0 |  0   0   0|104   8   5   0   0|  736   6493
26-07 09:25:33|   0     0 |  0   0   0|104   8   5   0   0|  736   6493
26-07 09:25:34|   0     0 |  0   0   0|104   8   5   0   0|  736   6493
26-07 09:25:35|   0     0 |  0   0   0|104   8   5   0   0|  736   6494
26-07 09:25:36|   0     0 |  0   0   0|104   8   5   0   0|  736   6494

這樣生成的csv文件可以用excel打開,然后生成圖表。

通過dstat --list可以查看dstat能使用的所有參數(shù),其中上面internal是dstat本身自帶的一些監(jiān)控參數(shù),下面/usr/share/dstat中是dstat的插件,這些插件可以擴(kuò)展dstat的功能,如可以監(jiān)控電源(battery)、mysql等。

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

[root@iZ23uulau1tZ ~]# dstat --list
internal:
        aio, cpu, cpu24, disk, disk24, disk24old, epoch, fs, int, int24, io, ipc, load, lock, mem, net, page, page24, proc, raw, socket, swap, swapold, sys, tcp, time, udp, unix, vm
/usr/share/dstat:
        battery, battery-remain, cpufreq, dbus, disk-util, fan, freespace, gpfs, gpfs-ops, helloworld, innodb-buffer, innodb-io, innodb-ops, lustre, memcache-hits, mysql-io, mysql-keys, mysql5-cmds, mysql5-conn, mysql5-io, mysql5-keys,
        net-packets, nfs3, nfs3-ops, nfsd3, nfsd3-ops, ntp, postfix, power, proc-count, rpc, rpcd, sendmail, snooze, thermal, top-bio, top-cpu, top-cputime, top-cputime-avg, top-io, top-latency, top-latency-avg, top-mem, top-oom, utmp,
        vm-memctl, vmk-hba, vmk-int, vmk-nic, vz-cpu, vz-io, vz-ubc, wifi

dstat命令的基本用法就說到這里,更多用法有待摸索,如果您需要補(bǔ)充內(nèi)容請(qǐng)給我們發(fā)郵件,謝謝!


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)