> hi all,

> I am using rrdtool in an ARM A9 Cortex processor (Freescale iMX6q, 1GB

> RAM).

> There I create png graphs for a web server that runs on the same computer

> module.

>

> I am using a ramdrive , to minimize access to the rrd db and saving graphs

> times.

> But it still takes about 3 seconds to generate 12 graphs and I would like

> to reduce that time.

Try to display data which is already in the RRAs, without needing further

processing. What do I mean by this: if your RRA stores data in a 5-minute

resolution, make sure your graph is also 5 minutes per pixel column, and

the RRA contains enough data to display what you ask for.

End time should be the current time, rounded down to exactly 300 seconds.

Start time should be end time minus the amount of columns times 300

seconds. The RRA needs to contain enough rows to cover start to end.

Example numbers: unix time while writing this was 1446967168. Rounded down

to the nearest n*300 = int(1446967168/300)*300 = 4823223*300 = 1446966900.

Assuming a graph width of 400 pixels, the amount of time is 400*300=120000

seconds.

graph parameters: --end 1446966900 --start end-120000 --width 400

This way RRDtool does not have to do 'on the fly' consolidation at graph

time.

Of course you may want to have other step sizes, the same principle applies.

* desired amount of time to display / desired number of pixels = step size

of each RRA row

* desired number of pixels wide == minimum amount of rows in your RRA

* selecting an end time in the past => need more rows in your RRA

One more example: you want to display exactly one month's worth of data.

31 days * 24 hours = 744 hours. That graph would be too wide, so you want

to display 2 hours per pixel. This means you would want a RRA containing

7200 seconds per row. At the very minimum you need to keep 372 rows in

this RRA. 745 if you always want to be able to display last month.

At graph time you select an appropriate end time, round down to the next

whole hour, and so on similar to the previous example. If instead you

would not have this RRA containing 7200 seconds per row, then RRDtool

would have to need to compute the average of two 1-hour rows at graph

time, and do this 372 times. Or, worse, compute the average of 24 5-minute

rows, 372 times.

Another thing you may want to try is to run rrdtool in pipe mode. It needs

to load one time only, processing all 12 graphs.

HTH

Alex

_______________________________________________

rrd-users mailing list

[hidden email]
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users