[rrd-users] Questions about effective database parameters
Henrik Hegardt
henrikhegardt at hotmail.com
Wed Dec 22 17:47:34 CET 2010
Hi again.
I can't make it work. A rrd is setup as:
rrdtool create -s 1 \
DS:DS1:GAUGE:2:0:3600 \
DS:DS1:GAUGE:2:0:3600 \
RRA:AVERAGE:0:1:86400 \
RRA:AVERAGE:0.02:48:3600 \
RRA:AVERAGE:0.002:336:3600 \
RRA:AVERAGE:0.001:720:3600 \
RRA:MAX:0.02:48:3600 \
RRA:MAX:0.002:336:3600 \
RRA:MAX:0.001:720:3600
Nothing gets stored in the rra's except in the 86400 one. And when generating an image, only time spans around 3.5 hours produces
graphs with data but there is data anywhere during a day. Is this because RRDtool tries to plot data from the "wider" rra?
Plot image width is 500. I'm using rrdcached with my own timestamps, and the journals are full of updates and writes.
I have rrd with step 60 and they work fine. But all the 1s step are not working as intended.
Here's a info from a file.
filename = "INT-7055.rrd"
rrd_version = "0003"
step = 1
last_update = 1293034861
header_size = 2632
ds[DS1].index = 0
ds[DS1].type = "GAUGE"
ds[DS1].minimal_heartbeat = 2
ds[DS1].min = 0.0000000000e+00
ds[DS1].max = 3.6000000000e+03
ds[DS1].last_ds = "U"
ds[DS1].value = NaN
ds[DS1].unknown_sec = 0
ds[DS2].index = 1
ds[DS2].type = "GAUGE"
ds[DS2].minimal_heartbeat = 2
ds[DS2].min = 0.0000000000e+00
ds[DS2].max = 3.6000000000e+03
ds[DS2].last_ds = "0.0441428571428571"
ds[DS2].value = 0.0000000000e+00
ds[DS2].unknown_sec = 0
rra[0].cf = "AVERAGE"
rra[0].rows = 86400
rra[0].cur_row = 28857
rra[0].pdp_per_row = 1
rra[0].xff = 0.0000000000e+00
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[0].cdp_prep[1].value = NaN
rra[0].cdp_prep[1].unknown_datapoints = 0
rra[1].cf = "AVERAGE"
rra[1].rows = 3600
rra[1].cur_row = 2285
rra[1].pdp_per_row = 48
rra[1].xff = 2.0000000000e-02
rra[1].cdp_prep[0].value = 0.0000000000e+00
rra[1].cdp_prep[0].unknown_datapoints = 13
rra[1].cdp_prep[1].value = 8.8142857143e-02
rra[1].cdp_prep[1].unknown_datapoints = 11
rra[2].cf = "AVERAGE"
rra[2].rows = 3600
rra[2].cur_row = 1438
rra[2].pdp_per_row = 336
rra[2].xff = 2.0000000000e-03
rra[2].cdp_prep[0].value = 0.0000000000e+00
rra[2].cdp_prep[0].unknown_datapoints = 13
rra[2].cdp_prep[1].value = 8.8142857143e-02
rra[2].cdp_prep[1].unknown_datapoints = 11
rra[3].cf = "AVERAGE"
rra[3].rows = 3600
rra[3].cur_row = 1343
rra[3].pdp_per_row = 720
rra[3].xff = 1.0000000000e-03
rra[3].cdp_prep[0].value = 0.0000000000e+00
rra[3].cdp_prep[0].unknown_datapoints = 541
rra[3].cdp_prep[1].value = 2.8852595238e+00
rra[3].cdp_prep[1].unknown_datapoints = 474
rra[4].cf = "MAX"
rra[4].rows = 3600
rra[4].cur_row = 1784
rra[4].pdp_per_row = 48
rra[4].xff = 2.0000000000e-02
rra[4].cdp_prep[0].value = -inf
rra[4].cdp_prep[0].unknown_datapoints = 13
rra[4].cdp_prep[1].value = 4.4142857143e-02
rra[4].cdp_prep[1].unknown_datapoints = 11
rra[5].cf = "MAX"
rra[5].rows = 3600
rra[5].cur_row = 2409
rra[5].pdp_per_row = 336
rra[5].xff = 2.0000000000e-03
rra[5].cdp_prep[0].value = -inf
rra[5].cdp_prep[0].unknown_datapoints = 13
rra[5].cdp_prep[1].value = 4.4142857143e-02
rra[5].cdp_prep[1].unknown_datapoints = 11
rra[6].cf = "MAX"
rra[6].rows = 3600
rra[6].cur_row = 2751
rra[6].pdp_per_row = 720
rra[6].xff = 1.0000000000e-03
rra[6].cdp_prep[0].value = -inf
rra[6].cdp_prep[0].unknown_datapoints = 541
rra[6].cdp_prep[1].value = 5.7166666667e-02
rra[6].cdp_prep[1].unknown_datapoints = 474
I've been staring at all this for too long and can't come up with a
solution.
Merry Christmas
Henrik
From: henrikhegardt at hotmail.com
To: s.shipway at auckland.ac.nz; rrd-users at lists.oetiker.ch
Date: Wed, 15 Dec 2010 16:10:15 +0100
Subject: Re: [rrd-users] Questions about effective database parameters
Thank you for your reply!
For some reason I was thinking of the xff the other way around. I'm using your ideas, and it looks promising.
Regards Henrik
From: s.shipway at auckland.ac.nz
To: henrikhegardt at hotmail.com; rrd-users at lists.oetiker.ch
Subject: RE: [rrd-users] Questions about effective database parameters
Date: Wed, 15 Dec 2010 01:27:16 +0000
RRA:AVERAGE:0.5:30:720
RRA:AVERAGE:0.5:60:720
You need to set the XFF (the fraction of the data which must be known for an RRA to store a value) to be much lower; in fact, you might even want to make it as near to zero as you can, maybe 1/(#dp)
So, for the above, use:
RRA:AVERAGE:0.03:30:720
RRA:AVERAGE:0.01:60:720
and even make it smaller for other RRAs.
This is a rather clever way to get around the whole data normalisation thing; by making the step size 1s you avoid normalisation, but use a tiny XFF to make sure your 1-min RRA still stores the data as posted (and averages if you get multiple samples).
Steve
Steve Shipway
University of Auckland ITS
UNIX Systems Design Lead
s.shipway at auckland.ac.nz
Ph: +64 9 373 7599 ext 86487
From: rrd-users-bounces+s.shipway=auckland.ac.nz at lists.oetiker.ch [rrd-users-bounces+s.shipway=auckland.ac.nz at lists.oetiker.ch] on behalf of Henrik Hegardt [henrikhegardt at hotmail.com]
Sent: Tuesday, 14 December 2010 10:59 p.m.
To: rrd-users at lists.oetiker.ch
Subject: [rrd-users] Questions about effective database parameters
Hello.
I'm writing a program to monitor a server's activities. Its about response times for services on the server. There are quite many services and most of the written data are unknowns. The response times is quite crucial and would want to have as high resolution
as possible even though there are unknowns. If there's a response time I write it to the DB with 1 second interval though since there are several other services per rrd a update operation could look like 'update database.rrd 1292313983:U:U:U:U:U:U:U:0.012:U:U:U:U:U:U'.
I would like to store it for atleast 6 months and thus view it over that time. I'm not interested of if there was no value, but the value itself.
I can't tell if there will be a lot of updates during a time interval or none at all which should result in some of the entries won't even get a 'U' value (most probably).
I have worked with following
rrdtool create -s 1 \
DS:ds1:GAUGE:2:0:3600 \
...
RRA:AVERAGE:0.5:30:720
RRA:AVERAGE:0.5:60:720
RRA:AVERAGE:0.5:420:720
RRA:AVERAGE:0.5:1800:720
RRA:MAX:0.5:30:720
RRA:MAX:0.5:60:720
RRA:MAX:0.5:420:720
RRA:MAX:0.5:1800:720
This didn't work, since I believe there a lot more 'U' values than 0.5 and the resolution isn't good enough and really doesn't make sense according to what I'm trying to sample.
RRA:AVERAGE:0.5:1:86400 worked but then having a rra over 6 months (6*30*86400) will result in a big db and slow rendering of images. Any ideas?
Forgive my English.
_______________________________________________
rrd-users mailing list
rrd-users at lists.oetiker.ch
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.oetiker.ch/pipermail/rrd-users/attachments/20101222/a5349e98/attachment-0001.htm
More information about the rrd-users
mailing list