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