> 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 [email protected] https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
