一、堆内存参数
- 晋升老年代对象大小(-XX:PretenureSizeThreshold)
- 新生代的大小(-Xmn)
- Eden与Survivor区 的比例(-XX:SurvivorRatio)
- 控制最大垃圾收集停顿时间 的-XX:MaxGCPauseMillis参数
- 直接设置吞吐量大小的-XX:GCTimeRatio参数。
二、GC参数
1、查询gc收集器
jcmd 5487 PerfCounter.print |grep gc.collector.*name
2、开启GC日志
- 查看GC基本信息 -XX:+PrintGC JDK 9后使用-Xlog:gc:
- 查看GC详细信息 -XX:+PrintGCDetails ,在JDK 9之后使用-X-log:gc*, 用通配符*将GC标签下所有细分过程都打印出来,如果把日志级别调整到Debug或者Trace
- 查看GC前后的堆、方法区可用容量变化 -XX:+PrintHeapAtGC,JDK 9之 后使用-Xlog:gc+heap=debug:
- 查看GC过程中用户线程并发时间以及停顿的时间,在JDK 9之前使用-XX:+PrintGCApplicationConcurrentTime以及-XX:+PrintGCApplicationStoppedTime,JDK 9之后使用-Xlog: safepoint:
- 查看收集器Ergonomics机制(自动设置堆空间各分代区域大小、收集目标等内容,从Parallel收 集器开始支持)自动调节的相关信息。在JDK 9之前使用-XX:+PrintAdaptive-SizePolicy,JDK 9之后 使用-Xlog:gc+ergo*=trace:
- 查看熬过收集后剩余对象的年龄分布信息,在JDK 9前使用-XX:+PrintTenuring-Distribution, JDK 9之后使用-Xlog:gc+age=trace: