java.lang.OutOfMemoryError: PermGen space

hersing 2016-07-19 11:46:02
项目框架,springmvc + mybatis +mysql
linux上使用tomcat作为服务器,但运行一段时间后,就会出现下面错误:
Jul 19, 2016 9:34:48 AM org.apache.tomcat.util.net.NioEndpoint$SocketProcessor doRun
SEVERE:
java.lang.OutOfMemoryError: PermGen space


贴下我配置文件代码,web.xml,已经配置了IntrospectorCleanupListener监听:
<!-- 防止springn内存泄漏 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>


服务器上tomcat配置文件也修改了,catalina.sh中按照网上说的,增大了tomcat内存:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m" 
echo "Using CATALINA_BASE: $CATALINA_BASE"
echo "Using CATALINA_HOME: $CATALINA_HOME"
echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"


但是还是时不时的会出现上面所说的错误,希望碰到的能说下解决办法
...全文
233 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hersing 2016-07-21
  • 打赏
  • 举报
回复
找到问题所在了,linux上tomcat配置文件中配置了reloadable=true,谢谢各位的回答,结贴了
  • 打赏
  • 举报
回复
引用 8 楼 hersing 的回复:
[quote=引用 5 楼 qq_15915835 的回复:] 内存溢出应该先查代码问题,而不是jvm配置。
代码都检查过了,没发现哪里存在死循环的地方,而且,是时不时的发生这种错,还没有具体的异常信息[/quote] 时不时地发生内存溢出错误,最大可能就是代码有内存溢出问题,不然不会时不时地出现这种错误,建议好好排查一下。
加权不平权 2016-07-20
  • 打赏
  • 举报
回复
perm区用于存放Class和Meta的信息,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。
大雨将至 2016-07-20
  • 打赏
  • 举报
回复
引用 8 楼 hersing的回复:
[quote=引用 5 楼 qq_15915835 的回复:] 内存溢出应该先查代码问题,而不是jvm配置。
代码都检查过了,没发现哪里存在死循环的地方,而且,是时不时的发生这种错,还没有具体的异常信息[/quote] perm区是加载jar和class文件的区块,跟代码没多大关系
hersing 2016-07-20
  • 打赏
  • 举报
回复
引用 6 楼 qq_35209952 的回复:
系统是什么样的 32位还是64位 有没有出现混用(jdk,开发环境,以及Linux服务器)的情况
跟这些应该没有多大关系,开发环境之类的跟线上的是同步的
hersing 2016-07-20
  • 打赏
  • 举报
回复
引用 5 楼 qq_15915835 的回复:
内存溢出应该先查代码问题,而不是jvm配置。
代码都检查过了,没发现哪里存在死循环的地方,而且,是时不时的发生这种错,还没有具体的异常信息
大雨将至 2016-07-19
  • 打赏
  • 举报
回复
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m -XX:PermSize=128M -XX:MaxPermSize=256M"
猫猫大神 2016-07-19
  • 打赏
  • 举报
回复
内存不足,查看代码是不是有死循环 2是要增大缓存
逗泥丸的平方 2016-07-19
  • 打赏
  • 举报
回复
系统是什么样的 32位还是64位 有没有出现混用(jdk,开发环境,以及Linux服务器)的情况
qq_15915835 2016-07-19
  • 打赏
  • 举报
回复
内存溢出应该先查代码问题,而不是jvm配置。
hersing 2016-07-19
  • 打赏
  • 举报
回复
引用 3 楼 autfish 的回复:
java.lang.OutOfMemoryError: PermGen space 发生OOM是在PermGen永久代,你设置xms和xmx对永久代没作用
好的,我改了试试
大雨将至 2016-07-19
  • 打赏
  • 举报
回复
java.lang.OutOfMemoryError: PermGen space 发生OOM是在PermGen永久代,你设置xms和xmx对永久代没作用
hersing 2016-07-19
  • 打赏
  • 举报
回复
引用 1 楼 autfish 的回复:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m -XX:PermSize=128M -XX:MaxPermSize=256M"
我上面贴的修改tomcat内存大小有问题吗

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧