2017年8月2日 星期三

rrdtool fetch max 與 繪圖不符...

root@solaris:/var/www/OM/rrd# rrdtool fetch 139.175.240.142_port_ethernet_14_2.rrd MAX -r 86400 -s -18h -e -14h
                     traffic_in         traffic_out

1501718400: 2.0671411616e+07 8.4111154469e+07

算出來大概是642Mbps,但繪圖出來卻是550Mbps...



用fetch average來讀值再排序,最大的也還是8.4111154469e+07,
root@solaris:/var/www/OM/rrd# rrdtool fetch 139.175.240.142_port_ethernet_14_2.rrd AVERAGE  -r 300 -s -25h -e -13h | awk '{print $3}' | sort | tail -n 1
8.4111154469e+07

看來真的要好好study一下了。

接著我們再同意的時間取值,取出前一天20:00~23:59的值,
rrdtool fetch 139.175.240.142_port_ethernet_14_2.rrd AVERAGE  -r 300 -s $start =e $end  | awk '{print $3}' | sort | tail -n 3
6.8785461058e+07
9.9885483539e+06

確實最大值的確是550Mbps。

我們接著再畫一張全日的圖:


發現的確瞬間有爆表,所以我們回頭查RRD檔的上限值是多少

root@solaris:/var/www/OM/rrd# rrdtool dump 139.175.240.142_port_ethernet_14_2.rrd | grep max
                1.0000000000e+10
                1.0000000000e+10

看起來還沒有爆表...,從ifspeed來看的話,其速度為1000000000 (1.00e+9)
IF-MIB::ifSpeed.1 = Gauge32: 1000000000

但我也還不能確定原因,說不定是設備吐出來的值就有問題。
先把max改為1.00e+9試試吧。

作了很多測試,我只記錄最後找到的問題點。
一開始的設計,在update  rrd檔時,用的是程式開始時的timestamp,但其實BRAS有時回應時間會很長,假設多拖了30秒才回資料,但計算時是用300秒來算,因此其實資料量已經不是300秒的資料了。等於說用300秒來算330秒的資料,這樣當然是不準確。因此我最後改為N,用update rrd檔時的時間來做為計算的依據。目前看起來正常,再觀察幾天吧。



沒有留言:

張貼留言