我有一台在Debian上运行的Tomcat6服务器,上面运行着4个webapps和一个in-JVM ActiveMQ服务器。
它已经运行了大约一年,与openjdk – 6相同的内存设置。 一切都很花哨,没有问题。
现在,由于各种原因,我需要尝试Sun的JDK。
所以,我用标准的apt-get安装了sun的jvm
apt-get install sun-java6-bin,并使用切换
update-java-alternatives -s java-6-sun
但是,当我启动tomcat,我得到outofmemory,服务器甚至不会启动! 如果我切换回openJDK,所有工作再次罚款。
我以前在这台服务器上没有任何内存问题,所以感觉很奇怪,服务器突然不能启动sun的JDK。
任何人都有任何线索,为什么会发生这种情况? 我错过了什么?
我自然已经在tomcat中设置了堆大小等。 目前正在运行:
-Xms256m -Xmx1024m
正如上面提到的在openSDK中工作,sun-jdk中的outofmemory …
编辑:服务器是64位,openJDK和Sun都是1.6.0,都是64位的JVM。
要回答我自己的问题,因为我最后想到了这个问题:
事实certificate,我们已经设置了xmx和xms,但是,我们没有设置-XX:MaxPermSize。
这个在openJDK中默认为256mb,而在SunJava中只有128mb。 这是切换时造成的。
在catalina.sh中input-XX:MaxPermSize = 256m之后,在两个JVM中都可以正常工作!