问题

线上 RTB 项目的 JVM 参数

JVM_PARALLEL_OPTIONS=" -Xmx960M -Xms960M -Xmn320M -XX:MaxMetaspaceSize=128M -XX:MetaspaceSize=128M  -XX:+UseAdaptiveSizePolicy -XX:MaxGCPauseMillis=50  -XX:+UseParallelGC -XX:AdaptiveSizePolicyOutputInterval=1 "

今天使用 Caffeine 缓存来替换 Guava Cache . 更新后, 发现 CPU 使用率上到 200% + . 看了下 GC 日志. mirror GC 变得非常频繁. 发现是JVM自动调整策略不断在吞吐和减低内存占用平衡之间切换.

image-20190910173611662

解决

关闭自动调整算法就稳定了. CPU 使用率也在 50% 左右. 即

-XX:+UseAdaptiveSizePolicy => -XX:-UseAdaptiveSizePolicy

image-20190910173628868