elasticsearch - Elasticsearch:频繁和长时间的垃圾收集
问题描述
我的es集群有76个节点,每个节点有128gb堆,2000个shard,每个shard小于30gb。我发现 gc 很频繁而且时间很长。这发生在一个节点“停止世界”,但在重新启动该节点后,另一个节点会遇到同样的问题。
从日志中, gc old 需要 5.4 分钟和内存 125.6gb -> 118.6gb 。为什么以及如何解决它?请。
解决方案
这里的问题是您为每个节点提供了太多堆。您处于这篇博客文章中描述的“太大”的情况下,并且您遇到了 stop of the world GC 情况。
建议您永远不要为每个节点提供超过 30.5GB 的堆。如果您有更多可用内存,那很好,Lucene 将使用它将段文件直接映射到内存中(即 Lucene 不为此使用 Java 堆)。
解决方案是将每个节点的堆降低到 30.5GB,如我链接到的文章中所述,然后重新启动每个节点。
推荐阅读
- laravel - Paypal 定期付款自定义计费周期
- ios - 从旋转的子视图中删除渐变
- android - PublishSubject 不发出项目
- git - 如何在远程 Git 存储库中创建新的子模块?
- angular - Angular - .Net Core 应用程序 - Okta 设置问题
- c++ - Boost 程序选项在程序启动后接受输入
- java - Tomcat在服务器启动时“找不到方法”错误
- flutter - 上下文为空
- html - 无法降低嵌入的 div 元素边距
- git - 有没有办法指示 Visual Studio Code 跳过 git commit 钩子(即提供 -n 参数)?