#申明
每种类型的虚拟机参数配置不一样,而同一类型的虚拟机不同版本参数也不一样,本文以HotSpot1.8.0_11为例、在这个版本中jvm参数在721个左右(使用 -XX:+PrintFlagsFinal参数输出所有参数及默认值),参数使用方式,-XX表示非稳定参数:
- -XX:+<option> 开启option参数
- -XX:-<option> 关闭option参数
- -XX:<option>=<value> 将option设置为value
1、虚拟机内存管理参数
| 参数及使用 | 默认值 | 参数介绍 |
|---|---|---|
| -XX:+UseSerialGC | client模式默认开启 | 使用Serial+Serial Old收集器组合进行GC回收 |
| -XX:+UseParNewGC | 默认关闭 | 使用ParNew+Serial Old收集器组合进行GC回收 |
| -XX:+UseConcMarkSweepGC | 默认关闭 | 使用Parnew+CMS+Serial Old(作为CMS后备收集器) |
| -XX:+UseParallelGC | server模式默认开启 | 使用Parallel Scavenge+Serial Old进行GC |
| -XX:+UseParallelOldGC | 默认关闭 | 使用Parallel Scavenge+Parallel Old进行GC回收 |
| -XX:PretenureSizeThreshold=4 | 无 | 大于此值大小的对象直接分配到老年代 |
| -XX:MaxTenuringThreshold=9 | 15 | 经历多少次 Minor GC 后对象进入老年代 |
| -XX:+UseAdaptiveSizePolicy | 默认开启 | 动态调整Java堆中各区域大小及进入老年代的年龄 |
| -XX:GCTimeRatio=99 | 默认99 | 表示允许1%的GC时间,只对Parallel Scavenge生效 |
| -XX:MaxGCPauseMillis=1 | 无默认值 | GC最大停顿时间,只对Parallel Scavenge生效 |
| -XX:MaxHeapFreeRatio=70 | 70 | 当Xmx>Xms,堆空闲> 此比率时自收缩,最小到xms |
| -XX:MinHeapFreeRatio=40 | 40 | 当Xmx>Xms,堆空闲< 此比率时自扩展,最大到xmx |
| -XX:MetaspaceSize=40m | 20.8M | MetaSpace第一次扩展阈值,并非初始容量 |
| -XX:MaxMetaspaceSize=100m | 无上限 | MetaSpace最大大小 |
2,调试参数(默认关闭)
| 参数及使用 | 参数介绍 |
|---|---|
| -XX:+HeapDumpOnOutOfMemoryError | 在发生 outOfMemory 时是否生成 heap_dump/hprof 文件 |
| -XX:HeapDumpPath=/temp/ | 设置发生 outOfMemory 时生成 hprof 文件的存储位置 |
| -XX:OnOutOfMemoryError="/temp/my.sh" | 发生outOfMemory执行的shell,可执行指定脚本 |
| -XX:OnError="/temp/my.sh" | 发生Error时执行的shell,可执行指定脚本 |
| -XX:+PrintGC | 打印GC信息 |
| -XX:+PrintGCDetails | 打印GC详细信息 |
| -XX:+PrintGCTimeStamps | 打印GC停顿耗时 |
| -XX:+PrintenuringDistribution | 打印GC后新生代各个年龄对象的大小 |
| -XX:+TraceClassLoading | 打印类加载信息 |
| -XX:+TraceClassUnLoading | 打印类卸载信息 |
未完待续...
1097

被折叠的 条评论
为什么被折叠?



