Linux系統(tǒng)操作中,用于系統(tǒng)監(jiān)控的命令有很多(詳見系統(tǒng)之家監(jiān)控Linux系統(tǒng)性能的命令有哪些?),今天小編要給大家介紹下Linux系統(tǒng)監(jiān)控工具dstat的使用,一起來了解下吧。
dstat可以讓你實(shí)時(shí)地看到所有系統(tǒng)資源,例如,你能夠通過統(tǒng)計(jì)IDE控制器當(dāng)前狀態(tài)來比較磁盤利用率,或者直接通過網(wǎng)絡(luò)帶寬數(shù)值來比較磁盤的吞吐率(在相同的時(shí)間間隔內(nèi))。
dstat將以列表的形式為你提供選項(xiàng)信息并清晰地告訴你是在何種幅度和單位顯示輸出。這樣更好地避免了信息混亂和誤報(bào)。更重要的是,它可以讓你更容易編寫插件來收集你想要的數(shù)據(jù)信息,以從未有過的方式進(jìn)行擴(kuò)展。
Dstat的默認(rèn)輸出是專門為人們實(shí)時(shí)查看而設(shè)計(jì)的,不過你也可以將詳細(xì)信息通過CSV輸出到一個(gè)文件,并導(dǎo)入到Gnumeric或者Excel生成表格中。
特性
結(jié)合了vmstat,iostat,ifstat,netstat以及更多的信息
實(shí)時(shí)顯示統(tǒng)計(jì)情況
在分析和排障時(shí)可以通過啟用監(jiān)控項(xiàng)并排序
模塊化設(shè)計(jì)
使用python編寫的,更方便擴(kuò)展現(xiàn)有的工作任務(wù)
容易擴(kuò)展和添加你的計(jì)數(shù)器(請(qǐng)為此做出貢獻(xiàn))
包含的許多擴(kuò)展插件充分說明了增加新的監(jiān)控項(xiàng)目是很方便的
可以分組統(tǒng)計(jì)塊設(shè)備/網(wǎng)絡(luò)設(shè)備,并給出總數(shù)
可以顯示每臺(tái)設(shè)備的當(dāng)前狀態(tài)
極準(zhǔn)確的時(shí)間精度,即便是系統(tǒng)負(fù)荷較高也不會(huì)延遲顯示
顯示準(zhǔn)確地單位和和限制轉(zhuǎn)換誤差范圍
用不同的顏色顯示不同的單位
顯示中間結(jié)果延時(shí)小于1秒
支持輸出CSV格式報(bào)表,并能導(dǎo)入到Gnumeric和Excel以生成圖形
安裝方法
Ubuntu/Mint和Debin系統(tǒng):
本地軟件庫中有相關(guān)安裝包,你可以用下面命令安裝:
# sudo apt-get install dstat
RHEL/CentOS和Fedora系統(tǒng):
你可以在romforge軟件庫中添加有相關(guān)安裝包,參照指導(dǎo),使用如下命令很簡(jiǎn)單就能進(jìn)行安裝:
# yum install dstat
ArchLinux系統(tǒng):
相關(guān)軟件包在社區(qū)資源庫中,你可以用這個(gè)命令來安裝:
# pacman -S dstat
使用方法
dstat的基本用法就是輸入dstat命令,輸出如下:
這是默認(rèn)輸出顯示的信息:
CPU狀態(tài):CPU的使用率。這項(xiàng)報(bào)告更有趣的部分是顯示了用戶,系統(tǒng)和空閑部分,這更好地分析了CPU當(dāng)前的使用狀況。如果你看到“wait”一欄中,CPU的狀態(tài)是一個(gè)高使用率值,那說明系統(tǒng)存在一些其它問題。當(dāng)CPU的狀態(tài)處在“waits”時(shí),那是因?yàn)樗诘却齀/O設(shè)備(例如內(nèi)存,磁盤或者網(wǎng)絡(luò))的響應(yīng)而且還沒有收到。
磁盤統(tǒng)計(jì):磁盤的讀寫操作,這一欄顯示磁盤的讀、寫總數(shù)。
網(wǎng)絡(luò)統(tǒng)計(jì):網(wǎng)絡(luò)設(shè)備發(fā)送和接受的數(shù)據(jù),這一欄顯示的網(wǎng)絡(luò)收、發(fā)數(shù)據(jù)總數(shù)。
分頁統(tǒng)計(jì):系統(tǒng)的分頁活動(dòng)。分頁指的是一種內(nèi)存管理技術(shù)用于查找系統(tǒng)場(chǎng)景,一個(gè)較大的分頁表明系統(tǒng)正在使用大量的交換空間,或者說內(nèi)存非常分散,大多數(shù)情況下你都希望看到page in(換入)和page out(換出)的值是0 0。
系統(tǒng)統(tǒng)計(jì):這一項(xiàng)顯示的是中斷(int)和上下文切換(csw)。這項(xiàng)統(tǒng)計(jì)僅在有比較基線時(shí)才有意義。這一欄中較高的統(tǒng)計(jì)值通常表示大量的進(jìn)程造成擁塞,需要對(duì)CPU進(jìn)行關(guān)注。你的服務(wù)器一般情況下都會(huì)運(yùn)行運(yùn)行一些程序,所以這項(xiàng)總是顯示一些數(shù)值。
默認(rèn)情況下,dstat每秒都會(huì)刷新數(shù)據(jù)。如果想退出dstat,你可以按“CTRL-C”鍵。
需要注意的是報(bào)告的第一行,通常這里所有的統(tǒng)計(jì)都不顯示數(shù)值的。
這是由于dstat會(huì)通過上一次的報(bào)告來給出一個(gè)總結(jié),所以第一次運(yùn)行時(shí)是沒有平均值和總值的相關(guān)數(shù)據(jù)。
但是dstat可以通過傳遞2個(gè)參數(shù)運(yùn)行來控制報(bào)告間隔和報(bào)告數(shù)量。例如,如果你想要dstat輸出默認(rèn)監(jiān)控、報(bào)表輸出的時(shí)間間隔為3秒鐘,并且報(bào)表中輸出10個(gè)結(jié)果,你可以運(yùn)行如下命令:
dstat 310
在dstat命令中有很多參數(shù)可選,你可以通過man dstat命令查看,大多數(shù)常用的參數(shù)有這些:
-l :顯示負(fù)載統(tǒng)計(jì)量
-m :顯示內(nèi)存使用率(包括used,buffer,cache,free值)
-r :顯示I/O統(tǒng)計(jì)
-s :顯示交換分區(qū)使用情況
-t :將當(dāng)前時(shí)間顯示在第一行
–fs :顯示文件系統(tǒng)統(tǒng)計(jì)數(shù)據(jù)(包括文件總數(shù)量和inodes值)
–nocolor :不顯示顏色(有時(shí)候有用)
–socket :顯示網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)
–tcp :顯示常用的TCP統(tǒng)計(jì)
–udp :顯示監(jiān)聽的UDP接口及其當(dāng)前用量的一些動(dòng)態(tài)數(shù)據(jù)
當(dāng)然不止這些用法,dstat附帶了一些插件很大程度地?cái)U(kuò)展了它的功能。你可以通過查看/usr/share/dstat目錄來查看它們的一些使用方法,常用的有這些:
-–disk-util :顯示某一時(shí)間磁盤的忙碌狀況
-–freespace :顯示當(dāng)前磁盤空間使用率
-–proc-count :顯示正在運(yùn)行的程序數(shù)量
-–top-bio :指出塊I/O最大的進(jìn)程
-–top-cpu :圖形化顯示CPU占用最大的進(jìn)程
-–top-io :顯示正常I/O最大的進(jìn)程
-–top-mem :顯示占用最多內(nèi)存的進(jìn)程
舉一些例子:
查看全部?jī)?nèi)存都有誰在占用:
dstat -g -l -m -s --top-mem
顯示一些關(guān)于CPU資源損耗的數(shù)據(jù):
dstat -c -y -l --proc-count --top-cpu
如何輸出一個(gè)csv文件
想輸出一個(gè)csv格式的文件用于以后,可以通過下面的命令:
# dstat –output /tmp/sampleoutput.csv -cdn
上面就是Linux監(jiān)控工具dstat的用法介紹了,通過監(jiān)控工具dstat,你能實(shí)時(shí)監(jiān)控系統(tǒng)的性能狀態(tài),把握CPU性能損耗,讓系統(tǒng)處于最佳運(yùn)行狀態(tài)。