我有兴趣知道rrdtool是否有任何替代方法来记录时间序列数据.我正在寻找可以扩展以监控大量设备的东西.
从我在这个主题上看到的内容来看,当你用大量数据点击时,rrdtool就会受到I / O限制.由于我设想这可以扩展到大量要监控的设备,我很好奇是否有任何不会阻塞I / O的替代方案.优先使用sql,但不一定.
谢谢
解决方法
如果I / O性能是主要的担心,那么你想要查看类似于
rrdcached的东西,这在RRDTools的当前版本(1.4)中是可用的.
在每个数据源的每个值8个字节之后,I / O开销不是正在写入的数据的函数. I / O带宽来自于在写出之前需要读入整个扇区(通常为4k)的事实.突然写入8个字节,你已经读/写了8k字节.
rrdcached将所有这些写入合并在一起,因此当更新RRD时,有用数据(实际DS值)与浪费数据(扇区中的备用字节)的比率会降低.
当所有RRDTools检测到它运行时(通过环境变量),它将自动与rrdcached一起使用.这允许它们在需要时触发刷新,例如在从数据生成图形时.
虽然切换到基于sql的解决方案可能有助于考虑支持sql所需的额外I / O.考虑到你不倾向于在那种随机访问模式中使用RRD数据,数据库对于这个问题来说是一个大锤.虽然坚持使用RRDTool可以访问所有理解并可以使用文件的生态系统工具,这在您已经熟悉它时尤其有用.