java - 'apache-tomcat-8.0.33' 'jdk 1.8'重启Tomcat时GC分配失败

标签 java tomcat garbage-collection

我有一个使用 JDK1.6Tomcat 6 的网络应用程序。在我将 webapp 设置为使用 apache-tomcat-8.0.33jdk1.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/

相关文章:

c++ - C++有垃圾收集类吗

java - Netbeans 抛出有关 super 构造函数的错误

tomcat - tomcat maven插件的嵌入式tomcat实例中的空白页面

.net - 事件处理程序的垃圾收集

c# - 对同一个对象的多个 WeakReferences 是否总是同步的?

spring - 将 Spring Web MVC 应用程序部署为域根中的网站

java - 你如何制作自定义小部件?

java - Java 上用于 HTTP 请求的最佳现代 Web 服务器引擎或框架?

java - Spring Controller 编程风格

java - Spring Boot 应用程序在部署到 Tomcat 时会出现 404,但适用于嵌入式服务器