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

tomcat方法区内存溢出

2016-07-07 17:19 344 查看
        在tomcat下部署多个web应用时,经常会出现 :OutOfMemoryError:permgem space异常(即方法区内存溢出),方法区内存存储类信息,常量,静态变量等,如果加载的类过多就会出现此异常。解决方法有以下几点:

        1、修改tomcat内存分配:找到echo Using CATALINA_BASE:   "%CATALINA_BASE%",在上一行加:set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m。

        2、将不同的web应用的jar共享,这样就避免同一jar包被不同的应用反复加载,消耗过多的内存空间。

  a、catalina.properties文件中的common.loader,追加“,${catalina.home}/lib/shared/*.jar”。 追加后: common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/lib/shared/*.jar"<span style="font-family:宋体;font-size:12px;font-size:15px;">。</span>
   b、修改catalina.properties文件中的shared.loader(默认后面是没值的),追加“${catalina.base}/shared/*.jar”。追加后:

shared.loader="${catalina.base}/shared/*.jar"<span style="font-family:宋体;font-size:12px;font-size:15px;">。</span>

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