OUtOfMemoryError:在Tomcat 7和Linux中正确定义PermGen空间

时间:2014-08-21 10:28:50

标签: linux tomcat7 virtual-machine permgen

我们有一个Tomcat7实例,可以部署2个Web应用程序。这些webapps有很多依赖关系,目前的内存空间似乎还不够。

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

我和我的队友谈到缺少更多配置参数,因为在另一个配置中我看到-Xms,MaxPermSize,等等

为了避免PermGen异常以及它们的作用,缺少哪些参数?

提前致谢

2 个答案:

答案 0 :(得分:1)

-Xms256m -Xmx1024m -XX:+DisableExplicitGC -Dcom.sun.management.jmxremote
-XX:PermSize=256m -XX:MaxPermSize=512m

在您的VM参数中添加以上代码行我相信它可以为您工作

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

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

并添加以上两行

答案 1 :(得分:1)

为Java进程提供的内存量是在启动时指定的。为了使事情变得更复杂,将内存划分为单独的区域,heap和permgen是最熟悉的子区域。

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