JVM一些常用参数的整理
内存相关
| 参数 | 含义 | 说明 |
|---|---|---|
| -Xms | 1024m | 初始堆大小 |
| -Xmx | 1024m | 最大堆大小 |
| -Xmn | 500m | 年轻代大小 |
| -Xss | 1024k | 单个线程栈 |
| -XX:PermSize=200m | 永久代 | before java8 |
| -XX:MaxPermSize=300m | 永久代 | before java8 |
| -XX:MetaspaceSize | 元数据 | after 8 |
| -XX:MaxMetaspaceSize | 元数据 | after 8 |
| -XX:NewRatio=4 | Olden区与Young区比例 | 4:1 |
| -XX:SurvivorRatio=8 | Eden与Survivor区比例 | 8:1:1 |
| -XX:LargePageSizeInBytes | 内存页大小 | JVM优化之调整大内存分页 |
GC设置
| 参数 | 含义 | 说明 |
|---|---|---|
| -XX:+DisableExplicitGC | 关闭System.gc() | 慎用 |
| -XX:MaxTenuringThreshold | 晋升年龄 | |
| -XX:PretenureSizeThreshold=1024k | Olden区直接分配对象临界值 | |
| -Xnoclassgc | 禁用类回收 | |
| -XX:SoftRefLRUPolicyMSPerMB=1s | 软引用存活秒数/每空闲MB | |
| -XX:+UseParNewGC | 并行回收YOUNG区,CMS默认搭档 | |
| -XX:+UseConcMarkSweepGC | CMS回收老年代 | |
| -XX:CMSFullGCsBeforeCompaction=3 | 3次FullGC后,整理老年代 | |
| -XX:+CMSParallelRemarkEnabled | 并行标记,降低停顿 | |
| -XX:CMSInitiatingOccupancyFraction=85 | Olden区85%后开始GC | |
| -XX:+CMSClassUnloadingEnabled | 开启类卸载 |
调试参数
|参数|含义|说明|
|-XX:+PrintGCDetails|GC日志|
|-XX:+PrintGCApplicationStoppedTime|GC停顿时间|
|-verbose:gc/class/jni|查看gc、类加载、本地方法调用|
|-XX:+PrintHeapAtGC|打印GC触发时的堆栈|
|-Xloggc:log/gc.log|输出gc log|
|-XX:+HeapDumpOnOutOfMemoryError|内存溢出时产生堆dump|
|-XX:+HeapDumpOnCtrlBreak|Crtl+Break产生dump|
其他
-Xverify:none 跳过编译检查
服务器推荐GC参数:
-Xloggc:gc.log
-XX:+PrintGCDetails
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCApplicationConcurrentTime
(完)