我有一个使用 JDK1.6
和 Tomcat 6
的网络应用程序。在我将 webapp 设置为使用 apache-tomcat-8.0.33
和 jdk1.8
后,我停止 Tomcat 并再次启动它。我在日志文件中看到一个错误:
Java HotSpot(TM) 64-Bit Server VM (25.5-b02) for linux-amd64 JRE (1.8.0_05-b13), built on Mar 18 2014 00:29:27 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
Memory: 4k page, physical 32960008k(1705688k free), swap 4095992k(9328k free)CommandLine flags: -XX:+CMSClassUnloadingEnabled -XX:InitialHeapSize=1073741824 -XX:MaxHeapSize=2097152000 -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
0.299: [GC (Allocation Failure) 512K->384K(1048064K), 0.0023630 secs]
0.462: [GC (Allocation Failure) 896K->664K(1048064K), 0.0024930 secs]
可能是什么问题?
最佳答案
tomcat 出现这些错误通常有两个原因。 1. 你没有分配足够的内存。 2. 你分配的内存太多。
我会打赌#2。
我可能误读了这个:
Memory: 4k page, physical 32960008k(1705688k free)
但这似乎表明您有 1.7GB 的可用内存。您的堆最初占用 1GB,最多占用 2GB。这不会留下大量可用内存。
除非你真的需要 1GB 的堆空间,否则你应该显着减少它,以及最大堆大小。
关于java - 'apache-tomcat-8.0.33' 'jdk 1.8'重启Tomcat时GC分配失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36943052/