JVM 配置简洁说明

tomcat 远程调试 https://www.jianshu.com/writer#/notebooks/17531896/notes/73730441

代理

-javaagent:jacoco.jar=key1=value1,key2=value2 -jar Demo.jar

编码

-Dfile.encoding=UTF-8:设置编码规范

内存

工具或持续集成最常用的一条
-Xmx1G 最大堆内存,注意没等号,避免OOM: OutOfMemoryError(堆)内存不足错误
java.lang.OutOfMemoryError: java heap space

生产服务器经常会设置的两条(阿里规范提出),注意文件夹需存在
-XX:+HeapDumpOnOutOfMemoryError(打印OOM堆快照)
-XX:HeapDumpPath=../logs/heapdump.hprof(打印OOM堆快照路径)
https://www.jianshu.com/p/4e6e88f1d211

-XX:MaxPermSize=(持久代内存,避免OOM)
大量类加载器反射加载重复类时才出现,比较少见
java.lang.OutOfMemoryError: PermGen space

-server(启动慢运行快的服务器模式,64位只能这个模式不用设)

-Xms(启动堆内存)
-Xmn(年轻内存)
-Xss(线程栈内存解决StackOverflowError)
-XX:NewRatio=(年轻/年老)
-XX:SurvivorRatio=(Eden/Survivor)
-XX:PermSize(初始方法区/持久代内存)
-XX:MaxTenuringThreshold=(垃圾最大年龄)

吞吐量优先的并行收集器:
-XX:+UseParallelGC(年轻并行收集对UseSerialGC)
-XX:ParallelGCThreads=(并行收集线程数(核心数))
-XX:+UseParallelOldGC(年老并行收集JDK6)
-XX:MaxGCPauseMillis=(年轻回收最长时间)
-XX:+UseAdaptiveSizePolicy(自动比例)

响应时间优先的并发收集器:
-XX:+UseConcMarkSweepGC(年老并发收集)
-XX:+UseParNewGC(年轻并行收集)
-XX:CMSFullGCsBeforeCompaction=(多少次GC后整理内存)
-XX:+UseCMSCompactAtFullCollection(打开年老压缩)

-XX:GCTimeRatio=n(垃圾回收时间比不超过1/(1+n))
-XX:+CMSIncrementalMode(单CPU用增量模式)

IDEA JVM 设置解析

-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=240m(JIT预留代码缓存大小)
-XX:+UseConcMarkSweepGC(使用CMC并发标记清除)
-XX:SoftRefLRUPolicyMSPerMB=50(软引用LRU策略毫秒每兆)
-ea
-XX:CICompilerCount=2(最大并行编译数)
-Dsun.io.useCanonPrefixCache=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow(省略异常栈信息快速抛出)
-Djdk.attach.allowAttachSelf=true
-Dkotlinx.coroutines.debug=off
-Djdk.module.illegalAccess.silent=true

你可能感兴趣的:(JVM 配置简洁说明)