jetty插件java.lang.OutOfMemoryError: PermGen space内存溢出

项目运行时,有时遇到java.lang.OutOfMemoryError: PermGen space问题。

原因分析

PermGen space,全称是Permanent Generation space,指的是内存中的永久区域。 当java中间件启动时,会将相关的jar包和.class加载到永久区域,而用就区域的空间是固定的,虽然可以设置。报这个错的原因就是在启动加载.class时,永久区域溢出了。

项目具体分析

由于项目涉及中间件很多,在项目启动时需要进行中间件的类加载操作,造成永久区的OOM。

解决方案

开发过程中默认配置分配的空间不足。服务器部署一般内存很大,同样情况下没有出现OutOfMemoryError异常。所以本地开发需要修改jvm的参数。

配置

IDE使用的是idea,需要加入jvm启动参数:

-server -XX:PermSize=128M -XX:MaxPermSize=256m

配置如下

输入图片说明 输入图片说明

猜你喜欢

转载自my.oschina.net/u/1000241/blog/1805443