InfluxDB 在时序数据与指标基准测试中显著优于 OpenTSDB
作者:Chris Churilo / 产品,用例
2018年2月6日
导航至
本博客文章于2018年2月6日更新,包含 InfluxDB 1.4.2 和 OpenTSDB v2.3.0 的最新基准测试结果。为了提供最新发现,本博客会定期更新最新的基准数据。
在 InfluxData,最近几个月我们经常被开发人员和架构师问到同样的问题:“InfluxDB 与 OpenTSDB 在时序工作负载方面如何比较?”这个问题可能由几个原因引起。首先,如果他们正在启动一个新的项目,并正在进行评估几个解决方案的头对头比较,这有助于创建他们的比较表格。其次,他们可能已经在现有的监控设置中使用 OpenTSDB 来处理日志,但现在希望看到他们如何将指标收集集成到系统中,并相信可能存在比 OpenTSDB 更好的解决方案来完成这项任务。
在过去的几周里,我们着手比较 InfluxDB 和 OpenTSDB 在常见时序工作负载中的性能和功能,特别是查看数据摄入率、磁盘上的数据压缩和查询性能。InfluxDB 在所有三项测试中都优于 OpenTSDB,每台服务器的写入吞吐量提高了 9 倍,与 OpenTSDB 的时序优化配置相比,磁盘空间减少了 8 倍,测试查询的响应时间提高了 7 倍。
值得注意的是,OpenTSDB 使用 Apache HBase 作为其存储后端,需要大量的设置、配置和调整才能实现最佳写入和查询性能,并且通常需要一个单独的团队来管理 HBase 和 HDFS 部署。另一方面,InfluxDB 针对时序工作负载已准备好使用,无需额外配置,并具有针对时序工作设计的数据模式和查询语言。
要阅读基准测试和方法的完整细节,请下载“基准测试 InfluxDB 与 OpenTSDB 时序数据、指标与管理”技术论文,或观看录制的网络研讨会。
我们的主要目标是创建一个一致且最新的比较,反映 InfluxDB 和 OpenTSDB 的最新发展。我们将定期重新运行这些基准测试,并更新我们的详细技术论文。所有基准测试的代码均可在GitHub上找到。如果您有任何问题、评论或建议,请随时在该存储库上提交问题或拉取请求。
现在,让我们来看看结果……
测试版本
InfluxDB v1.4.2
InfluxDB是一个用Go语言编写的开源时序数据库。其核心是一个名为时间结构合并树(TSM Tree)的自定义存储引擎,它针对时序数据进行了优化。通过名为InfluxQL的自定义SQL类似查询语言控制,InfluxDB提供了对时间范围内数学和统计函数的支持,非常适合自定义监控和指标收集、实时分析以及物联网和传感器数据处理。
OpenTSDB v2.3.0
OpenTSDB是一个用Java编写的可扩展分布式时序数据库,它构建在HBase之上。它不是一个独立的时序数据库,依赖于HBase作为其数据存储层,因此OpenTSDB时序数据守护进程实际上提供了具有无实例之间共享状态的查询引擎的功能。此外,OpenTSDB主要设计用于生成仪表板可视化,因此它并不总是返回任意时间范围内的精确数据。请注意,我们将HBase复制因子设置为1,以实现最公平的比较。
关于基准测试
在构建一个代表性的基准测试套件时,我们确定了使用时序数据最常评估的特性。我们观察了三个方面的性能
- 数据摄取性能 – 以每秒每服务器值数来衡量
- 磁盘存储需求 – 以字节衡量
- 平均查询响应时间 – 以毫秒衡量
关于数据集
对于这个基准测试,我们关注了一个模拟服务器群集定期以固定时间间隔报告系统和应用程序指标的常见DevOps监控和指标用例数据集。我们每10秒采样100个值,涉及9个子系统(CPU、内存、磁盘、磁盘I/O、内核、网络、Redis、PostgreSQL和Nginx)。对于关键的比较,我们查看代表100台服务器在24小时内数据的集,这代表了一个相对适中的部署。
- 服务器数量:100
- 每服务器测量的值:100
- 测量间隔:10秒
- 数据集持续时间(秒):24小时
- 数据集总值:每天8700万
这只是一个基准测试套件的子集,但它是具有代表性的例子。如果您对更多细节感兴趣,可以在GitHub上了解更多关于测试方法的信息。
写入性能
在数据摄取方面,InfluxDB比OpenTSDB高出9倍。
磁盘压缩
InfluxDB通过提供8倍更好的压缩率优于OpenTSDB。
查询性能
InfluxDB通过提供至少7倍更好的查询吞吐量优于OpenTSDB。
总结
OpenTSDB和InfluxDB都是时序数据库。然而,OpenTSDB在运行生产环境时需要多个数量级的更多管理开销,并且需要在许多应用特定的调整之后才能达到性能水平。即便如此,当在数据上运行即兴查询时,它也并不完全正确。InfluxDB设置简单,使用方便,且返回正确的查询结果。
总之,我们强烈建议开发人员和架构师自行运行这些基准测试,以独立验证其硬件和数据集上的结果。然而,对于那些寻找一个有效的起点,即哪种技术能提供更好的时序数据摄取、压缩和查询性能“开箱即用”的人来说,InfluxDB在这些维度上都是明显的赢家,尤其是在数据集变得更大且系统运行时间更长的情况下。
接下来是什么?
- 下载详细技术文档:“InfluxDB 与 OpenTSDB 在时间序列数据与指标管理中的基准测试”。
- 下载并开始使用 InfluxDB。
- 观看配套网络研讨会视频回放:点击这里。
- 下载并开始使用 InfluxDB。
- 加入社区!