我有一个使用JDK1.6
和Tomcat 6
的网络应用。在我将webapp设置为使用apache-tomcat-8.0.33
和jdk1.8
后,我停止Tomcat并再次启动它。我在日志文件中看到一个错误:
适用于linux-amd64 JRE(1.8.0_05-b13)的Java HotSpot(TM)64位服务器VM(25.5-b02),于2014年3月18日00:29:27由“java_re”与gcc 4.3.0构建20080428(Red Hat 4.3.0-8)
内存:4k页,物理32960008k(1705688k免费),交换4095992k(9328k免费)CommandLine标志:-XX:+ CMSClassUnloadingEnabled -XX:InitialHeapSize = 1073741824 -XX:MaxHeapSize = 2097152000 -XX:+ PrintGC -XX:+ PrintGCTimeStamps -XX:+ UseCompressedClassPointers -XX:+ UseCompressedOops -XX:+ UseParallelGC
0.299:[GC(分配失败)512K-> 384K(1048064K),0.0023630秒]
0.462:[GC(分配失败)896K-> 664K(1048064K),0.0024930秒]
可能是什么问题?
答案 0 :(得分:0)
tomcat出现这些错误通常有两个原因。 1.你没有分配足够的内存。 你分配的内存太多了。
我打赌#2。
我可能误读了这个:
Memory: 4k page, physical 32960008k(1705688k free)
但这似乎表明你有1.7GB的可用内存。你的堆最初占用1GB,最大为2GB。这并没有留下大量的可用内存。
除非你真的需要1GB的堆空间,否则你应该大幅度减少堆空间,以及最大堆大小。