resin内存溢出 java.lang.OutOfMemoryError: PermGen space

Resin,内存溢出 最近由于resin主机经常报如下错误:


500 Servlet Exception
java.lang.OutOfMemoryError: PermGen space

一旦报这个错,网站再也无法访问,即导致Resin死机.

其实这种现象在Java语言中很正常,我们通常称之为Java内存溢出。由于我们在Java程序中声明了好多对象,占用了内存空间,程序结束时没有将这些对象或对象的引用进行释放,从而导致Java虚拟机(JVM)进行垃圾回收(GC)时,不能够回收这些对象。这样,Java所用的内存就会一直增加,直至溢出,进而导致Resin死机。 
原因有二:一是程序不足够健壮;二是Resin设置的虚拟内存太小。

经过分析,程序使用了大量的动态生成类的方法,即用:

Class.forName(name).newInstance()

的方法来生成类,于是,没有办法,只能改为传统方式。同时,在服务接入口增加手工垃圾清理:Runtime.getRuntime().gc()

修改完成上传后,现象有所改观,但是,多人访问时,还是出现了主述错误。只好采取第二步,要求主机商修改Resin的虚拟内存。





linux
下设置方式:



linux
下的话   resincontribinit.resin   
    
  #   
  #   Sets   the   commandline   arguments.   
  #   
  ARGS="-java_home   $JAVA_HOME   -resin_home   $RESIN_HOME   -server   -Xms256m   -Xmx1024m   -XX:MaxPermSize=128m"  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值