我们有一个Tomcat7实例,可以部署2个Web应用程序。这些webapps有很多依赖关系,目前的内存空间似乎还不够。
我们在启动文件中配置了所需的环境变量。特别是,我们设置了JAVA_OPTS = -Xmx8192
我和我的队友谈到缺少更多配置参数,因为在另一个配置中我看到-Xms,MaxPermSize,等等
为了避免PermGen异常以及它们的作用,缺少哪些参数?
提前致谢
答案 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才能正常工作。为了找到你的极限,试验一下。