gpt4 book ai didi

elasticsearch - Elasticsearch中滚动索引的资源使用情况

转载 作者:行者123 更新时间:2023-12-02 23:00:03 24 4
gpt4 key购买 nike

我的问题主要基于以下文章:
https://qbox.io/blog/optimizing-elasticsearch-how-many-shards-per-index

本文建议不要在每个节点上使用多个分片,这有两个原因:

  • 每个分片本质上是一个Lucene索引,它消耗文件句柄,内存和CPU资源
  • 每个搜索请求都将触摸索引中每个分片的副本。当分片争用相同的硬件资源时,争用就会出现并且性能会下降

  • 本文主张将滚动索引用于看到很多写入和更少读取的索引。

    问题:
  • 如果旧索引保持开放状态,是否会出现Lucene索引占用资源的问题?
  • 在包含多个索引和许多分片的较大时间范围内进行搜索时,是否会出现争用问题?
  • 搜索许多小索引与搜索一个大索引相比如何?

  • 我应该提到的是,在我们的特定情况下,只有一个ES节点,但是对于SO读者来说,当然,适用的答案当然会更有用。

    最佳答案

    当涉及到集群规模确定时,要制定出通用的最佳实践和准则非常困难,因为它取决于很多因素。如果您问五位ES专家,您会得到十个不同的答案。

    经过几年的纠缠和摆弄ES,我发现最适合我的方法是始终从小开始(一个节点,您的应用需要多少索引,每个索引一个分片),加载代表性数据集(理想情况下)您的完整数据集)并进行负载测试直至死亡。负载测试场景应代表您在生产高峰时段在生产环境中正遇到(或预期)的实际最大负载。

    增加群集的容量(添加分片,添加节点,调整旋钮等),直到通过负载测试为止,并确保将容量增加几个百分点,以便将来进行增长。您不希望现在的生产状况良好,而是希望从现在开始一年内保持良好状态。当然,这将取决于您的数据增长速度,并且不太可能以100%的把握预测从现在开始一年之内的情况。因此,一旦负载测试通过,如果我希望数据呈指数级增长,通常我会在几个月或一年之内重新访问集群拓扑,通常将容量增加50%以上。

    因此,回答您的问题:

  • 是的,如果旧索引保持打开状态,则会消耗资源。
  • 是的,您搜索的索引越多,遍历每个索引的每个分片所需要的资源就越多。别名跨越许多滚动索引(尤其是在单个节点上)时要小心
  • 回答的范围太广,因为它再次取决于我们正在讨论的数据量以及您要发送的查询类型,它是否使用聚合,排序和/或脚本编写等。
  • 关于elasticsearch - Elasticsearch中滚动索引的资源使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36759228/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com