是否可以在forcemerge时指定只清理一个段里的deleted文档,不合并2个段
Elasticsearch | 作者 wangxinrong | 发布于2025年01月10日 | 阅读数:1335
我这边有个索引,因为数据量大,deleted文档数量多,而且增长缓慢,所以一个月内查询的cpu使用率波动幅度很大。
月初做完forcemerge?only_expunge_deletes=true之后,可能cpu只有10%不到,到月末cpu就到40-50%了。
所以我想加大forcemerge的频率,但是我测试发现,要满足合并条件,好像必须是找2个大小相近的段做合并。
假如deleted文档还没到33%我就执行only_expunge_deletes,要么它达不到段合并的条件,不会清理deleted文档,要么就是我用max_num_segments强制它做合并,这种很容易产生一个更大的段,之后再要让deleted数量达到33%的清理阈值,时间就更久了。
有办法让它只清理deleted文档,不产生更大的段吗?
月初做完forcemerge?only_expunge_deletes=true之后,可能cpu只有10%不到,到月末cpu就到40-50%了。
所以我想加大forcemerge的频率,但是我测试发现,要满足合并条件,好像必须是找2个大小相近的段做合并。
假如deleted文档还没到33%我就执行only_expunge_deletes,要么它达不到段合并的条件,不会清理deleted文档,要么就是我用max_num_segments强制它做合并,这种很容易产生一个更大的段,之后再要让deleted数量达到33%的清理阈值,时间就更久了。
有办法让它只清理deleted文档,不产生更大的段吗?
1 个回复
Fred2000 - 与其抱怨世界,不如改变自己
赞同来自: