java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError:tomcat中的PermGen空间

问题描述 投票:1回答:1

我正在使用Apache-tomcat-7.0.12来运行我的应用程序,每次重新启动服务器时都会出现以下错误。

java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
    at org.apache.tomcat.util.threads.DedicatedThreadExecutor.execute(DedicatedThreadExecutor.java:62)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5198)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3832)
    at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:424)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1205)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1391)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1401)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1401)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1380)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:188)
    at org.apache.tomcat.util.threads.DedicatedThreadExecutor.execute(DedicatedThreadExecutor.java:56)
    ... 10 more
Caused by: java.lang.OutOfMemoryError: PermGen space

我已经设置了变量CATALINA_OPTS和JAVA_OPTS。 CATALINA_OPTS:-Xms512M -Xmx1024M JAVA_OPTS:-Xms1024m -Xmx10246m -XX:NewSize = 512m -XX:MaxNewSize = 356m -XX:PermSize = 1024m -XX:MaxPermSize = 1024m

但仍然得到同样的错误。我使用sts作为IDE。

请帮帮我,如何解决这个问题。

tomcat out-of-memory
1个回答
0
投票

允许Java应用程序仅使用有限数量的内存。在应用程序启动期间指定特定应用程序可以使用的确切内存量。您正是通过指定-Xmx和-XX:MaxPermSize参数来完成此操作。

“java.lang.OutOfMemoryError:PermGen space”消息表明内存中的Permanent Size区域已耗尽,因此您可以尝试增加已指定的参数。

但是看看你当前的配置,你已经将你的permgen大小设置为1024m,所以我猜也是

a)您的配置更改未被提取 - 例如,请查看正在运行的进程,如下所示,我看到512m被用作最大允许的permgen大小:

Ivos-MacBook-Pro:testcases ivomagi$ ps axu|grep java
ivomagi           999 195.3  1.5  9644872 129756 s000  S+    4:15PM   0:04.47 /usr/bin/java -XX:MaxPermSize=512m eu.plumbr.demo.GarbageProducer

b)你正在尝试装载Truly Big(TM),如果你需要进一步增加permgen

© www.soinside.com 2019 - 2024. All rights reserved.