PS Perm Gen&& Perm Gen JVM属性?

时间:2013-05-21 07:48:51

标签: tomcat jvm

我需要一些信息:

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

在192.168.1.20(TOM04)上我有1个实例TOMCAT 7和MBEAN“java.lang:type = MemoryPool,name = Perm Gen”

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

为什么MBEAN与“PERM GEN&& PS PERM GEN”不一样是什么意思? (我想要PS Perm Gen无处不在)

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

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

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

setnenv.sh 192.168.1.20(TOM04):

  

!/斌/庆典

     
    

LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:$ CATALINA_HOME / lib中     export LD_LIBRARY_PATH

         

导出JAVA_HOME = / usr / java / default

         

JAVA_OPTS =“$ JAVA_OPTS -Xmx1024m -Xms512m -Xmn384m -server -XX:MaxPermSize = 384m”     JAVA_OPTS =“$ JAVA_OPTS -DLOG_ROOT_PATH = / opt / applogs / INSTANCE01”     JAVA_OPTS =“$ JAVA_OPTS -Dcom.ogige.environment = PRODUCTION”     JAVA_OPTS =“$ JAVA_OPTS -XX:+ HeapDumpOnOutOfMemoryError”     JAVA_OPTS =“$ JAVA_OPTS -XX:HeapDumpPath = / opt / applogs”     JAVA_OPTS =“$ JAVA_OPTS -XX:ParallelGCThreads = 2”     JAVA_OPTS =“$ JAVA_OPTS -XX:SurvivorRatio = 8”

         

导出JAVA_OPTS = $ JAVA_OPTS

  

setenv.sh 192.168.1.21(TOM01):

  

!/斌/庆典

     
    

LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:$ CATALINA_HOME / lib中     export LD_LIBRARY_PATH

         

导出JAVA_HOME = / usr / java / default

         

JAVA_OPTS =“$ JAVA_OPTS -Xmx1024m -Xms512m -Xmn384m -server -XX:MaxPermSize = 384m”     JAVA_OPTS =“$ JAVA_OPTS -DLOG_ROOT_PATH = / opt / applogs / INSTANCE01”     JAVA_OPTS =“$ JAVA_OPTS -Dcom.Ogige.environment = PRODUCTION”     JAVA_OPTS =“$ JAVA_OPTS -XX:+ HeapDumpOnOutOfMemoryError”     JAVA_OPTS =“$ JAVA_OPTS -XX:HeapDumpPath = / opt / applogs”     JAVA_OPTS =“$ JAVA_OPTS -XX:ParallelGCThreads = 2”     JAVA_OPTS =“$ JAVA_OPTS -XX:SurvivorRatio = 8”

         

导出JAVA_OPTS = $ JAVA_OPTS

  

2 个答案:

答案 0 :(得分:1)

PS =平行清除

我不知道为什么我在两个主机上的情况不一样但反正...我希望我的所有实例都使用PS XXXX,所以我只需添加setenv.sh(JAVA_OPTS =“$ JAVA_OPTS -XX: + UseParallelGC“)

答案 1 :(得分:1)

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

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

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