java.lang.OutOfmemoryError: PermGen Space问题产生原因及解决方式

java.lang.OutOfmemoryError: PermGen Space问题产生原因及解决方式

目前在手中的一项目经常会(两周左右)出现一次PermGen Space的报错问题,第一次出现的时候已经按照通用的方式在TOMCAT的bin目录下修改了catalina.sh(windows系统位catalina.bat)文件,添加了
-XX:PermSize=128m -XX:MaxSize=512m并重启。

理论上应该不会再出现PermGen Space的问题,但是实际还是出现了,于是又查找了一些产生问题的原因。有一个现象是,该项目在使用shutdown.sh命令进行停止时经常是失败的,这时就会使用kill命令来杀死;这样就会出现存在 PermGen space 里面的内存不会被释放;

所以每次如果使用kill命令来杀死项目,则应该通过手动来回收垃圾;
在linux环境中执行echo 3 > /proc/sys/vm/drop_caches即可。

还会持续关注该项目情况,也会更新问题解决方式。

20201209更新:
项目依然还是出了PermGen Space错误,这次又仔细检查了一下catalina.sh文件,发现在设定上JAVA_OPTS写错了,大写的尴尬。

重新设定会发现出现了一个奇怪的现象:启动tomcat后后台会报错Could not find the main class: -XX:PermSize 这里我没有查到相关的参考资料,于是我把这段去掉,仅留下-XX:MaxSize=512m;项目即可正常启动。

项目使用的JDK1.6版本,我在网上查询无法设定:PermSize的原因,并未找到相关资料。
项目情况会持续关注,但是上述问题如有大佬看到也希望能得到解答。

参考链接:
1.Tomcat无法shutdown进程问题解决办法
2.Linux下清理内存和Cache方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值