java.lang.OutOfMemoryError: Java heap space 的处理办法
发布日期:2021-05-08 17:43:01 浏览次数:14 分类:精选文章

本文共 994 字,大约阅读时间需要 3 分钟。

1.基本知识:JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置。

                    JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选 项可进行设置。

例如:java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar

2.报此种异常的前提:在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。

3.配置原则:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

Heap size的 -Xms -Xmn 设置不要超出物理内存的大小。否则会提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。

4.案例一:

遇到TOMCAT出错:java.lang.OutOfMemoryError: Java heap space,于是查了资料,找到了解决方法:

If Java runs out of memory, the following error occurs:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Java heap size can be increased as follows:

java -Xms<initial heap size> -Xmx<maximum heap size>

Defaults are:
java -Xms32m -Xmx128m

如果你用win

/tomcat/bin/catalina.bat 加上下面的命令:
set JAVA_OPTS=-Xms32m -Xmx256m

如果你用unix/linux

/tomcat/bin/catalina.sh 加上下面的命令:
JAVA_OPTS="-Xms32m -Xmx256m"

=========================================

 

上一篇:mysql导入导出sql文件
下一篇:java基础知识:继承

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月05日 18时57分28秒