Fra*_*kPl 1 java tomcat garbage-collection out-of-memory
在我们的Tomcat应用程序中,我们得到"OutOfMemoryError:超出GC开销限制".但Runtime.getRuntime().freeMemory()报告576 MB是免费的.
怎么会发生这种情况?
从SQL Server JDBC驱动程序中抛出错误,我无法想象这将尝试在一个内存请求中分配数百兆字节.GarbageCollectorMXBean在错误被抛出之前的几分钟内,"PS Scavenge"以及"PS MarkSweep" 的s计数没有增加太多.
Runtime.getRuntime().maxMemory()以及Runtime.getRuntime().totalMemory()报告4.5 GB.这与64位Sun JVM for Java 7一起运行.
"超出GC开销限制"意味着您的堆没有用尽,但是在垃圾回收上花费的CPU时间量已超过预定义的限制.基本上,除了收集垃圾之外,你的JVM几乎没有其他功能.这可能是由多种原因造成的,最典型的是堆几乎耗尽,但每个主要的GC设法只是满足分配请求.
在您的情况下,可能还有其他原因,例如巨大的堆大小以及太多的主要GC.您需要使用诊断工具调查您的情况.我强烈推荐visualgc.
| 归档时间: |
|
| 查看次数: |
1102 次 |
| 最近记录: |