您的位置:首页 > 运维架构 > Tomcat

有关tomcat java.lang.OutOfMemoryError: Java heap space(堆栈溢出) 和 PermGen space

2012-04-25 17:38 447 查看


有关tomcat java.lang.OutOfMemoryError: Java heap space

遇到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"
转自 /article/6317957.html

永久空间内存不足
java.lang.OutOfMemoryError: PermGen space,相比不少使用spring,hibernate等一堆jar包的人都遇到过这个问题,在tomcat reload一个Context多次后,tomcat就挂掉了。


PermGen space这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage
Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。

解决方式。
set JAVA_OPTS=-XX:PermSize=64m -XX:MaxPermSize=256m

如果tomcat上部署的项目比较多,以上两种方式不能解决问题的话,那就把 JAVA_OPTS 里面 有关 heap space 和permgen space 的配置信息都配置上,如下(windows)
在catalina.bat 最上边加上 如下配置 大小自己可调
set JAVA_OPTS= -server -Xms512m -Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=128m
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐