提问者:小点点

PS永久发电机


我需要一些信息:

我有 2 台带有 TOMCAT 7.0.28 和 JAVA 的 redhat 6.1 Linux 服务器jdk1.7.0_05

在192.168.1.20(TOM04)上,我有一个实例TOMCAT 7,带有MBEAN“Java . lang:type = memory pool,name=Perm Gen”

在 192.168.1.21(TOM01) 上,我有 1 个实例 TOMCAT 7,带有 MBEAN “java.lang:type=MemoryPool,name=PS Perm Gen”

为什么MBEAN与“PERM GEN”不同

http://img27.imageshack.us/img27/5803/tom01u.png

http://img839.imageshack.us/img839/7539/tom04.png

Java 版本相同:java 版本 java 版本 “1.7.0_05” Java(TM) SE 运行时环境(build 1.7.0_05-b06)

setnenv.sh192.168.1.20(TOM04):

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib导出LD_LIBLARY_PAT

导出JAVA_HOME=/usr/java/default

JAVA _ OPTS = " $ JAVA _ OPTS-xmx 1024m-xms 512m-xmn 384m-server-XX:MaxPermSize = 384m " JAVA _ OPTS = " $ JAVA _ OPTS-DLOG _ ROOT _ PATH =/opt/applogs/instance 01 " JAVA _ OPTS = " $ JAVA _ OPTS-DCOM . ogig . environment = PRODUCTION " JAVA _ OPTS = " $ JAVA _ OPTS-XX:heapdumponotofmemorerror " JAVA _ OPTS = " $ JAVA _ OPTS-XX:HeapDumpPath

导出 JAVA_OPTS=$JAVA_OPTS

setenv.sh192.168.1.21(TOM01):

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib导出LD_LIBLARY_PAT

导出JAVA_HOME=/usr/java/default

JAVA _ OPTS = " $ JAVA _ OPTS-xmx 1024m-xms 512m-xmn 384m-server-XX:MaxPermSize = 384m " JAVA _ OPTS = " $ JAVA _ OPTS-DLOG _根_路径=/opt/applogs/instance 01 " JAVA _ OPTS = " $ JAVA _ OPTS-Dcom。ogige . environment = PRODUCTION " JAVA _ OPTS = " $ JAVA _ OPTS-XX:heapdumponotofmemoryerror " JAVA _ OPTS = " $ JAVA _ OPTS-XX:HeapDumpPath =/opt/applogs " JAVA _ OPTS = " $ JAVA _ OPTS-XX:ParallelGCThreads = 2 " JAVA _ OPTS = " $ JAVA _ OPTS-XX:survivor ratio = 8 "

导出 JAVA_OPTS=$JAVA_OPTS


共2个答案

匿名用户

PS=并行清除

我不知道为什么我在两台主机上没有相同的实例,但无论如何…我想拥有PS XXXX的所有实例,所以我只添加了setenv。sh(JAVA_OPTS=“$JAVA_PTS-XX:使用并行GC”)

匿名用户

默认情况下,64 位 JVM 默认为并行 GC,而 32 位 JVM 则不然。这就是为什么你在一个上面看到“PS Perm Gen”,而在另一个看到普通的“Perm Gen”。最有可能的是,其中一个使用 64 位 JRE/JDK,另一个使用 32 位(即使两台机器都是 64 位)

当然,如果需要,您可以手动指定GC选项以强制在两个环境中使用相同的GC…或者,如果它们都是64位…只需验证您在两个环境中都使用了64位JVM。(或者在两个环境中都是32位,如果内存不是问题)

您可以通过在两个环境中运行“java-version”来验证这一点(假设您使用的是PATH JRE/JDK中的JRE/JDK,而不是JAVA_HOME指定的单独的JRE/JDK,Tomcat可能会这样做),并且应该看到一个说“64位服务器VM”,另一个说“客户端VM”。至少,我可以以这种方式复制您的行为…