我最近在尝试神经节监测系统时遇到了RRD。Ganglia将监视数据存储在RRD中。我只是想知道,从可扩展性的角度来看,RRD是如何工作的?如果我可能有大量的数据要存储怎么办?就像神经节的情况一样,如果我想存储所有的历史监控统计数据,而不是仅存储最近具有特定TTL的数据,RRD是否足够好来处理这个问题?
是否有使用过RRD的人可以分享一些关于RRD如何扩展的经验,以及它与RDBMS甚至大表相比如何?
rrdtool的内置整合功能是可配置的,因此根据您的磁盘空间,您可以使用rrdtool存储的高精度数据的数量没有限制。此外,由于其设计,rrdtool数据库永远不需要清空或以其他方式维护,因此您可以将设置扩展到惊人的大小。显然,rrdtool需要足够的内存和快速磁盘来处理大数据,但这对于任何大数据步骤都是一样的。
有些人对rrdtools的能力感到困惑,因为你也可以在一个微小的嵌入式系统上运行它,当这些人开始在阁楼上的旧电脑上记录gb的数据,发现它不能应付,他们想知道…
RRD旨在随着时间的推移自动模糊(平均)您的数据,这样即使新数据不断到达,数据库的总大小也大致保持不变。
所以,只有当你想要一些历史数据,并且愿意随着时间的推移而失去精度时,它才有用。
换句话说,你不能真正地将RRD与标准SQL数据库或Bigtable进行比较,因为标准SQL和NoSQL数据库都精确地存储数据——你将准确地读取写入的数据。
然而,对于RRDtool,没有这样的保证。但它的速度使其成为各种监控解决方案的有吸引力的解决方案,其中只有最近的数据重要。