← Back to team overview

graphite-dev team mailing list archive

Re: [Question #177524]: can graphie scale to Ks of nodes at frequencies of seconds

 

Question #177524 on Graphite changed:
https://answers.launchpad.net/graphite/+question/177524

    Status: Open => Answered

Nicholas Leskiw proposed the following answer:
So, first off, carbon nodes can be distributed.  You can make a whole
cluster of carbon nodes and use consistent hashing to distribute the
storage work to many systems. The webapp will then query all the nodes
in the cluster to get the data it needs to draw graphs.

Second, we are typically I/O bound.  I think there's only been a couple
of cases where CPU became an issue, on a system using SSD arrays (And I
want to say they managed to push about 1M metrics a minute? Chris,
correct me if I'm wrong.)  Throwing more hardware at it (especially
distributed systems and faster disks) helps.

Also, send Python pickle data rather than plaintext data. That will save
some network bandwidth and those can be processed more efficiently.

Graphite *can* roll-up old data, but as of the latest version, this is
controlled by the user.  You can also choose *not* to roll-up data, by
specifying only a single retention rate in storage-schemas.conf - then
graphite will never change your data.  One gotcha that some people run
into is that by default, if there's more datapoints than horizontal
pixels in a graph, graphite averages the values by default, but you can
change the behavior by using the cumulative() function in your graphs.
Then it will add all the values rather than averaging them.  (Is this
what you were worried about when you said 'normalize' data?)

Lastly, Graphite cannot currently handle sub-second precision.

-- 
You received this question notification because you are a member of
graphite-dev, which is an answer contact for Graphite.