我的es集群有76个节点,每个节点有128gb的堆,2000个分片,每个分片小于30gb。我发现gc频繁且时间长。这发生在一个节点“停止工作”上,但是在重新启动该节点后,另一个节点将遇到相同的问题。
从日志中,gc old需要5.4分钟,内存为125.6gb-> 118.6gb。 为什么以及如何解决呢?请
答案 0 :(得分:3)
这里的问题是您给每个节点过多的堆。您处于in this blog article所描绘的“太大”情况下,并且遇到了世界各地的GC情况。
建议每个节点的堆内存不要超过30.5GB。如果您有更多的可用内存,那很好,Lucene将使用它将段文件直接映射到内存中(即Lucene不会使用Java堆)。
解决方案是按照我链接到的文章中的描述将每个节点的堆降低到30.5GB,然后重新启动每个节点。