jvm参数配置问题

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/bin/java -server
-Xms10240m -Xmx10240m jvm最大可用内存/最小可用内存 设置成一样 防止内存重新分配
-Xmn2048m 年轻代内存大小
-XX:PermSize=128m -XX:MaxPermSize=256m 非堆内存 最大非堆内存 持久代
-Xss1m 设置每个线程的堆栈大小 在相同物理内存前提下减小这个数可以增大可生成线程数
-XX:+UseParNewGC 新生代多线程并行回收
-XX:+UseConcMarkSweepGC 使用cms内存收集
-XX:+CMSClassUnloadingEnabled
-XX:ParallelCMSThreads=5 并行cms收集器线程数
-XX:+CMSParallelRemarkEnabled 降低标记停顿
-XX:CMSFullGCsBeforeCompaction=1 多少次fgc后进行内存压缩
-XX:+UseCMSCompactAtFullCollection fgc时对老年代进行内存压缩
-XX:+UseCMSInitiatingOccupancyOnly 使用手动定义初始化定义开始CMS收集 避免postspot自行触发cms gc
-XX:CMSInitiatingOccupancyFraction=30 使用cms作为垃圾回收 使用70%后开始CMS收集 满足如下公式不会出promotionfailed (Xmx-Xmn)(100-CMSInitiatingOccupancyFraction)/100>=Xmn
CMSInitiatingOccupancyFraction <=((Xmx-Xmn)-(Xmn-Xmn/(SurvivorRatior+2)))/(Xmx-Xmn)
100
-XX:SurvivorRatio Eden区与Survivor区的大小比值 设置为8,则两个Survivor区与一个Eden区的比值为2:8,一个Survivor区占整个年轻代的1/10
当xmx=128 xmn=36 SurvivorRatior=1时 CMSInitiatingOccupancyFraction<=((128.0-36)-(36-36/(1+2)))/(128-36)100 =73.913
当xmx=128 xmn=24 SurvivorRatior=1时 CMSInitiatingOccupancyFraction<=((128.0-24)-(24-24/(1+2)))/(128-24)
100=84.615…
当xmx=3000 xmn=600 SurvivorRatior=1时 CMSInitiatingOccupancyFraction<=((3000.0-600)-(600-600/(1+2)))/(3000-600)*100=83.33
CMSInitiatingOccupancyFraction低于70% 需要调整xmn或SurvivorRatior值。

-XX:+HeapDumpOnOutOfMemoryError
-XX:+DisableExplicitGC -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8893 -verbose:gc -Xloggc:gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xdebug -Dresin.server=default -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djava.system.class.loader=com.caucho.loader.SystemClassLoader -Djava.endorsed.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre/lib/endorsed:/data/solr_jppool/resin2//endorsed:/data/solr_jppool/resin2//endorsed -Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl -Djava.awt.headless=true -Dresin.home=/data/solr_jppool/resin2/ -Dresin.watchdog=default -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl -Djava.awt.headless=true -Dresin.home=/data/solr_jppool/resin2/ -Dresin.root=/data/solr_jppool/resin2/ -d64 -Dresin.watchdog=default -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl -Djava.awt.headless=true -Dresin.home=/data/solr_jppool/resin2/ -Dresin.root=/data/solr_jppool/resin2/ com.caucho.server.resin.Resin --root-directory /data/solr_jppool/resin2/ -conf /data/solr_jppool/resin2/conf/resin.xml -server default -socketwait 49540 restart

你可能感兴趣的:(jvm参数配置问题)