我需要一些信息:
我有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
答案 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“。至少,我可以用这种方式复制你的行为......