[rrd-users] Save and Calculate Percentil

Steve Shipway s.shipway at auckland.ac.nz
Mon Aug 18 00:20:15 CEST 2014

The problem with calculating Percentiles accurately is that you need all the
data samples to calculate it; you cannot progressively increment the
calculation in the way you can with something like MAX or AVG.

As a result, you end up with one of three situations --

1. You calculate the percentile on the fly based on the AVG data.  This is
how Routers2(MRTG) does it; the downside is that, as the RRA consolidation
step size increases, so does the inaccuracy of the Percentile calculation as
you lose detail with each averaging step.

2. Keep the high-detail PDP, and calculate the percentile from them.  This
is how Routers2 does it if there exists a high-granularity RRA (usually,
there isn't one), and how the RRDTool PERCENTILE function does it.  The
downside with this is that it can potentially be very CPU intensive if there
are a very large number of PDP to analyse.

3. Keep the high-detail PDP in the RRA prep area and consolidate in the RRA.
This is not currently possible, as there is not a 'PERCENTILE' type RRA.
The likely reason for this is that the PDP prep area is simply not large
enough to hold the potentially huge number of individual PDP that would be
necessary;  RRA consolidation is progressive (eg:  newavg = (n*oldavg +
newpdp)/(n+1)) and so needs only a small prep area.

So, in summary, you cannot do this in the RRA.  You can use the PERCENTILE
function to do it on the fly at graph time, but this is potentially CPU
intensive, and will be progressively more inaccurate unless you keep
high-resolution RRA data to cover the entire period of the graph.


Steve Shipway
s.shipway at auckland.ac.nz

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5909 bytes
Desc: not available
URL: <http://lists.oetiker.ch/pipermail/rrd-users/attachments/20140817/aea6c99f/attachment.bin>

More information about the rrd-users mailing list