【IT老齐042】生产环境JVM参数与垃圾回收GC
【IT老齐042】生产环境JVM参数与垃圾回收GC
- 最大堆和最小堆大小
- GC收集器
- 新生代(年轻代)大小
JVM选项规则
+代表开启/-代表关闭
- java -version 标准选项,任何版本JVM/任何平台都可以使用
- java -Xms10m 非标准选项,部分版本识别
- java -XX:+PrintGCDetails 不稳定参数,不同JVM有差异,随时可能会被移除,
JVM优化选项
java -jar -XX:+UseG1GC -Xms2G -Xmx2G -Xss256k
-XX:MaxGCPauseMillis=300 -Xloggc:/logs/gc.log -XX:+PrintGCTimeStamps
-XX:+PrintGCDetails test.jar
- 1.8+优先使用G1收集器,摆脱各种选项烦恼
- -Xms与-Xmx设置相同,减少内存交换
- 评估Xmx方法: 第一次起始设置大一点,跟踪监控日志,调整为堆峰值*2~3即可
- 最多300毫秒STW时间,200~~500区间,增大可减少GC次数,提高吞吐
- -Xss128k/256k 虚拟机栈空间一般128K就够用了。超过256k考虑优化,不建议超过256k
- G1一般不设置新生代的大小,G1新生代是动态调整的