我有一个在Debian上运行的Tomcat6服务器。
使用openjdk-6,我使用相同的内存设置运行了大约一年。
现在,我正在使用一些apache-poi excel导出代码,我遇到了一些字体问题。
所以,我想我会尝试切换到SUN的jdk,看它是否有所不同。
我用标准的apt-get
安装了sun的jvmapt-get install sun-java6-bin
,并使用
切换update-java-alternatives -s java-6-sun
然而,当我启动tomcat时,我得到outofmemory,服务器甚至不会启动。如果我切换回openJDK,一切正常。
之前我在这台服务器上没有任何内存问题,所以服务器突然无法启动sun的JDK感觉很奇怪。
任何人都知道为什么会发生这种情况?我错过了什么吗?
编辑:澄清我自然在tomcat中设置了堆大小等。目前正在运行:
-Xms256m -Xmx512m
如上所述,在openSDK中工作,sun-jdk中的outofmemory ......
答案 0 :(得分:1)
至少在我的系统上运行的版本中,Open JDK的默认堆大小(256 mb)比Sun JVM(128 mb)更高。只需在启动Tomcat时明确设置最大堆大小(即-Xmx256m
)。
答案 1 :(得分:0)
如果不是关于堆,请尝试使用以下内容增加permgen大小:-XX:MaxPermSize = 192m