当前测试环境是在服务器的虚拟机上,基于Jenkins+docker部署, 虚拟机分配了8G内存.
通过 jstat -gcutil pid 3000
查看gc情况:
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
22.45 0.00 52.42 48.17 90.79 82.27 53 112.815 20 315.167 427.982
FGC时长和频次都太高了.
于是查看启动参数如下:
JAVA_OPTS="-Xms6120m -Xmx6120m -..." ...
根据参数 Xmx6120m
和当时的内存情况,我猜测可能是非堆内存的问题,但是无GC日志,不能证明自己的猜测.
于是先降了堆内存, 加上GC日志配置:
JAVA_OPTS="-Xms4096m -Xmx4096m -verbose:gc -Xloggc:/home/java_qc_gc_%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy -XX:+UseGCLogFileRotation -XX:N