开发者社区 > 大数据与机器学习 > 检索分析服务 Elasticsearch版 > 正文

怎么Elasticsearch尝试修改-Xms -Xmx20G还是16G降低和增加900M都不动?

怎么Elasticsearch尝试修改-Xms -Xmx20G还是16G降低和增加900M都不动?
/usr/jdk64/jdk1.8.0_112/bin/java -Xms31g -Xmx31g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch-1060148110909776643 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Des.path.home=/usr/hdp/current/elasticsearch_client -Des.path.conf=/usr/hdp/current/elasticsearch_client/config -Des.distribution.flavor=default -Des.distribution.type=tar -cp /usr/hdp/current/elasticsearch_client/lib/* org.elasticsearch.bootstrap.Elasticsearch -p /usr/hdp/current/elasticsearch_client/elasticsearch.pid

展开
收起
青城山下庄文杰 2023-10-03 13:08:46 197 0
1 条回答
写回答
取消 提交回答
  • Elasticsearch尝试修改-Xms -Xmx20G还是16G降低和增加900M都不动的原因可能是以下几点:

    • 使用的是CMS垃圾回收器,而不是G1垃圾回收器。CMS垃圾回收器不会根据堆内存大小自动调整新生代和老年代的大小,而是使用默认的比例或者手动指定的参数。
    • 没有指定-XX:NewRatio参数,该参数用于设置新生代和老年代的比例。如果不指定该参数,CMS垃圾回收器会使用默认的比例,即2:1。
    • 没有指定-XX:SurvivorRatio参数,该参数用于设置Eden区和Survivor区的比例。如果不指定该参数,CMS垃圾回收器会使用默认的比例,即8:1。

    因此,新生代是900M可能是因为您的堆内存大小是31G,按照默认的比例2:1分配给新生代和老年代,那么新生代就是10.33G,然后按照默认的比例8:1分配给Eden区和Survivor区,那么Eden区就是9.29G,Survivor区就是0.52G。由于Survivor区有两个,所以新生代中可用的空间就是9.29G+0.52G=9.81G,约等于900M。

    如果想改变新生代和老年代的大小,可以使用以下方法:

    • 使用-XX:NewRatio参数来设置新生代和老年代的比例。例如,如果想设置为8:2:1的比例,可以使用-XX:NewRatio=4。
    • 使用-XX:SurvivorRatio参数来设置Eden区和Survivor区的比例。例如,如果想设置为6:2:2的比例,您可以使用-XX:SurvivorRatio=3。
    • 使用-XX:NewSize和-XX:MaxNewSize参数来直接设置新生代的最小值和最大值。例如,如果想设置为6G,可以使用-XX:NewSize=6G -XX:MaxNewSize=6G。
    2023-10-20 15:50:46
    赞同 1 展开评论 打赏

阿里云检索分析服务Elasticsearch版兼容开源ELK功能,免运维全托管,提升企业数据检索与运维分析能力。

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载