内存不足

我在我们的应用程序中看到了内存不足。 生成的hprof大约9GB,而最大堆大小为20 GB。 在yourkit线程转储中,我可以看到下面的堆栈跟踪

replication_queue-thread-p4-t1 tid = 98 [RUNNABLE] [DAEMON] <--- OutOfMemoryError在此线程中发生java.lang.OutOfMemoryError。()OutOfMemoryError.java:48 org.infinispan.commons.io.ExposedByteArrayOutputStream.write (byte [],int,int)ExposedByteArrayOutputStream.java:71

而在内存中,我可以看到ExposedByteArrayOutputStream的一个实例占用了1.6 GB的堆,实际上它的buf数组是持有1.6GB数据写入套接字的。

问题 - 即使有足够的可用堆空间,JVM如何抛出内存不足。 此临时大对象(ExposedByteArrayOutputStream)是否导致OOM?

链接地址: http://www.djcxy.com/p/81433.html

上一篇: Out of Memory

下一篇: How to monitor garbage collection to see what is GC'd?