首页 > 解决方案 > Elasticsearch:频繁和长时间的垃圾收集

问题描述

我的es集群有76个节点,每个节点有128gb堆,2000个shard,每个shard小于30gb。我发现 gc 很频繁而且时间很长。这发生在一个节点“停止世界”,但在重新启动该节点后,另一个节点会遇到同样的问题。

在此处输入图像描述

从日志中, gc old 需要 5.4 分钟和内存 125.6gb -> 118.6gb 。为什么以及如何解决它?请。

标签: elasticsearch

解决方案


这里的问题是您为每个节点提供了太多堆。您处于这篇博客文章中描述的“太大”的情况下,并且您遇到了 stop of the world GC 情况。

建议您永远不要为每个节点提供超过 30.5GB 的堆。如果您有更多可用内存,那很好,Lucene 将使用它将段文件直接映射到内存中(即 Lucene 不为此使用 Java 堆)。

解决方案是将每个节点的堆降低到 30.5GB,如我链接到的文章中所述,然后重新启动每个节点。


推荐阅读