该
Xmx参数仅指示您为ES Java进程分配了多少 堆 。但是,将RAM分配给堆并不是使用服务器上可用内存的唯一方法。
Lucene确实在ES进程中运行,但是Lucene不仅利用分配的堆,而且还通过大量利用文件系统缓存来管理索引段文件来使用内存。
Lucene的主要提交者有这两篇很棒的博客文章(这一篇和另一篇),它们更详细地解释了Lucene如何利用所有可用的剩余内存。
最重要的是(使用
-Xmx30g)为ES进程分配了30GB的堆,然后Lucene会很乐意消耗剩下的东西来做需要做的事情。

该
Xmx参数仅指示您为ES Java进程分配了多少 堆 。但是,将RAM分配给堆并不是使用服务器上可用内存的唯一方法。
Lucene确实在ES进程中运行,但是Lucene不仅利用分配的堆,而且还通过大量利用文件系统缓存来管理索引段文件来使用内存。
Lucene的主要提交者有这两篇很棒的博客文章(这一篇和另一篇),它们更详细地解释了Lucene如何利用所有可用的剩余内存。
最重要的是(使用
-Xmx30g)为ES进程分配了30GB的堆,然后Lucene会很乐意消耗剩下的东西来做需要做的事情。