使用 AWS 评估 InfluxDB 集群的写性能

导航至

在进行针对 InfluxData 的各种基准测试时,我们决定探索使用我们闭源 InfluxDB 企业产品进行 InfluxDB 集群扩展的各个方面,主要从写性能的角度来看。这些数据对于评估 InfluxDB 企业版是否适合其用例的开发者和架构师来说应非常有价值,同时也有助于为用户在真实环境中写性能方面提供一些初步的指导。 要阅读基准测试和方法的完整细节,请下载"使用 AWS 评估 InfluxDB 集群的写性能"技术论文,或观看标题为“集群创建和差异如何影响性能”的录播视频我们的目标是创建一个一致、最新的比较,反映 InfluxDB 和 InfluxDB 企业版的最新的发展。我们将定期重新运行这些基准测试,并更新此文档中的发现。所有这些基准测试的代码都可在 GitHub 上找到。请随意在仓库中提出问题或拉取请求,或如果您有任何疑问、评论或建议,请随时提出。现在,让我们看看结果……

测试版本

InfluxDB 企业版:v1.1.0 InfluxDB 是一个用 Go 编写的开源时序数据库。其核心是一个定制的存储引擎,称为时间结构合并(TSM)树,该树针对时序数据进行了优化。通过一个名为 InfluxQL 的类似 SQL 的查询语言控制,InfluxDB 提供了开箱即用的支持,支持在时间范围内进行数学和统计函数,非常适合自定义监控和指标收集、实时分析,以及 IoT 和传感器数据工作负载。

关于基准测试

在构建此基准套件时,我们确定了一些与扩展写性能最相关的参数。正如我们将在下面更详细地描述的那样,我们考虑了三个维度的性能
  1. 数据节点数量
  2. 复制因子
  3. 批量大小
这些趋势相对简单。我们预计随着数据节点数量的增加和批量大小的增加,吞吐量将增加,而随着复制因子的增加(因为复制因子意味着数据必须在集群中多次写入),吞吐量将降低。

关于数据集

对于这个基准测试,我们关注了一个模拟常见的DevOps监控和指标用例的数据集,其中服务器群组定期在固定时间间隔报告系统和应用程序指标。我们每10秒采样9个子系统(CPU、内存、磁盘、磁盘I/O、内核、网络、Redis、PostgreSQL和Nginx)的100个值。对于关键比较,我们查看代表24小时内10,000台服务器的数据集,这代表了一个相当大的生产部署。我们还提供了一些关于这些比较如何随着更大的数据集(无论是持续时间还是服务器数量)进行扩展的信息。
  • 服务器数量:1,000
  • 每服务器测量的值:100
  • 测量间隔:10秒
  • 数据集持续时间(秒):24小时
  • 数据集中总值:每天8,640,000,000
这仅是整个基准测试套件的一部分,但它是一个具有代表性的例子。如果您对更多细节感兴趣,可以阅读有关GitHub上的测试方法的更多信息。

写入性能

InfluxDB企业版在写入方面水平扩展,显示数据节点数量最多可达到32个时的吞吐量增加显示吞吐量增加至32个数据节点为了实现最大的写入性能,请确保每个数据节点使用多个并发工作者。 每个数据节点使用多个并发工作者使用更大的批量大小通常会提高集群的总写入吞吐量。 持续的写入吞吐量

 

摘要

基准测试和结果数据表明,沿着这些方向,InfluxDB企业版通常

  • 具有更多数据节点时实现更高的写入吞吐量
  • 具有更高的复制因子时实现较低的写入吞吐量
  • 具有更大的批量大小时实现更高的写入吞吐量
最令人兴奋的是,我们证明了32节点InfluxDB企业版集群能够处理超过1,110万次/秒的单次复制写入,以及超过930万次/秒的双倍复制写入。相比之下,InfluxDB的单个节点通常在接近1百万次/秒时达到峰值性能,即使在最强大的硬件上也是如此。我们强烈鼓励开发人员和架构师自行运行这些基准测试,以独立验证他们选择的硬件和数据集上的结果。然而,对于寻找有效起点以优化写入性能的设置的人来说,这些结果应作为缩放和优化InfluxDB企业版集群的有用指南。

接下来是什么

  • Chronograf入门
  • 下载TICK-stack现在在我们的“下载”页面上
  • 云上部署:开始使用InfluxDB Cloud进行免费试用,包括完全管理的集群、Kapacitor和Grafana。
  • 在您的服务器上部署:想在自己的服务器上运行InfluxDB集群吗?试试InfluxDB Enterprise的免费14天试用版,它具有直观的用户界面,可用于部署、监控和均衡集群,以及管理备份和恢复。InfluxDB Enterprise