使用 AWS 评估 InfluxDB 集群的写性能
作者:Todd Persen / 产品
2016年12月7日
导航至
在进行针对 InfluxData 的各种基准测试时,我们决定探索使用我们闭源 InfluxDB 企业产品进行 InfluxDB 集群扩展的各个方面,主要从写性能的角度来看。这些数据对于评估 InfluxDB 企业版是否适合其用例的开发者和架构师来说应非常有价值,同时也有助于为用户在真实环境中写性能方面提供一些初步的指导。 要阅读基准测试和方法的完整细节,请下载"使用 AWS 评估 InfluxDB 集群的写性能"技术论文,或观看标题为“集群创建和差异如何影响性能”的录播视频。我们的目标是创建一个一致、最新的比较,反映 InfluxDB 和 InfluxDB 企业版的最新的发展。我们将定期重新运行这些基准测试,并更新此文档中的发现。所有这些基准测试的代码都可在 GitHub 上找到。请随意在仓库中提出问题或拉取请求,或如果您有任何疑问、评论或建议,请随时提出。现在,让我们看看结果……
测试版本
InfluxDB 企业版:v1.1.0 InfluxDB 是一个用 Go 编写的开源时序数据库。其核心是一个定制的存储引擎,称为时间结构合并(TSM)树,该树针对时序数据进行了优化。通过一个名为 InfluxQL 的类似 SQL 的查询语言控制,InfluxDB 提供了开箱即用的支持,支持在时间范围内进行数学和统计函数,非常适合自定义监控和指标收集、实时分析,以及 IoT 和传感器数据工作负载。
关于基准测试
在构建此基准套件时,我们确定了一些与扩展写性能最相关的参数。正如我们将在下面更详细地描述的那样,我们考虑了三个维度的性能
- 数据节点数量
- 复制因子
- 批量大小
关于数据集
对于这个基准测试,我们关注了一个模拟常见的DevOps监控和指标用例的数据集,其中服务器群组定期在固定时间间隔报告系统和应用程序指标。我们每10秒采样9个子系统(CPU、内存、磁盘、磁盘I/O、内核、网络、Redis、PostgreSQL和Nginx)的100个值。对于关键比较,我们查看代表24小时内10,000台服务器的数据集,这代表了一个相当大的生产部署。我们还提供了一些关于这些比较如何随着更大的数据集(无论是持续时间还是服务器数量)进行扩展的信息。
- 服务器数量:1,000
- 每服务器测量的值:100
- 测量间隔:10秒
- 数据集持续时间(秒):24小时
- 数据集中总值:每天8,640,000,000
写入性能
InfluxDB企业版在写入方面水平扩展,显示数据节点数量最多可达到32个时的吞吐量增加为了实现最大的写入性能,请确保每个数据节点使用多个并发工作者。 使用更大的批量大小通常会提高集群的总写入吞吐量。
摘要
基准测试和结果数据表明,沿着这些方向,InfluxDB企业版通常
- 具有更多数据节点时实现更高的写入吞吐量
- 具有更高的复制因子时实现较低的写入吞吐量
- 具有更大的批量大小时实现更高的写入吞吐量
最令人兴奋的是,我们证明了32节点InfluxDB企业版集群能够处理超过1,110万次/秒的单次复制写入,以及超过930万次/秒的双倍复制写入。相比之下,InfluxDB的单个节点通常在接近1百万次/秒时达到峰值性能,即使在最强大的硬件上也是如此。我们强烈鼓励开发人员和架构师自行运行这些基准测试,以独立验证他们选择的硬件和数据集上的结果。然而,对于寻找有效起点以优化写入性能的设置的人来说,这些结果应作为缩放和优化InfluxDB企业版集群的有用指南。
接下来是什么
- Chronograf入门
- 下载TICK-stack现在在我们的“下载”页面上
- 云上部署:开始使用InfluxDB Cloud进行免费试用,包括完全管理的集群、Kapacitor和Grafana。
- 在您的服务器上部署:想在自己的服务器上运行InfluxDB集群吗?试试InfluxDB Enterprise的免费14天试用版,它具有直观的用户界面,可用于部署、监控和均衡集群,以及管理备份和恢复。InfluxDB Enterprise。