问题:ElasticSearch 6.0.1:.../_forcemerge API 不能随更多线程扩展(被限制?)

我正在使用 ES 6.0.1 并且必须对许多索引执行频繁的索引打开/附加/关闭模式,通常来自不同的客户端并行。 (是的,我每次都要打开和关闭)

这导致每个索引有大量的小型 Lucene 段,并且所提到的序列随着时间的推移变得更慢(有时慢 2-5 倍)。默认的 ES 段合并策略显然做得不好。

当我使用Force MergeAPI 来合并索引中的段时,我的序列的性能对于已处理的索引恢复正常。但是,由于索引数量众多,我必须多次应用它来处理所有索引。自然,我在多个线程(连接)中运行它,但似乎 ES 从不并行此操作,并且合并的结果速率是相同的,无论我发出多少并行请求。

我在这里阅读并尝试了的内容,但这没有帮助。

有人可以为此建议任何 w/a 吗?

解答

您可以通过 elasticsearch 配置文件更改 force_merge 线程池的大小,例如:

thread_pool.force_merge.size: 5

并且不要忘记在配置更改后重新启动 Elasticsearch。

Logo

欢迎大家访问Elastic 中国社区。由Elastic 资深布道师,Elastic 认证工程师,认证分析师,认证可观测性工程师运营管理。

更多推荐