gpt4 book ai didi

windows - Elasticsearch:如何减少主分片的数量?

转载 作者:可可西里 更新时间:2023-11-01 11:23:09 25 4
gpt4 key购买 nike

我在使用 Elasticsearch 时遇到了一些困难。顺便说一句,我将 Elasticsearch 作为 Windows 服务运行。

注意事项:

  1. 我无法通过 Cerebro 连接到我的 Elasticsearch 集群(1 个节点) .
  2. Elasticsearch 请求超时。一开始,Kibana noticed the timeouts ,然后我开始进一步调查。
  3. 当我重新启动 Elasticsearch 服务时,需要很长时间才能启动。值得注意的是,当我运行 _cat/indices 时,索引需要很长时间才能从黄色变为红色。

我运行 _cluster/stats?human&pretty 并注意到以下内容:

  "indices": {
"count": 159,
"shards": {
"total": 793,
"primaries": 793,
"replication": 0.0,
"index": {
"shards": {
"min": 3,
"max": 5,
"avg": 4.987421383647798
},
"primaries": {
"min": 3,
"max": 5,
"avg": 4.987421383647798
},
"replication": {
"min": 0.0,
"max": 0.0,
"avg": 0.0
}
}
},
"docs": {
"count": 664553,
"deleted": 0
},
"store": {
"size": "525.8mb",
"size_in_bytes": 551382263
},
"fielddata": {
"memory_size": "0b",
"memory_size_in_bytes": 0,
"evictions": 0
},

我的问题:

  • 793 碎片是危险信号吗?我应该调整这个吗?

更新:我相信我分配了太多分片。

所以我修改后的问题是:

  • 如果我分配了太多分片,我该如何补救这种情况?
    • 具体来说,我应该缩小到多少个分片?
    • 我应该发出哪些命令来减少碎片的数量?
      • 特别是考虑到我的 Elasticsearch 集群(即 1 个节点)需要很长时间才能重新启动。

最佳答案

在 elasticsearch 的仅 1 个节点上拥有 793 个主分片是一个很大的NO。 Elasticsearch 的规模来自于它的分布式特性。另外,我注意到你没有任何副本,所以它也不可靠,如果一些主分片损坏,那么在这种情况下它们没有任何恢复机制。

关于您的问题,我应该缩小到多少个分片?
如果你有大数据(超过 100 GB),这完全取决于你的要求,你应该分成多个主分片,它们应该存在于多个节点上以提高性能(从小分片大小和另一个硬件中获得)并且它提供水平可扩展性(HS)。

但是,如果您的数据很小,即总索引大小只有几 GB,那么拥有多个分片也会损害性能,因为您的分片将只有少量数据,而将所有数据存储在一个分片中会大大提高性能在这种情况下。

请引用this有关分片策略的更多信息的指南。

您可以使用链接 https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-shrink-index.html 减少分片数量用户 The_Pingu 提供,但这也取决于您使用的 ES 版本。我建议,在走这条路之前,您应该考虑以下架构方面的问题。

  1. ES集群应该有多少个节点,一个节点的ES集群在生产中是绝对不推荐的,因为即使你在生产中有小数据也会失去高可用性。
  2. 您需要多少分片。
  3. 您需要多少个副本。 (尽管这可以在运行时轻松更改而无需太多开销)。

关于windows - Elasticsearch:如何减少主分片的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56280771/

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