具有相同数据和文档数量的弹性搜索索引大小的差异
Difference in elasticsearch index size with same data and number of documents
我有多个 elasticsearch 集群,每个集群都有相同的索引、相同的数据和相同数量的文档。但索引大小存在显着差异。
我尝试使用 merge
api 但它没有帮助。问题是,因为这个 elasticsearch 最终是 运行 out of space:
{
"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"
}
你可以尝试 运行 _forcemerge 确实。它不是阻塞调用,它会触发一个异步任务,该任务将 运行 在后台运行,直到作业完成。
您无需等待调用 return 即可强制合并段。
还知道这不会删除所有已删除的文档,但会删除大量文档,具体取决于比率 deleted/docs。
您可以在 MergePolicyConfig.java
class.
中找到有关不同合并设置的更多信息
我有多个 elasticsearch 集群,每个集群都有相同的索引、相同的数据和相同数量的文档。但索引大小存在显着差异。
我尝试使用 merge
api 但它没有帮助。问题是,因为这个 elasticsearch 最终是 运行 out of space:
{
"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"
}
你可以尝试 运行 _forcemerge 确实。它不是阻塞调用,它会触发一个异步任务,该任务将 运行 在后台运行,直到作业完成。 您无需等待调用 return 即可强制合并段。
还知道这不会删除所有已删除的文档,但会删除大量文档,具体取决于比率 deleted/docs。
您可以在 MergePolicyConfig.java
class.