【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新生代是动态调整的
posted @ 2024-03-14 20:04  Faetbwac  阅读(13)  评论(0编辑  收藏  举报