难道解决 PermGen space 内存溢出的办法,只能是加大最大值吗?

_Ricky_ 2018-06-12 03:21:04
难道解决 PermGen space 内存溢出的办法,只能是加大最大值吗?看了很多博客都是说增加PermSize大小,但是设置了没用,tomcat运行了5个项目
...全文
2634 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
stacksoverflow 2018-06-13
  • 打赏
  • 举报
回复
为什么不把项目分开呢?做一个getway,分发到不同机器或不同端口。
qq_42448468 2018-06-13
  • 打赏
  • 举报
回复
GOOD XIEXIE
qq_41971844 2018-06-13
  • 打赏
  • 举报
回复
为什么不把项目分开呢?主要是修改永久区大小,加载太多jar包和文件,分配Tomcat内存不够了,垃圾回收器GC
oyljerry 2018-06-12
  • 打赏
  • 举报
回复
主要是修改永久区大小,然后就是去除无关的jar包。
maradona1984 2018-06-12
  • 打赏
  • 举报
回复
tomcat跑5个服务也是有点凶残,还不如单台服务器部署多个tomcat,至少互相影响的程度小 当然性能方面俺是没测试过的,但我想既然一个tomcat部署5个web估计也不会特别在意这方面
_Ricky_ 2018-06-12
  • 打赏
  • 举报
回复
原因分析: 加载太多jar包和文件,分配Tomcat内存不够了,垃圾回收器GC 不会在主程序运行期对 PermGen space 进行清理。 解决方案: 1、修改Catalina.bat文件,增加jvm内存,设定最大的永久存续区的内存大小 2、将项目公共的jar包提取到lib目录,所有项目共享相同的jar类包,避免项目间重复reload相同的jar包
stacksoverflow 2018-06-12
  • 打赏
  • 举报
回复
首先理解方法区中放的时什么东西,然后把方法区的内容dump下来(jmap -permstat <pid>),分析一下到底是什么占内存。具体问题具体分析。 参照这片文章 http://cloudnoter.com/2017/05/07/JVM%E6%96%B9%E6%B3%95%E5%8C%BA-PermGen-%E5%86%85%E5%AD%98%E5%BF%AB%E9%80%9F%E9%A3%99%E5%8D%87%E9%97%AE%E9%A2%98/

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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