使用存储引擎在InfluxDB集群上实现每秒1百万个值的写入
作者:Paul Dix / 产品
2016年11月10日
导航至
在分布式数据库中,每秒达到100万个写操作是一个常见的基准目标。在过去的一年中,我们一直在朝着这个目标优化,因为我们从头开始构建存储引擎,在InfluxDB Cloud和InfluxDB企业服务中发布了多个集群版本,并对我们的实现语言Go进行了优化。在这段时间里,我们一直在测试集群,并不断改进性能和稳定性。随着即将发布的InfluxDB 1.1版本,我们在非常有限的配置下实现了超过每秒100万个值的写入。在这篇文章中,我们将探讨一些配置,并给出测试代码的指针。
我们在AWS的多个配置上进行了测试。最小配置为4个m4.4xlarge实例作为数据节点运行,复制因子为2。使用这种配置,我们实现了每秒100万个写操作。显然,您的结果可能会有所不同,我们建议使用更大的设置来以100%的负载运行,但我们认为这是一个很好的起点。在接下来的几个版本中,我们将提高吞吐量,并获得更好的数据,但让我们先看看目前的状况。
我们在AWS M4实例上进行了测试,使用了1、2和3的复制因子。与其它分布式数据库不同,InfluxDB不需要用户三倍复制数据,这可以提供良好的吞吐量和节省磁盘空间。使用4个m4.4xlarge实例,一个InfluxDB集群可以持续以每秒1百万条的速度写入,总共写入10亿条值。写入通过HTTP协议使用influx-stress负载测试工具进行批量处理。
我们还测试了一个5节点集群,使用m4.4xlarge实例和3的复制因子,可以持续以每秒1百万条的速度写入。以下图表跟踪了测试过程中硬件的CPU、内存和磁盘利用率,您可以看到活动是一致且稳定的。
最后,我们测试了一个5节点的大型集群,复制因子为2,每秒写入1.5百万条。在现实世界的场景中,用户可能希望有额外的空间。大多数现实世界的生产安装可能需要在这些测试中2倍于硬件。
即使在现实世界的生产环境中,InfluxDB也能在比其他分布式数据库更便宜、更小的足迹上达到每秒1百万条写入。在接下来的几周内,我们将更新我们的技术性能论文,包括与集群设置的对比。我们还将对大型集群进行基准测试,以实现每秒1000万条写入。
接下来是什么
- 下载已经在我们的“下载”页面上线
- 在云上部署:免费试用InfluxDB Cloud,它包含完全管理的集群、Kapacitor和Grafana。
- 在您的服务器上部署:想在自己的服务器上运行InfluxDB集群?免费试用14天的InfluxDB Enterprise,它包含直观的UI,用于部署、监控和平衡集群,以及管理备份和恢复。
- 讲述您的故事:超过100家公司分享了他们如何通过InfluxDB取得成功的经历。提交您的评价,作为感谢,您将获得限量版卫衣。