首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.OutOfMemoryError:使用Mule mmc和Tomcat7的PermGen空间

java.lang.OutOfMemoryError:使用Mule mmc和Tomcat7的PermGen空间
EN

Stack Overflow用户
提问于 2017-01-06 18:13:25
回答 3查看 759关注 0票数 0

我们在我们的环境中获得了java.lang.OutOfMemoryError: PermGen空间: Windows Server 2012 R2 64位8 8GB JRE 1.7 u80 Tomcat7.0.73 ActiveMQ 5.9.0 Mule runtime 3.5.4 Mule管理控制台3.5.3部署在Tomcat7 webservice war文件上,该文件使用在Tomcat7上部署的PhantomJS 1.9.8

Tomcat/bin文件夹下的setenv.bat文件,设置如下: setenv JAVA_OPTS=-Xms512M -Xmx2048m -XX:PermSize=1024m -XX:MaxPermSize=1024m

另外,JVM的注册表设置在tomcat7w.exe下:初始内存池:256MB最大内存池:1536MB

可以解释一下内存池的setenv.bat文件设置和tomcat7w.exe设置哪个优先吗?此外,此环境的理想设置应该是什么,因为这些设置当前在windows server 2008 R2 64位和16 64内存上运行?

EN

回答 3

Stack Overflow用户

发布于 2017-01-06 18:19:25

这取决于你是如何启动Tomcat的,是作为windows服务启动还是通过catalina.bat启动。

你可以查看以下帖子:问题:Configure Tomcat as a service (no catalina.bat)

票数 0
EN

Stack Overflow用户

发布于 2017-01-06 19:18:13

正如@GKGeorgiev所说,这将取决于您如何启动Tomcat。

我建议你做个小实验:

  1. setenv.bat中的最大堆大小设置更改为足以触发立即失败的值。
  2. 启动Tomcat.

如果这导致行为改变(例如,立即失败),您就知道setenv.bat文件是优先的文件。如果不是,那就不是。

然后以相反的方式进行实验;即更改等效的注册表设置,看看是否有任何效果。

此外,请查看适用于您正在使用的启动方法的Tomcat文档。

最后,建议升级到Java 8。Java 7远远超出了它的EOL,并且运行一个没有获得安全补丁的Java版本是有风险的。

票数 0
EN

Stack Overflow用户

发布于 2017-01-08 04:45:38

对于理想的内存设置

Xms和Xmx应该相等,

在catalina.bat JAVA_OPTS变量中,您应该定义内存参数。

在启动时,这将优先。

保重

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41503399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档