我收到了OutOfMemoryError: PermGen space
错误
我使用命令运行tomcat:
/usr/local/etc/rc.d/tomcat7 start
我正在尝试增加PermGen空间(JAVA_OPTS="-XX:PermSize=256m -XX:MaxPermSize=256m"
)。
我尝试将此字符串添加到下一个地方:
catalina.sh
startup.sh
setenv.sh
tomcat7(/usr/local/etc/rc.d/)
但这没有效果。默认Tomcat服务器状态(/ manager / status)显示PS Perm Gen只允许82MB。
我做错了什么?
OS Name: FreeBSD
OS Version: 9.1-STABLE
# java -version
openjdk version "1.7.0_21"
OpenJDK Runtime Environment (build 1.7.0_21-b11)
OpenJDK 64-Bit Server VM (build 23.21-b01, mixed mode)
答案 0 :(得分:3)
是什么帮助了我:
在tomcat7(/usr/local/etc/rc.d/)
:
tomcat7_java_opts="-XX:PermSize=256m -XX:MaxPermSize=256m"
答案 1 :(得分:0)
我怀疑机器上的服务器进程没有找到正确的Java OPTS。 请尝试在服务器上找到该进程并检查传递的参数。
在Linux中,它通常是
ps -ef | grep tomcat
或ps -ef | grep java
找出进程并验证JVM参数。
编辑1:这是查找进程的命令的示例输出,可能表示java opt参数值:
local-vm-1 [5]:ps -ef | grep tomcat
tomcat 4141 1 0 07:38 ? 00:01:33 /apps/mw/jdk/1.6.0.17-64bit/bin/java -Dnop -Xms1024m -Xmx1024m -server -DTC=testplatform -DWMC_ENV
=test -XX:MaxNewSize=112m -XX:NewSize=112m -XX:SurvivorRatio=6 -XX:PermSize=256m -XX:MaxPermSize=256m -Dsun.net.inetaddr.ttl=0 -DLISTEN_ADDRESS=wsx
-test-vm-dtcp-1.managed.com -Djavax.net.ssl.trustStore=/tech/tomcat/props/ldapstore.ts -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxre
mote.host=wsx-test-vm-dtcp-1 -Dcom.sun.management.jmxremote.port=25000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.auth
enticate=true -Dcom.sun.management.jmxremote.password.file=/tech/tomcat/props/jr-password.properties -Dcom.sun.management.jmxremote.access.file=/tec
h/tomcat/props/jr-access.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/tech/tomcat/apache-tomca
t-7.0.16/endorsed -classpath /tech/tomcat/apache-tomcat-7.0.16/bin/bootstrap.jar:/tech/tomcat/apache-tomcat-7.0.16/bin/tomcat-juli.jar -Dcatalina.ba
se=/tech/tomcat/instances/testplatform -Dcatalina.home=/tech/tomcat/apache-tomcat-7.0.16 -Djava.io.tmpdir=/tech/tomcat/instances/testplatform/te
mp org.apache.catalina.startup.Bootstrap start