使用合适的垃圾回收器(可以尝试,还未进行测试)
注:jdk8 默认使用并行回收器 -XX:+UseParallelGC
并行回收会导致线程卡顿,目前发现,卡顿效果明显的场景发生在堆内存大小超5G的情况下发生,当调整 -Xmx4g -XX:NewRatio=3 的配置后,并没有再发现卡顿的情况
注:也可以使用并发垃圾回收器G1(Garbage-First)。这个回收器是充分利用cpu时间片的方式将回收时卡顿的情况尽可能的减少。但目前还没有对他进行使用。如果PG仍然会出现问题,将对此款回收器进行测试。
图注:CPU监视图中CUP利用率高的部分是由于每次Fullgc时引起的,因为全局垃圾回回收(fullgc)会产生并行线程计算清除无用的内存垃圾。会发生资源竞争的情况
注:年轻代与老年代同时进行垃圾回收.
注:图片中S0U, EU, OU, YGC, FGC 分别是fullgc垃圾回收是监测到的结果。列名意思分别是Survivor0区已使用内存大小、Egen区已使用内存大小,老年代已使用内存大小,年轻代垃圾回收次数,老年代垃圾回收次数。
注:结果中S0U, EU, OU 的内存使用大小被减少,如S0U的 60017.2 减小至0等
注:结果中YGC, FGC 的GC次数加一