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

来源:互联网 发布:海外离线导航软件 编辑:程序博客网 时间:2024/06/04 00:52

有关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"

转自 http://www.cnblogs.com/sishierfei/archive/2011/12/02/2271755.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


原创粉丝点击