elasticsearch实战-使用G1垃圾回收
2013-11-19 18:48
127 查看
Java的垃圾回收真是让人又恨又爱。当今大内存已经成为服务器的趋势,使用CMS垃圾回收有点捉襟见肘。为何要使用g1垃圾回收,我想用过es的人都会很清楚。下面我就介绍一下在elasticsearch中,如何使用G1垃圾回收。
首先找到es的配置文件。elasticsearch.in.sh,这个文件在es的bin目录下面。
然后找到配置垃圾回收的配置。
Java代码
# Force the JVM to use IPv4 stack
if [ "x$ES_USE_IPV4" != "x" ]; then
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
fi
<strong>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"</strong>
加黑的这4行都注释掉。
然后换成:
Java代码
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
对这类话题感兴趣?欢迎发送邮件至donlianli@126.com
关于我:邯郸人,擅长Java,Javascript,Extjs,oracle sql。
更多我之前的文章,可以访问 我的空间
首先找到es的配置文件。elasticsearch.in.sh,这个文件在es的bin目录下面。
然后找到配置垃圾回收的配置。
Java代码
# Force the JVM to use IPv4 stack
if [ "x$ES_USE_IPV4" != "x" ]; then
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
fi
<strong>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"</strong>
加黑的这4行都注释掉。
然后换成:
Java代码
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
对这类话题感兴趣?欢迎发送邮件至donlianli@126.com
关于我:邯郸人,擅长Java,Javascript,Extjs,oracle sql。
更多我之前的文章,可以访问 我的空间
相关文章推荐
- java g1垃圾回收
- C#精髓【月儿原创】第一讲 使用垃圾回收器
- .net最佳实践二:使用finalize/dispose模式提升垃圾回收器性能
- java g1垃圾回收
- 关于垃圾回收CollectGarbage()的使用
- Android内存使用——垃圾回收LOG,GC_CONCURRENT等的意义的说明
- JavaG1垃圾回收
- java7中G1垃圾收集器使用和流程总结
- CMS垃圾回收与G1垃圾回收
- java g1垃圾回收
- 使用jstat分析系统的垃圾回收情况
- 【jvm】-- G1垃圾回收
- VB.NET(VS2005) 使用API的尴尬 (垃圾回收器 FUCK API)
- 【JavaScript】关于垃圾回收CollectGarbage()的使用(
- java g1垃圾回收
- Android内存使用——垃圾回收LOG,GC_CONCURRENT等的意义的说明
- UseAdaptiveSizePolicy与CMS垃圾回收同时使用导致的JVM报错
- 1.3垃圾回收——内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定
- java g1垃圾回收
- java g1垃圾回收