您的位置:首页 > 运维架构 > Tomcat

Eclipse tomcat内存溢出配置

2016-01-29 11:20 405 查看
场景
  最近在eclipse中的tomcat服务器下放三个不同的应用程序,其中两个应用程序用到了各自的第三方jar包。刚开始时把这三个应用程序分别部署到各自的tomcat服务器运行,没问题。后来想通过第一个应用程序A,来分别跳转到应用程序B和应用程序C,于是把三个应用程序都部署到同一个tomcat服务器下。OK,一运行,报PermGen
space
错误。也百度了很多,从前天下午到今天下午,才搞定。太水了。下面先说说PermGen space是什么意思。
PermGen space(转)
    PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。OutOfMemoryError:
PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被
Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage
Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen
space错误。这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB
APP下都用了大量的第三方jar,其大小超过了jvm默认的大小(
4M)那么就会产生此错误信息了。
    解决办法:
1.修改Tomcat\bin\catalina.bat,添加如下内容
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128m -XX:MaxPermSize=512m



  不好意思,我试过了,但是还是报错。纠结,不知道是不是我设置的太小了,但是设置大点还是报错。但这只是对我的项目而言,其也是一种解决办法。
  2.修改eclispse中的tomcat内存大小
Eclipse->Window->Preferences->Server->RuntimeEnvironments->选中Apache Tomcatv5.0->点击Edit按钮->在弹出对话框里点击JRE后面的Installed
JREs按钮->在弹出对话框中选中tomcat使用的那个JRE->点击Edit按钮->在弹出对话框中,找到Default
VM Arguments,并在输入框中输入:-Xms512M-Xmx1024M  -XX:MaxPermSize=512m,然后finish->OK->OK。

建议使用第二种。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息