【问题标题】:Multiple web apps in Tomcat( using same jars ) leads to perm gen OOMTomcat 中的多个 Web 应用程序(使用相同的 jar)导致 perm gen OOM
【发布时间】:2014-11-21 11:01:05
【问题描述】:

我正在运行一个带有两个 Web 应用程序实例的 Tomcat,这两个应用程序的开发是独立的。当我启动 tomcat 服务器并开始访问应用程序时,它要么引发 Perm Gen OOM 异常,要么引发堆空间 OOM 异常。这两个应用程序都使用相同的 jar,这些 jar 捆绑在 webapps 的相应 lib 文件夹中。是因为类的重复加载导致的perm gen吗?如何避免 Perm Gen 和 Heap 空间异常?

编辑:我希望在这种情况下遵循最佳实践。请提供相同的建议。

注意:我在具有 12 GB 内存的 2008 服务器上运行 tomcat。该服务器还托管其他 tomcat 服务器和数据库的 MSSQL 服务器。

【问题讨论】:

    标签: java tomcat


    【解决方案1】:

    此类错误肯定是由类加载器内存泄漏引起的内存泄漏引起的 (https://wiki.apache.org/tomcat/MemoryLeakProtection)。

    您可以尝试增加 permgen 空间 (-XX:PermSize<size> -XX:MaxPermSize<size>) 看看是否有帮助。如果它只是降低 OOM 的频率,那么您很可能会发生内存泄漏。不幸的是,找到解决方案并不容易。我通过在应用程序重新部署时重新启动 tomcat 来避免这种情况,这种策略可能对您有效,也可能无效。

    【讨论】:

      【解决方案2】:

      您必须增加 -XX:PermSize -XX:MaxPermSize 大小以避免在 tomcat 的配置文件中出现问题。理想情况下为 256,只需将其增加到 512。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-15
        • 1970-01-01
        • 2013-12-29
        • 1970-01-01
        • 2011-01-26
        • 1970-01-01
        • 2013-10-21
        • 1970-01-01
        相关资源
        最近更新 更多