Java教程

JVM内存回收与爆炸问题

本文主要是介绍JVM内存回收与爆炸问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

问题:

JVM内部内存正常,但总的RES爆了

结论用参数

HEAP_OPTS: -Xms1024M -Xmx4096M
JAVA_OPTS: -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy -XX:SurvivorRatio=8 -XX:+UseG1GC -XX:MaxHeapFreeRatio=50 -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
MALLOC_ARENA_MAX: 4

 

第一行:堆内存下限低,上限给到峰值即可

第二行: 给出合理的元数据内存限制,New:Old 1 增加GC量,关闭存活区自适应 使用G1GC -XX:MaxHeapFreeRatio=50使得内存快速释放

第三行:减少单个线程64MB块至4个

 

JDK8的RES回收策略(HotSpot):

JVM需要的总内存约等于=堆最小值(按Free比例)+元数据最大值+代码缓存,故必须控制这几个值加起来少于内存总量,稳妥来讲80%算适合(要给线程留内存)

在控制好这几块占总内存比例的情况下,RES回收正常

这篇关于JVM内存回收与爆炸问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!