现在es能不能用G1来进行内存回收?

Elasticsearch | 作者 wise111 | 发布于2017年09月11日 | 阅读数:1939

es的内存越来越大,cms感觉效率太低
已邀请:

kennywu76 - wood@Ctrip

赞同来自: wise111 derobukal ouyangchucai

之前版本,官方是有文档明确说明不要用G1。 因为根据Lucene的stress test,发现某些版本JAVA G1存在的Bug,会造成Lucene的段文件损坏。
 
在5.0以后,官方文档没有明确说是否可以使用G1,但是ES启动过程中有一个针对G1 GC的JVM版本校验
https://www.elastic.co/guide/e ... .html
其隐含的意思是说,使用 JDK 8u40以上版本,启用G1应该是安全的。
 
不过,根据经验,在使用ES过程中遇到长时间GC问题时,通常需要调整的不是JVM,而是Query本身。特别是,频繁OLD GC过后, 释放不了Heap空间的情况下,用CMS还是G1不会有什么分别。

Cheetah

赞同来自:

这个和es没得关系,G1是JAVA的垃圾回收器,只要JDK版本支持,那就没问题,在elasticsearch.in.sh中通过设置JAVA_OPTS属性可以达到你使用G1的目的

davinciyxw

赞同来自:

正在使用中。目前生产环境每天50GB,约2.5亿条日志,没有出过问题。

要回复问题请先登录注册