我们的Java EE Web应用程序中有一个PermGen内存不足异常:
java.lang.OutOfMemoryError:PermGen空间
我们已经阅读了很多有关如何解决该问题的文章,几乎所有人都说我们必须增加PermSize(默认值和最大值)。但是我们无法更改它们。
我们尝试通过添加以下代码来修改setenv.sh,catalina.sh和startup.sh:
出口JAVA_OPTS =“-XX:PermSize = M -XX:MaxPermSize = 1024m
-XX:+ CMSClassUnloadingEnabled -XX:+ CMSPermGenSweepingEnabled”
我们也尝试使用终端来做到这一点:
出口JVM_ARGS =“-XX:PermSize = 256m-XX:MaxPermSize = 1024m
-XX:+ CMSClassUnloadingEnabled -XX:+ CMSPermGenSweepingEnabled”
但是,当我们使用“ jstat -gcpermcapacity”进行检查时,没有任何变化;内存总是一样的。
我们的环境是Centos 6,Apache 2.2,Tomcat 5.5,Java 6,我们已经完成了应用程序部署
在我们的帐户中通过WHM安装servlet。
最佳答案
尝试在您的tomcat.conf中进行更改。
实际上,请使用ps ax | grep java查看已运行了哪些命令行来生成您的参数。矿山产生:
26552 pts / 1 Sl 0:36 / usr / lib / jvm / jre / bin / java -Xdebug -Xrunjdwp:transport = dt_socket,address = 8000,server = y,suspend = n -Xmx1024m -XX:MaxPermSize = 128m -classpath :/usr/share/tomcat6/bin/bootstrap.jar:/usr/share/tomcat6/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base = / usr / share / tomcat6 -Dcatalina.home = / usr / share / tomcat6 -Djava.endorsed.dirs = -Djava.io.tmpdir = / var / tmp / tomcat6 -Djava.util.logging.config.file = / usr / share / tomcat6 /conf/logging.properties -Djava.util.logging.manager = org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap启动
这是在tomcat6,java6,centos 5.5上
关于java - 无法更改内存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10701264/