若有收获,请记得分享和转发哦
背景信息
当您的业务是使用Java开发,且设置的JVM堆空间过小时,程序会出现系统内存不足OOM(Out of Memory)的问题。特别是在容器环境下,不合理的JVM堆参数设置会导致各种异常现象产生,例如应用堆大小还未到达设置阈值或规格限制,就因为OOM导致重启等。
通过-XX:MaxRAMPercentage限制堆大小(推荐)
在容器环境下,Java只能获取服务器的配置,无法感知容器内存限制。您可以通过设置-Xmx
来限制JVM堆大小,但该方式存在以下问题:
当规格大小调整后,需要重新设置堆大小参数。
当参数设置不合理时,会出现应用堆大小未达到阈值但容器OOM被强制关闭的情况。