【问题标题】:Difference in elasticsearch index size with same data and number of documents具有相同数据和文档数的弹性搜索索引大小的差异
【发布时间】:2021-10-20 15:53:56
【问题描述】:

我有多个 elasticsearch 集群,每个集群都有相同的索引和相同的数据和相同数量的文档。但是索引大小有很大的不同。 我尝试使用merge api,但它没有帮助。问题是,因为这个 elasticsearch 最终会耗尽空间:

{
    "state": "UNASSIGNED",
    "primary": true,
    "node": null,
    "relocating_node": null,
    "shard": 3,
    "index": "local-deals-1624295772015",
    "recovery_source":
    {
        "type": "EXISTING_STORE"
    },
    "unassigned_info":
    {
        "reason": "ALLOCATION_FAILED",
        "at": "2021-08-18T19:14:20.472Z",
        "failed_attempts": 20,
        "delayed": false,
        "details": "shard failure, reason [lucene commit failed], failure IOException[No space left on device]",
        "allocation_status": "deciders_no"
    }
}

我已将 elasticsearch 集群配置为每个节点不超过 2 个分片以提高查询性能。

集群 1:

集群 2:

鉴于这两个具有相同文档的集群,索引大小有 90% 的差异,这对我来说没有意义。有人可以解释这种行为吗?

我的快速解决方法是增加 EBS 音量。

回复@Val 的问题: 有多个文档被标记为删除。

"5": {
    "health": "yellow",
    "status": "open",
    "index": "local-deals-1624295772015",
    "uuid": "s7QDLtuhRN6HM_VwtVTB0Q",
    "pri": "6",
    "rep": "1",
    "docs.count": "8911560",
    "docs.deleted": "18826270",
    "store.size": "37gb",
    "pri.store.size": "19.9gb"
}

【问题讨论】:

  • 首先,在第二个集群中,您有副本分片已经贡献了 2 倍。您还可以分享GET _cat/indices?v 的结果吗?您可能有很多文档被标记为已删除(例如,如果您经常更新它们)。
  • @Val 感谢您的输入,有多个文档被标记为删除,所以这似乎是个问题?你知道如何彻底清理被删除的文件吗?
  • stackoverflow.com/a/20608904/2704032 这将删除文档并回收空间,但_forcemerge?only_expunge_deletes=true API 的问题在于,它是一个阻塞调用,它会使 elasticsearch 集群对搜索请求没有响应。

标签: elasticsearch lucene


【解决方案1】:

您确实可以尝试运行 _forcemerge。这不是阻塞调用,它会触发一个异步任务,该任务将在后台运行,直到作业完成。 您无需等待调用返回即可强制合并段。

也知道这不会删除所有已删除的文档,但会根据已删除/文档的比率删除大量文档。

您可以在 MergePolicyConfig.java 类中找到有关不同合并设置的更多信息。

【讨论】:

  • 我正在阅读这份文件aws.amazon.com/premiumsupport/knowledge-center/…,上面写着The force merge operation triggers an I/O intensive process and blocks all new requests to your cluster until the merge is complete
  • 这是不正确的,您仍然可以在 forcemerge 运行时在集群上执行查询。不过,这是一个资源密集型操作,您应该小心触发它,不要在高峰期
  • 不知道有没有什么设置可以让elasticsearch运行合并操作运行得更频繁?
  • 它一直在运行,看这个视频:youtube.com/watch?v=YW0bOvLp72E
猜你喜欢
  • 1970-01-01
  • 2023-02-06
  • 1970-01-01
  • 2016-02-04
  • 2015-12-18
  • 2021-04-21
  • 2016-03-28
  • 1970-01-01
  • 2023-03-26
相关资源
最近更新 更多