gpt4 book ai didi

elasticsearch - ElasticSearch 和 Lucene 是如何共享内存的

转载 作者:行者123 更新时间:2023-11-29 02:47:58 30 4
gpt4 key购买 nike

我对 ES 官方文档中的以下配额有一个疑问:

But if you give all available memory to Elasticsearch’s heap, 
there won’t be any left over for Lucene.
This can seriously impact the performance of full-text search.

如果我的服务器有 80G 内存,我发出以下命令启动 ES 节点:bin/elasticsearch -xmx 30g也就是说我只给ES进程最大30g内存。 Lucene如何使用剩下的50G,因为Lucene是在ES进程中运行的,它只是进程的一部分。

最佳答案

Xmx 参数仅表示您分配给 ES Java 进程的heap 大小。但是,将 RAM 分配给堆并不是使用服务器上可用内存的唯一方法。

Lucene 确实在 ES 进程中运行,但 Lucene 不仅使用分配的堆,它还通过大量利用文件系统缓存来管理索引段文件来使用内存。

Lucene 的主要提交者有这两篇很棒的博文(this onethis other one),它们更详细地解释了 Lucene 如何利用所有可用的剩余内存。

底线是为 ES 进程分配 30GB 堆(使用 -Xmx30g),然后 Lucene 将愉快地使用剩下的任何东西来做需要做的事情。

关于elasticsearch - ElasticSearch 和 Lucene 是如何共享内存的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35231896/

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