elasticsearch - Influxdb(单节点)扩展到每秒200次写入

标签 elasticsearch time-series influxdb

每秒可写入influxdb(单个节点)的最大点数是多少?在不使用付费集群的情况下扩展influxdb是否可行?如果我预计大约有60个并发用户,我应该考虑使用Elasticsearch而不是Influxdb来获取时间序列数据(〜3000字节/秒/用户)吗?

最佳答案

取决于硬件。

限制因素是

  • DB中的系列基数(总唯一系列)
  • WAL磁盘吞吐量(如果没有SSD,可以将其放在tmpfs上)
  • 数据磁盘吞吐量(使用SSD可获得最佳结果)
  • RAM(越多越好)
  • 用于摄取,建立索引和查询的CPU

  • 一个节点可以走多远,很大程度上取决于这些因素和工作量。

    对于低基数的繁重写工作负载,假定使用SSD并相应地优化了磁盘I / O,则CPU通常会比其他任何东西都快耗尽。

    此后,基数是最大的限制因素。 Schema design扮演着巨大的角色,比节点数大得多。

    根据我所做的一些基准测试,单个节点可以轻松扩展至每秒约70K系列,而CPU是限制因素。但是,这是旧版本,可能比现在更高。同样,很大程度上取决于数据和架构设计。

    通过添加单独的节点来在不使用付费群集的情况下扩展它是可行的,但是如果您要保持同质 View (所有数据的单一来源),则不可行。垂直缩放(更多CPU,RAM)仅在基数保持一致的情况下才有效,这意味着大约相同数量的序列需要更多数据点。

    InfluxDB建议在单个节点上每秒可以进行25万次每秒高达25万次查询,每秒最多250K次写入。参见hardware guidelines

    对于单个节点的数据量来说,绰绰有余-数据的大小无关紧要,而系列的数目却足够。避免对时间序列数据进行 flex 搜索-需要更多的基础结构来处理相同数量的数据。

    关于elasticsearch - Influxdb(单节点)扩展到每秒200次写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46554956/

    相关文章:

    elasticsearch - 使用 sum 聚合的 Elasticsearch 查询中的问题

    c# - 在 ElasticSearch 上使用 NEST - 我如何使用部分填充的对象作为搜索条件

    mysql - 在 MySQL 中存储时间序列的最佳方式是什么?

    php - InfluxDB 2.0 被 OOM 杀死

    mysql - 从 influxdb 查询数据并将其存储到测量(表)中

    elasticsearch - 按分数排序聚合桶

    elasticsearch - 设置可以从不同数据类型返回建议的 Elasticsearch suggesters

    python - 在 Python 中确定重叠时间序列的最有效方法

    algorithm - 运动数据对比

    java - 无法从 Influx 数据库检索列