目前生产环境使用的还是JDK8,备份一份后续详细研究
具体版本如下:
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
抽出其中一个项目的启动参数如下:
su - tomcat -c 'nohup java -Dserver.port=6016 -server -Xms1024M -Xmx1024M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -Xss512k -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Xloggc:/server/application/fund/logs/gc.log -XX:HeapDumpPath=/server/application/fund/logs/ -Djava.io.tmpdir=/server/application/fund/temp -Dspring.profiles.active=prod -javaagent:/usr/lib/jvm-exports/jmx_prometheus_javaagent-0.12.0.jar=7016:/etc/jvm/jmx_exporter.yml -jar /server/application/fund/e39eb64.jar >>/server/application/fund/logs/catalina.out 2>&1 &'
JDK8 常见的GC回收器 搭配是CMS + ParNew
垃圾回收 算法的基石:
1.引用计数
2.标记-清除
3.复制
主要的垃圾回收算法 标记-清除 ,复制 主要的思路是分代。
后续版本的JDK,下一代主推 G1 垃圾回收器,即 Garbage First 思路转变了。分代收集的思路略显粗犷。
后续会持续分析