JVM启动参数详解

 

 

 JVM启动参数以及具体的解释:

-Xmx1024M 最大堆内存
-Xms1024M 初始化堆内存,正常和最大堆内存相同,减少动态改变的内存损耗
-Xmn384M 年轻代内存
-XX:PermSize=128M 初始化持久代内存
-XX:MaxPermSize=256M 最大持久代内存
-XX:SurvivorRatio=8 年轻代比例 8:1:1

-XX:+PrintGCDetails 打印gc信息,可参考gc的比例进行调优
-XX:MaxDirectMemorySize=128M 比如netty的零copy会使用到直接内存,一般System.gc()会回收,但是如果DisableExplicitGC开启,会将System.gc()转为空,不会回收这部分内存,如果启用了cms,会对直接堆外内存回收
-XX:+DisableExplicitGC System.gc()不可用
-XX:+UseConcMarkSweepGC 老年代使用cms,标记-清除算法会产生碎片
-XX:+UseParNewGC 年轻代使用并行收集器

-XX:+UseCMSCompactAtFullCollection 和下面的配合使用,开启碎片整理
-XX:CMSFullGCsBeforeCompaction=10 10次fullgc后开始内存空间压缩
-XX:+CMSParallelRemarkEnabled cms收集过程初始标记、并发标记、预清理、可中断预清理、最终标记、并发清除、并发重置,在最终标记中遍历区域较多,开启并行收集。

-XX:+UseCMSInitiatingOccupancyOnly 开启,使用下面的值
-XX:CMSInitiatingOccupancyFraction=70 对内存占用70%执行cms

-XX:+CMSClassUnloadingEnabled 清理持久代

-XX:+HeapDumpOnOutOfMemoryError oom会将堆信息dump
-XX:HeapDumpPath=/opt/log/tomcat/10-sdk/dump/heap.hprof dump文件地址

-XX:+PrintGCDateStamps 打印gc时间

-XX:TargetSurvivorRatio=90 s区达到90%自动计算转到老年代的age
-XX:MaxTenuringThreshold=15 年轻代到老年代的最大age

-XX:-ReduceInitialCardMarks 解决gc bug

-Dcom.sun.management.jmxremote.authenticate=true 开启用户认证
-Dcom.sun.management.jmxremote.ssl=false 禁止ssl连接
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.access.file=../shared/conf/jmxremote.access 用户名
-Dcom.sun.management.jmxremote.password.file=../shared/conf/jmxremote.password 密码

-Djava.rmi.server.hostname=xxx

-Dcatalina.base=/opt/oracle/tomcat/t-10 设置tomcat目录

-Xdebug 支持debug
-Xrunjdwp:transport=dt_socket,address=9910,server=y,suspend=n 设置debug参数

-Djava.util.logging.config.file=/opt/oracle/tomcat/t-10/conf/logging.properties 日志配置文件
-Dfile.encoding=UTF8 设置文件编码

-Djava.io.tmpdir=/opt/oracle/tomcat/t-10/temp 临时文件目录,java代码中可以使用System.getProperties("java.io.tmpdir")来获取

 

posted @ 2020-09-23 10:11  下午喝什么茶  阅读(686)  评论(0编辑  收藏  举报