<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="GENERATOR" content="GtkHTML/4.6.6">
</head>
<body>
Hi Marius,<br>
<br>
I have never used the ABSOLUTE before, as I don't have any counters that resets upon read.<br>
But if the data looks correct in the graph, then that's probably fine.<br>
I'm always afraid to have this kind of setups as a test-run that fetches a value will also trigger a counter reset - and the next real reading will be off.<br>
<br>
Regarding the width:<br>
All your samples are put into a number of buckets containing one or more values - all depending on how many samples you are analyzing, and how many "buckets" you can show on your screen.<br>
10000 samples in a 300 pixel wide graph will be about 10000/300=33 samples per bucket.<br>
If you increase the width to 1000 pixels - then you will get 10 per bucket.<br>
In the DEF's on the first two rows you define how this data should be aggregated.<br>
you specified that all the samples should be AVERAGEd to a simple value.<br>
This is probably the most correct way of doing it - and works very well in most cases.<br>
If your data jumps up and down a lot - it may be an issue.<br>
<br>
In the next step you are converting bits to bytes by multiplying by 8 for both in and out traffic.<br>
<br>
Then you are making a new series (allbits) where you take the maximum-value of in and out.<br>
I don't understand the meaning in doing that.<br>
I would suggest trying to calculate the 95 percentile for in and out separately (as two values) or to add in and out together for calculating the percentile.<br>
As you are doing it today - you may ignore up to 50% of your data (if in and out are the same).<br>
<br>
You can also do the calculation without creating a graph - where you can set the "bucket" size or width to something that doesn't aggregate your data.<br>
But I think that the issue is the "allbits" line.<br>
Split it to two values - or just "+" them together instead of using the "MAX".<br>
<br>
Good luck!<br>
<br>
/Johan<br>
<br>
<br>
On Thu, 2014-09-04 at 14:21 +0200, Marius Karthaus wrote:
<blockquote type="CITE">
<pre>
Hello list,

While searching the web on how to calculate the 95th percentile from an 
RRD, most results return something like:

rrdtool graph graph.png \
DEF:in=foo.rrd:in:AVERAGE \
DEF:out=foo.rrd:out:AVERAGE \
CDEF:inb=in,8,* \
CDEF:outb=out,8,* \
CDEF:allbits=inb,outb,MAX \
VDEF:pct=allbits,95,PERCENT \

However I find that the result produced this way is highly incorrect. 
Not only that, but the result is greatly influenced by the width (-w) 
option for generating the graph. On my test dataset changing -w from 400 
to 1000 pixels (while keeping all other things the same) the 95Th 
percentile swings back and forth between 17 and 38 Mbit. Am I doing 
something wrong, or is this behaviour to be expected?

My create command, the measurements I'm inserting are 'bytes transferred 
since last measurement'

# rrdtool create foo.rrd --start $start --step 300 
DS:in:ABSOLUTE:600:0:U DS:out:ABSOLUTE:600:0:U RRA:AVERAGE:0.5:1:100000

Regards,
Marius

_______________________________________________
rrd-users mailing list
<a href="mailto:rrd-users@lists.oetiker.ch">rrd-users@lists.oetiker.ch</a>
<a href="https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users">https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users</a>
</pre>
</blockquote>
</body>
</html>