出现 java.lang.OutOfMemoryError: PermGen space 错误的原因及解决方法

出现 java.lang.OutOfMemoryError: PermGen space 错误的原因及解决方法

2017年04月07日 15:55:41 维C果糖 阅读数:7852 标签: tomcat exception out memory 更多

个人分类: 异常及错误

版权声明:Follow your heart and intuition. https://blog.csdn.net/qq_35246620/article/details/69568205

1 错误描述

在正常启动 Tomcat 的时候,报出如下错误:

out

2 错误原因

通过观察上面的错误描述,我们可以知道错误原因:

java.lang.OutOfMemoryError: PermGen space

此错误,为内存溢出错误。更具体的说,是指方法区(永久代)内存溢出!

3 解决方法

由于 JDK 自带的虚拟机为 HotSpot,且其支持内存区域的动态扩展,因此可以通过设置虚拟机参数来扩展方法区的内存大小。例如,进入Run/Debug Configuration页面,修改虚拟机参数为:

-Xms1024M -Xmx2048M -XX:PermSize=128M -XX:MaxPermSize=256M

具体如何配置,如下图所示:

vm

其中,各个参数的含义为:

  • -Xms,表示程序启动时,JVM 堆的初始化最小尺寸参数;
  • -Xmx,表示程序启动时,JVM 堆的初始化最大尺寸参数;
  • -XX:PermSize,表示程序启动时,JVM 方法区的初始化最小尺寸参数;
  • -XX:MaxPermSize,表示程序启动时,JVM 方法区的初始化最大尺寸参数。

对于本例中的错误,实际上,只需要扩展方法区的虚拟机参数即可。


温馨提示:在磁盘满足条件的情况下,可自行修改虚拟机参数进行测试。

猜你喜欢

转载自blog.csdn.net/xiaobing_122613/article/details/85010254