`
keriny
  • 浏览: 93891 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RESIN之内存溢出

XML 
阅读更多
最近在做项目时,因为项目需求不确定导致项目在做好之后需要不断的更新,这样就需要服务器的运维人员去不断的重新部署项目。刚开时还行,过了一段时间运维人员不干了,因为项目使用的是ssh2架构,所以要很多的jar包,项目在每次部署时都会浪费很多的内存。部署的次数多了内存就溢出了。经过研究、查看resin本身的配置文件,在conf 目录下的resin.conf 和app-default.xml中分别找到以下部分

resin.conf:
<class-loader>
    <tree-loader path="${resin.home}/ext-lib"/>
    <tree-loader path="${resin.root}/ext-lib"/>
    <tree-loader path="${resin.home}/lib"/>
    <tree-loader path="${resin.root}/lib"/>
    <tree-loader path="${resin.root}/usr/local/lib"/>
</class-loader>
在查找资料后发现

这个是resin在启动时要加载的class和jar包。增加节点<tree-loader path="${resin.root}/usr/local/lib"/>
在path目录下放置工程需要的jar包。注意:工程中就不能带有任何jar包了。但是在每次部署时还是会浪费一些内存,这是因为工程内的.class文件加载导致的。


app-default.xml:
  <class-loader>
    <compiling-loader path="WEB-INF/classes"/>
    <library-loader path="WEB-INF/lib"/>
  </class-loader>
增加节点<library-loader path="${resin.root}/usr/local/lib"/>,同样可以。但是这样和在resin.conf 中配置还是

有区别的。在此位置增加lib目录,在项目每次部署时还是会加载这些个jar包。这样还是会导致内存溢出。

所以两者比较个人觉得还是在resin.conf中配置比较好。但是这个并不能从根本上解决resin的内存溢出问题。最好的解决方法还是对一个项目的需求确定。开发完成之后就不会要做修改啦、、、

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics