原地址:https://docs.influxdata.com/influxdb/v1.6/guides/hardware_sizing/node
警告!此页面记录了再也不积极开发的InfluxDB的早期版本。InfluxDB v1.7是InfluxDB的最新稳定版本。web
本指南为InfluxDB提供了通常硬件建议,并解决了有关硬件大小调整的一些常见问题。这些建议仅适用于时间结构合并树(TSM
)存储引擎,这是InfluxDB 1.4惟一可用的存储引擎。使用未转换 b1
或分bz1
片运行旧版本InfluxDB的用户可能具备不一样的性能特征。有关更多详细信息,请参阅InfluxDB 0.9大小调整指南。正则表达式
InfluxDB单节点实例是彻底开源的。InfluxDB集群须要咱们的闭源商业产品。单节点实例不提供冗余。若是服务器不可用,则写入和查询将当即失败。群集提供高可用性和冗余。多个数据副本分布在多个服务器上,任何一个服务器的丢失都不会对集群产生重大影响。数据库
若是您的性能要求属于中等或低负载范围,那么您可能会使用InfluxDB的单个节点实例。若是您的性能要求中至少有一个属于可能不可行的类别,那么您可能须要使用群集在多个服务器之间分配负载。后端
咱们经过每秒写入的字段数,每秒的查询数以及惟一系列的数量来定义您将在InfluxDB上放置的负载。根据您的负载,咱们提出通常的CPU,RAM和IOPS建议。服务器
InfluxDB应该在本地链接的SSD上运行。任何其余存储配置都具备较低的性能特征,而且可能没法从正常处理中的小中断中恢复。网络
加载 | 每秒字段写入 | 每秒中等查询次数 | 独特系列 |
---|---|---|---|
低 | <5千 | <5 | <10万 |
中等 | <25万 | <25 | <100万 |
高 | > 25万 | > 25 | > 100万 |
可能不可行 | > 75万 | > 100 | > 1000万 |
注意:查询对系统的影响差别很大。架构
简单查询:ide
- 几乎没有函数也没有正则表达式
- 是时间限制在几分钟,几小时或一天
- 一般在几毫秒到几十毫秒内执行
中等查询:函数
- 有多个函数和一个或两个正则表达式
- 也可能有复杂的
GROUP BY
条款或抽样多个星期的时间范围- 一般在几百或几千毫秒内执行
复杂查询:
- 具备多个聚合或转换函数或多个正则表达式
- 能够抽样几个月或几年的很是大的时间范围
- 一般须要多秒才能执行
这种规模的表现是一项重大挑战,可能没法实现。有关调整系统的帮助,请经过sales@influxdb.com与咱们联系。
群集必须至少有三个独立的元节点才能在丢失服务器后继续存在。具备2n + 1
元节点的集群能够容忍元节点的丢失n
。群集应该具备奇数个元节点。没有理由拥有偶数个元节点,而且它可能致使某些配置出现问题。
元节点不须要很大的计算能力。不管群集负载如何,咱们建议如下元节点:
只有一个数据节点的集群有效,但没有数据冗余。冗余由写入数据的保留策略上的复制因子设置。群集可能会丢失n - 1
数据节点并仍然返回完整的查询结果,其中n
是复制因子。为了在群集内进行最佳数据分发,InfluxData建议使用偶数个数据节点。
群集数据节点的硬件建议与独立实例建议相似。数据节点应始终至少具备2个CPU内核,由于它们必须处理常规读写流量以及群集内读写流量。因为群集通讯开销,群集中的数据节点处理的吞吐量低于同一硬件上的独立实例。
加载 | 每一个节点每秒写入字段 | 每一个节点每秒中等查询 | 每一个节点的惟一系列 |
---|---|---|---|
低 | <5千 | <5 | <10万 |
中等 | <10万 | <25 | <100万 |
高 | > 10万 | > 25 | > 100万 |
可能不可行 | > 50万 | > 100 | > 1000万 |
注意:查询对系统的影响差别很大。
简单查询:
- 几乎没有函数也没有正则表达式
- 是时间限制在几分钟,几小时或一天
- 一般在几毫秒到几十毫秒内执行
中等查询:
- 有多个函数和一个或两个正则表达式
- 也可能有复杂的
GROUP BY
条款或抽样多个星期的时间范围- 一般在几百或几千毫秒内执行
复杂查询:
- 具备多个聚合或转换函数或多个正则表达式
- 能够抽样几个月或几年的很是大的时间范围
- 一般须要多秒才能执行
Enterprise Web服务器主要是具备相似负载要求的HTTP服务器。对于大多数应用程序,它不须要很是强大。群集仅与一个Web服务器一块儿运行,但为了实现冗余,能够将多个Web服务器链接到单个后端Postgres数据库。
注意:生产集群不该使用SQLite数据库,由于它不容许冗余Web服务器,也不能像Postgres那样优雅地处理高负载。
一般,拥有更多RAM有助于查询返回更快。添加更多RAM没有已知的缺点。
影响RAM需求的主要组件是系列基数。即便有大量RAM,大约1000万或更高的系列基数也可能致使OOM失败。若是是这种状况,您一般能够经过从新设计架构来解决问题。
相对于系列基数的RAM需求的增长是指数的,其中指数在1到2之间:
InfluxDB旨在运行在SSD上。InfluxData不测试硬盘驱动器或网络存储设备,咱们不建议将它们用于生产。旋转磁盘驱动器的性能要低一个数量级,即便是中等负载,系统也可能会崩溃。为得到最佳结果,InfluxDB服务器必须在存储系统上至少具备1000 IOPS。
请注意,当群集从停机时间恢复时,群集数据节点的IOPS要求很是高。建议存储系统至少具备2000 IOPS以便快速恢复。低于1000 IOPS,群集可能没法从短暂停机中恢复。
数据库名称,度量,标记键,字段键和标记值仅存储一次,并始终做为字符串存储。只有字段值和时间戳存储每点。
非字符串值大约须要三个字节。字符串值须要由字符串压缩肯定的可变空间。
在生产环境中运行InfluxDB时,wal
目录和data
目录应位于不一样的存储设备上。当系统处于大量写入负载时,此优化可显着减小磁盘争用。若是写入负载高度可变,这是一个重要的考虑因素。若是写入负载变化不超过15%,则可能不须要优化。