JVM参数配置 |
-server |
C2引擎执行 |
-Xms20g |
最小堆内存20G |
-Xmx20g |
最大堆内存20G |
-Xmn8g |
新生代8G |
-XX:PermSize=256m |
Perm大小256MB |
-XX:MaxPermSize=256m |
Perm大小256MB |
-XX:SurvivorRatio=10 |
YoungGC 3个区的比例 |
-XX:+UseConcMarkSweepGC |
Old区使用CMS GC |
-XX:+UseCMSCompactAtFullCollection |
一旦触发FullGC对Old区进行压缩减少内存碎片 |
-XX:CMSMaxAbortablePrecleanTime=5000 |
CMS GC的回收超时时间,避免GC时间太久 |
-XX:+CMSClassUnloadingEnabled |
支持CMS GC时对Perm区的Class和ClassLoader做GC,否则要等FullGC |
-XX:CMSInitiatingOccupancyFraction=80 |
Old区达到80%时触发CMS GC,如果不设置,JVM会自适应,效果不好 |
-XX:+UseCMSInitiatingOccupancyOnly |
只以CMSInitiatingOccupancyFraction设定的阈值为准,不加这个参数CMSInitiatingOccupancyFraction会不生效 |
-XX:+HeapDumpOnOutOfMemoryError |
OOM时自动jmap dump内存 |
-XX:HeapDumpPath= |
OOM时dump内存的位置 |
-Xloggc: |
GC log位置 |
-XX:+PrintGCDetails |
打印GC详细信息 |
-XX:+PrintGCDateStamps |
将GC时间由时间戳改为人类可识别的时刻点 |
-Dsun.net.client.defaultConnectTimeout=10000 |
socket连接超时时间 |
-Dsun.net.client.defaultReadTimeout=30000 |
socket读超时时间 |
-verbose:class |
打印类加载信息 |
-XX:MaxDirectMemorySize=1g |
控制DirectByteBuffer占用的堆外内存大小,防止堆外内存导致OOM |
-XX:+ExplicitGCInvokesConcurrent |
调用System.gc()时触发CMS GC而不是Full GC |
-XX:ParallelGCThreads=${CPU_COUNT} |
并发GC线程数(Young GC) |
-Dfile.encoding=${JAVA_FILE_ENCODING} |
文件默认编码 |