【问题标题】:OUtOfMemoryError: define PermGen space properly in Tomcat 7 and LinuxOUTOfMemoryError:在 Tomcat 7 和 Linux 中正确定义 PermGen 空间
【发布时间】:2014-10-14 22:47:39
【问题描述】:

我们有一个部署 2 个 Web 应用程序的 Tomcat7 实例。这些 webapp 依赖很多,目前内存空间好像不够用。

我们已经在启动文件中配置了所需的环境变量。特别是,我们设置 JAVA_OPTS=-Xmx8192

我和我的伙伴讨论了缺少更多配置参数的问题,因为在另一个配置中我看到了 -Xms、MaxPermSize 等

为了避免 PermGen 异常而缺少哪些参数,它们的作用是什么?

提前致谢

【问题讨论】:

    标签: linux tomcat7 virtual-machine permgen


    【解决方案1】:
    -Xms256m -Xmx1024m -XX:+DisableExplicitGC -Dcom.sun.management.jmxremote
    -XX:PermSize=256m -XX:MaxPermSize=512m
    

    在你的虚拟机参数中添加上面的代码行我相信它对你有用

    如果你使用 eclipse IDE 而不是使用它,你可以更改 VM 参数

    double click on the server > open Lunch Configuration > Arguments > VM Arguments
    

    并在上面添加两行

    【讨论】:

      【解决方案2】:

      分配给 Java 进程的内存量是在启动时指定的。为了让事情变得更复杂,内存被划分为不同的区域,堆和永久根是最熟悉的子区域。

      当您通过 -Xmx 指定此特定进程允许的最大堆大小时,permgen 的相应参数是 -XX:MaxPermSize。 90% 的 Java 应用程序似乎需要 64 到 512 MB 的 permgen 才能正常工作。为了找到你的极限,尝试一下。

      【讨论】:

        猜你喜欢
        • 2013-03-08
        • 2014-05-15
        • 2015-08-30
        • 2016-08-05
        • 2013-08-18
        • 1970-01-01
        • 1970-01-01
        • 2011-10-20
        • 2011-10-07
        相关资源
        最近更新 更多