评估 InfluxDB 集群在 AWS 上的写入性能
作者:Todd Persen / 产品
2016 年 12 月 07 日
导航至
在针对 InfluxData 进行各种基准测试时,我们决定还探索使用我们的闭源 InfluxDB Enterprise 产品扩展 InfluxDB 集群的各个方面,主要是通过写入性能的角度。 除了帮助为用户在实际环境中对写入性能的期望建立一些粗略的指导原则之外,这些数据还应证明对评估 InfluxDB Enterprise 是否适合其用例的开发人员和架构师有价值。 要阅读基准测试和方法的完整详细信息,下载 “评估 InfluxDB 集群在 AWS 上的写入性能”技术论文,或观看题为:“集群创建和差异如何影响性能”的录制视频。我们进行此基准测试的目标是创建一个一致的、最新的比较,以反映 InfluxDB 和 InfluxDB Enterprise 的最新发展。 我们将定期重新运行这些基准测试,并使用我们的发现更新本文档。 所有这些基准测试的代码都在 GitHub 上可用。 如果您有任何问题、意见或建议,请随时在该存储库上打开问题或拉取请求。 现在,让我们看一下结果...
测试版本
InfluxDB Enterprise:v1.1.0 InfluxDB 是用 Go 编写的开源时间序列数据库。 其核心是名为 Time-Structured Merge (TSM) Tree 的定制存储引擎,该引擎针对时间序列数据进行了优化。 InfluxDB 由名为 InfluxQL 的自定义类 SQL 查询语言控制,为跨时间范围的数学和统计函数提供开箱即用的支持,非常适合自定义监控和指标收集、实时分析以及物联网和传感器数据工作负载。
关于基准测试
在构建此基准测试套件时,我们确定了几个与扩展写入性能最相关的参数。 正如我们将在下面更详细地描述的那样,我们研究了跨三个向量的性能
为了获得最大的写入性能,请确保每个数据节点使用多个并发工作线程。
使用更大的批处理大小通常会增加集群的总写入吞吐量。
- 数据节点数
- 复制因子
- 批处理大小
关于数据集
对于此基准测试,我们专注于一个数据集,该数据集模拟了常见的 DevOps 监控和指标用例,其中服务器群定期以固定的时间间隔报告系统和应用程序指标。 我们每 10 秒对 9 个子系统(CPU、内存、磁盘、磁盘 I/O、内核、网络、Redis、PostgreSQL 和 Nginx)中的 100 个值进行采样。 对于关键比较,我们查看了一个数据集,该数据集代表了 24 小时内 10,000 台服务器,这代表了一个相当规模的生产部署。 我们还提供了一些关于这些比较如何随着更大的数据集(包括持续时间和服务器数量)扩展的信息。
- 服务器数量:1,000
- 每个服务器测量的数值:100
- 测量间隔:10 秒
- 数据集持续时间:24 小时
- 数据集中的总数值:8,640,000,000/天
写入性能
InfluxDB Enterprise 可水平扩展以进行写入,显示最多 32 个数据节点的吞吐量增加


总结
基准测试和结果数据表明,沿着这些向量,InfluxDB Enterprise 通常应该
- 使用更多数据节点实现更高的写入吞吐量
- 使用更高的复制因子实现更低的写入吞吐量
- 使用更大的批处理大小实现更高的写入吞吐量
最令人兴奋的是,我们证明了 32 节点 InfluxDB Enterprise 集群能够处理超过 1110 万次/秒的单副本写入,以及超过 930 万次/秒的双副本写入。 相比之下,即使在性能最高的硬件上,InfluxDB 的单节点通常也只能达到略低于 100 万次/秒的峰值性能。 我们强烈建议开发人员和架构师自己运行这些基准测试,以独立验证其硬件和选择的数据集上的结果。 但是,对于那些正在寻找有效起点以了解哪些设置将有助于优化写入性能的用户,这些结果应作为扩展和优化 InfluxDB Enterprise 集群的有用指南。
下一步是什么
- Chronograf 入门
- TICK-stack 的下载已在我们的“下载”页面上线
- 云端部署:开始免费试用 InfluxDB Cloud,它具有完全托管的集群、Kapacitor 和 Grafana。
- 在您的服务器上部署:想在您的服务器上运行 InfluxDB 集群吗? 试用 InfluxDB Enterprise 的 14 天免费试用版,它具有用于部署、监控和重新平衡集群以及管理备份和恢复的直观 UI。