iT邦幫忙

DAY 29
2

蠻可愛的指令與程式系列 第 29

自製窮人版實時CPU效能監控繪圖

在管理系統的過程中,有些情境只能使用終端機遠端連線.
雖然有眾多指令可以協助查看系統效能或是網路流量等
數據,但大多是文字格式,如之前介紹的sysstat系列.
也有一些程式提供了繪圖方式的輸出,例如前面介紹的
nmon,可以針對CPU繪圖.
但是若我們能夠掌握一種實時繪圖的工具,屆時我們
就可以很方便的對我們想要查看的數據,畫出圖形,
有利於直觀的了解.
例如電池電量,風扇轉數,或是溫度等數據.nmon就
沒有提供繪圖的功能.

今天使用丁大丙帳號有發表一個資料處理的好工具feedgnuplot

http://ithelp.ithome.com.tw/ironman7/app/article/all/recent/10161728

這個工具還有一個stream data的功能,就可以協助我們組合指令,
實時繪製.

為了方便大家測試,還是先以CPU效能為範例,使用systat裡面的mpstat,
來搭配.

while true; do sleep 1;mpstat -P 0| tail -n1; \
done | awk '{print $1,$3; fflush()}' | \
feedgnuplot --stream --timefmt '%H:%M:%S' \
--set 'format x "%H:%M:%S"' \
--domain --lines --terminal "dumb size `tput cols`, `tput lines`"

使用上面的指令, mpstat -P 0 是繪製 編號0的Core,若未指定,就是平均的.
這裡另外使用了 bash 的tput cols, tput lines兩個環境變數,這樣我們
可以把終端機先拉到比較大,會自動依據終端機大小,來調整圖形.
當然,這是窮人版的,執行以後,你再調整終端機,大小不會跟著改變.
所以一開始就先放到大一點,這樣方便我們查看.
為了說明起見,sleep後面的參數,我是設定為一秒,這樣好趕快畫出一些圖形.
實際應用時,可以自行調整為60秒,或是其他間隔.

圖形如下:


上一篇
netcat 介紹3
下一篇
蠻可愛的指令與程式
系列文
蠻可愛的指令與程式30

1 則留言

0
andyto202
iT邦研究生 4 級 ‧ 2014-10-30 09:53:49

非常實用
有空來實作看看

我要留言

立即登入留言