InfluxDB 与 Splunk 在时序数据、指标和管理方面的比较
作者:Chris Churilo / 产品, 用例
2019 年 8 月 12 日
导航至
在 InfluxData,我们经常被开发者和架构师问到的一个问题是:“对于时序工作负载,InfluxDB 与 Splunk 相比如何?” 提出这个问题可能有几个原因。首先,如果他们正在启动一个全新的项目,并且正在尽职调查地对几个解决方案进行正面比较,那么这有助于创建他们的比较网格。其次,他们可能已经在现有的监控设置中使用 Splunk 来提取日志,但现在想了解如何将指标收集集成到他们的系统中,并弄清楚是否有比 Splunk 更好的解决方案来完成这项任务。
在过去几周,我们着手比较 InfluxDB 和 Splunk 在时序工作负载方面的性能和功能,特别是关注数据摄取率、磁盘数据压缩和查询性能。基准测试和结果数据表明,InfluxDB 在数据摄取、磁盘存储和查询性能方面均显著优于 Splunk。具体而言,InfluxDB 的平均吞吐量提高了 17 倍,而对于相同的数据集,与 Splunk 所需的存储空间相比,磁盘空间减少了近 17 倍,并且对于测试的查询,响应时间比 Splunk 的查询响应时间快 25 倍
我们认为,这些数据对于评估这两种技术在以下用例中的适用性的工程师来说将非常有价值:特别是涉及自定义监控和指标收集、实时分析、物联网 (IoT) 和传感器数据,以及容器或虚拟化基础设施指标的时序用例。基准测试练习并未考察 InfluxDB 在时序以外的工作负载中的适用性。InfluxDB 并非旨在满足全文搜索或日志管理用例,因此不在本文讨论范围之内。同样,我们认识到 Splunk 最初是作为日志管理解决方案开发的,指标是在 Splunk 7.0 版本中引入的。我们强烈鼓励开发者和架构师自行运行这些基准测试,以独立验证他们在所选硬件和数据集上的结果。
要阅读基准测试和方法的完整详细信息,请下载“InfluxDB 与 Splunk 在时序数据、指标和管理方面的基准测试”技术论文。
我们的首要目标是创建一个一致且最新的比较,以反映 InfluxDB 和 Splunk 的最新发展,并在以后涵盖其他数据库和时序解决方案。我们将定期重新运行这些基准测试,并使用我们的发现更新详细的技术论文。所有这些基准测试的代码都可以在 Github 上找到。如果您有任何问题、意见或建议,请随时在该存储库上打开 issue 或 pull request。
现在,让我们来看看结果...
测试版本
InfluxDB v1.7.7 InfluxDB 是一个用 Go 编写的开源时序数据库。其核心是一个名为 Time-Structured Merge (TSM) Tree 的自定义构建存储引擎,该引擎针对时序数据进行了优化。InfluxDB 由名为 InfluxQL 的自定义类似 SQL 的查询语言控制,为跨时间范围的数学和统计函数提供开箱即用的支持,非常适合自定义监控和指标收集、实时分析以及物联网和传感器数据工作负载。
Splunk 测试版本:v7.3.0 Splunk 是一种日志管理解决方案,用于应用程序管理、安全性和合规性,以及业务和 Web 分析。其核心产品收集和分析大量机器生成的数据(也称为日志)。它使用标准 API 直接连接到应用程序和设备,可用于搜索、分析和可视化机器生成的数据,包括从网站、应用程序、传感器和设备等收集的事件、指标和日志。
从 Splunk 7.0 版本开始,引入了对指标存储和检索的支持。请务必注意,这些基准测试仅针对 Splunk 的指标存储和检索功能。如上所述,在构建具有代表性的基准测试套件时,我们确定了处理时序数据最常评估的特征。我们研究了三个向量的性能
- 数据摄取性能 – 以每秒值数衡量
- 磁盘存储需求 – 以字节为单位衡量
- 平均查询响应时间 – 以毫秒为单位衡量
关于数据集
对于此基准测试,我们专注于一个模拟常见 DevOps 监控和指标用例的数据集,其中服务器集群定期以固定时间间隔报告系统和应用程序指标。我们每 10 秒对九个子系统(CPU、内存、磁盘、磁盘 I/O、内核、网络、Redis、PostgreSQL 和 Nginx)中的 100 个值进行采样。对于关键比较,我们查看了一个代表 100 台服务器在 24 小时内的数据集,这代表了一个相对适度的部署。
- 服务器数量:100
- 每台服务器测量的数值:100
- 测量间隔:10 秒
- 数据集持续时间:24 小时
- 数据集中的总数值:每天 8700 万
这只是整个基准测试套件的一个子集,但它是一个具有代表性的示例。如果您对更多详细信息感兴趣,可以在 GitHub 上阅读有关测试方法的更多信息。
写入性能
在数据摄取方面,InfluxDB 的性能比 Splunk 高出 17 倍。
磁盘压缩
对于时序数据,InfluxDB 的压缩性能比 Splunk 高出 17 倍。
查询性能
对于时序数据,InfluxDB 的查询性能最高可快 25 倍。
总结
最终,你们中的许多人可能不会感到惊讶,即专门构建的用于处理指标的时序数据库在这些类型的工作负载方面将显著优于搜索数据库。尤其显眼的是,当工作负载需要可扩展性时,就像实时分析和传感器数据系统的常见特征一样,像 InfluxDB 这样的专用时序数据库会带来巨大的不同。
总之,我们强烈鼓励开发者和架构师自行运行这些基准测试,以独立验证他们在所选硬件和数据集上的结果。但是,对于那些正在寻找有效的起点,以确定哪种技术将提供更好的时序数据摄取、压缩和“开箱即用”的查询性能的人来说,InfluxDB 在所有这些维度上都是明显的赢家,尤其是当数据集变得更大且系统运行时间更长时。
下一步是什么?
- 下载详细的技术论文:“InfluxDB 与 Splunk 在时序数据、指标和管理方面的基准测试”。
- 下载并开始使用 InfluxDB。
- 加入社区!