[rrd-users] How are the updates to an RRD file written to disk?

Tobias Oetiker tobi at oetiker.ch
Fri Oct 1 20:01:04 CEST 2010

Hi Andy,

Today Andy Fleming wrote:

> This is actually a followup to a question one of my co-workers posted
> last week.  I think what I was really wanting to know might have gotten
> lost in the translation.  I'm not really worried about memory or CPU,
> but rather Disk I/O.  I got burned bad before when a former co-worker
> went graph crazy.
> When an existing RRD file is updated, it is of course the same size file
> before and after the update.  However, how is the file actually
> updated/written.  Is it the case that only the new value is written in
> the file, overwriting the previous value and some sort of pointer updated.

yes ...

> OR
> Is the entire RRD file re-written each time its updated?  Beyond how,
> how about when a consolidation occurs?  I realize this might depend on
> version of RRD tool, how its compiled, OS, etc, but hopefully you all
> can give me a little insight.


> I realize that a lot of you are saying rrdcache helps, but when working
> within a product with a support contract (even if its open source),
> sometimes one has to wait till the vendor implements it.  I think in
> this case since we are using Zenoss Enterprise with a support contract,
> I'm going to have to do any tuning, etc via the OS and Disk Sub-System
> for now and not count on being able to use rrdcache.

note that the main bottle neck here is that the os has to read AND
write the rrd file ... if you can make is so that the interesting
blocks of the rrds reside in cache, performance will be much
improved as no reading bottleneck ocures anymore ...

make sure you use a curent version of rrd (1.3 at least) as the
cache usage has been improved ...


> Thanks for any thoughts or insights you all might have.
> Andy

Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland
http://it.oetiker.ch tobi at oetiker.ch ++41 62 775 9902 / sb: -9900

More information about the rrd-users mailing list