rrdtool 的使用技巧3

RRDTool中最大值的获取

在RRDTool中,一般RRA中会有Average,Min,Max,Last这几个CF。在做数据分析的时候,经常会要求获取某段时间的最大值,同时也会在图像中显示(可以参看rrdtool使用技巧1)

在这里就要说明一下这个最大值的是否是你需要的最大值了。

举例如下,下图中,有个最大值显示为1.25M左右。然后我们根据rrdtool使用技巧2中获知,这个最大值不是这段时间内的最大值,因为如果在作图的时候把Width参数改成900的话,最大值为2.7M左右。所以带来的问题是如果把Width改成更大的数值,是不是显示的最大值还会变化呢。结果确实是这样。我们把宽度改成3600,显示最大值为2.11M。 但是和第二次的2.07M非常接近。但是宽度的最大值是有限制的,也就是所采用RRA在这个时间段的最大的数量。

rrdtool 的使用技巧3_第1张图片

rrdtool 的使用技巧3_第2张图片

第二个问题是来自于DEF的定义,在命令中可以都看到“DEF:var1=if.rrd:2:AVERAGE” 这里面定义中,CF采用的是AVERAGE,也就是说是平均值中的最大值。但是在这个rrd文件中,还有CF为Max的RRA。是否这个最大值会更大呢?测试一下,结果最大值为2.13M。表明确实为变大,但是差距不大,由于图太长,未贴出。

是不是有更大的最大值了呢?根据经验,Step为1分钟,CF为MAX中的最大值应该为最大了,我们来看一下这个最大值为多少? 结果如下图,最大值也是2.13M。经过分析,超过2M的时间也超过了1个小时,所以Step为720的时候平均最大值可以到达2.11M,Step 720的最大值也能达到2.13M。

rrdtool 的使用技巧3_第3张图片

结论:

在RRDTool的数据库中,最大值并不是非常容易获取,平时在RRDTool中看到的也并不是最大值。因为RRDTool已经帮用户做了汇聚的工作。这个汇聚的工作自然也会丧失一些精度。可以根据实际的需求,来获得相应的值。本文只是简单介绍了,怎么样才能获得这些最大值。


附录

图一:

rrdtool graph t1.png  --width=400 --height=100 --color CANVAS#0a0a0a  --color BACK#C3CAD1  --start 1362067200 --end 1364659200  --vertical-label "" --title "Examples" -S 720 DEF:var1=if.rrd:2:AVERAGE AREA:var1#587019 HRULE:1000000#FF0000 GPRINT:var1:MAX:"Max is %4.2lf%s"

图二:

rrdtool graph t1.png  --width=900 --height=100 --color CANVAS#0a0a0a  --color BACK#C3CAD1  --start 1362067200 --end 1364659200  --vertical-label "" --title "Examples" -S 720 DEF:var1=if.rrd:2:AVERAGE AREA:var1#587019 HRULE:1000000#FF0000 GPRINT:var1:MAX:"Max is %4.2lf%s"

图三:

rrdtool graph t3.png  --width=3600 --height=100 --color CANVAS#0a0a0a  --color BACK#C3CAD1  --start 1362067200 --end 1364659200  --vertical-label "" --title "Examples" -S 720 DEF:var1=if.rrd:2:AVERAGE AREA:var1#587019 HRULE:1000000#FF0000 GPRINT:var1:MAX:"Max is %4.2lf%s"

图四:

rrdtool graph t4.png  --width=900 --height=100 --color CANVAS#0a0a0a  --color BACK#C3CAD1  --start 1364667200 --end 1364659200  --vertical-label "" --title "Examples" -S 720 DEF:var1=if.rrd:2:MAX AREA:var1#587019 HRULE:1000000#FF0000 GPRINT:var1:MAX:"Max i %4.2lf%s"

图五:

rrdtool graph t5.png  --width=480 --height=100 --color CANVAS#0a0a0a  --color BACK#C3CAD1  --start 1364277600 --end 1364284800  --vertical-label "" --title "Examples" -S 60 DEF:var1=if.rrd:2:MAX AREA:var1#587019 HRULE:1000000#FF0000 GPRINT:var1:MAX:"Max is %4.2lf%s"





你可能感兴趣的:(rrdtool 的使用技巧3)