当前位置:首页 > 开发 > 开源软件 > 正文

elasticsearch实战-使用G1垃圾回收

发表于: 2013-09-28   作者:donlianli   来源:转载   浏览次数:
摘要: Java的垃圾回收真是让人又恨又爱。当今大内存已经成为服务器的趋势,使用CMS垃圾回收有点捉襟见肘。为何要使用g1垃圾回收,我想用过es的人都会很清楚。下面我就介绍一下在elasticsearch中,如何使用G1垃圾回收。 首先找到es的配置文件。elasticsearch.in.sh,这个文件在es的bin目录下面。 然后找到配置垃圾回收的配置。 # Force the JVM to us

Java的垃圾回收真是让人又恨又爱。当今大内存已经成为服务器的趋势,使用CMS垃圾回收有点捉襟见肘。为何要使用g1垃圾回收,我想用过es的人都会很清楚。下面我就介绍一下在elasticsearch中,如何使用G1垃圾回收。

首先找到es的配置文件。elasticsearch.in.sh,这个文件在es的bin目录下面。

然后找到配置垃圾回收的配置。

# Force the JVM to use IPv4 stack
if [ "x$ES_USE_IPV4" != "x" ]; then
  JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
fi

JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC"
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC"

JAVA_OPTS="$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=75"
JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly"

 加黑的这4行都注释掉。

然后换成:

JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC"
JAVA_OPTS="$JAVA_OPTS -XX:MaxGCPauseMillis=200"

 然后启动es就可以了。

 

好了,然后咱们回过头来说说为啥要使用g1垃圾回收。

首先:G1是Java7以后推荐的垃圾回收方式。自然有他很多的好处,jdk本身肯定对他做了很多优化。这个详细的我也不清楚。

但是,更重要的是,现在的Java程序,谁没有十来G的内存可以使用。特别像es这样的存储系统。你甚至都想给他配个几百G,省得你内存不够用。大内存导致Java的GC停顿时间长到让人难以容忍的程度。G1就是专门为这种大内存的应用程序提出的新一代内存垃圾回收解决方案。

 

另外,oracle官方建议,使用g1回收时,不要设置年轻代内存大小。

G1的配置还有很多参数,详细参数见官网:

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/G1GettingStarted/index.html

 

 

 请支持原创:

http://donlianli.iteye.com/blog/1948787

 

对这类话题感兴趣?欢迎发送邮件至 donlianli@126.com
关于我:邯郸人,擅长Java,Javascript,Extjs,oracle sql。
更多我之前的文章,可以访问  我的空间

elasticsearch实战-使用G1垃圾回收

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
我们先回顾一下主流Java的垃圾回收器(HotSpot JVM)。本文是针对堆的垃圾回收展开讨论的。 堆被分解
作者:黄湘龙 Blog:http://fredlong.iteye.com 微博:http://www.weibo.com/fredlong JAVA的内存分
先上两篇文章: 1)C#技术漫谈之垃圾回收机制(GC):http://kb.cnblogs.com/page/106720/ 2)各
基本上 jvm内存回收有三种 基本算法 标记-清除 标记清除的算法最简单,主要是标记出来需要回收的对
转自:http://jianfulove.iteye.com/blog/1833768 一切都进入了自动化了,但是对于各种内存溢出,内
java和flash的垃圾回收都是一个比较热门的话题,今天我也用一个例子来测试下flash的强制垃圾回收。
  理解java虚拟机的垃圾回收机制对于做java开发的人来说极为重要,它会帮你在写代码的时候就写出
在《给AS程序员的一点建议一文 》中我提到了释放资源的重要性。最近在一些项目过程中我又对这方面有
1、引用计数(reference counting) 原理:此对象有一个引用,则+1;删除一个引用,则-1。只用收集计
垃圾回收包含的内容不少,但顺着下面的顺序捋清知识也并不难。首先要 搞清垃圾回收的范围(栈需要GC
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号