常用JVM参数解释
简介:
JVM参数配置-serverC2引擎执行-Xms20g最小堆内存20G-Xmx20g最大堆内存20G-Xmn8g新生代8G-XX:PermSize=256mPerm大小256MB-XX:MaxPermSize=256mPerm大小256MB-XX...
| 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} |
文件默认编码 |