从openjdk邮件列表交叉发布。
为什么是完全gc(分配失败)或者在eden空间(几乎)为空的情况下触发gc呢。我可以看到元空间已经满了,但是由于这个原因,gc应该已经满了gc(metadata gc threshold),而不是分配失败。
这大约持续了9个小时。有什么想法吗?
2017-10-28T20:30:32.207+0000: 382100.678: [Full GC (Allocation Failure) [PSYoungGen: 0K->0K(253952K)] [ParOldGen: 146546K->146546K(348160K)] 146546K->146546K(602112K), [Metaspace: 45647K->45647K(1091584K)], 0.1865769 secs] [Times: user=0.87 sys=0.00, real=0.19 secs]
2017-10-28T20:30:32.401+0000: 382100.872: [Full GC (Allocation Failure) [PSYoungGen: 160K->0K(253952K)] [ParOldGen: 146546K->146547K(348160K)] 146706K->146547K(602112K), [Metaspace: 45647K->45647K(1091584K)], 0.1871330 secs] [Times: user=0.88 sys=0.00, real=0.18 secs]
2017-10-28T20:30:32.592+0000: 382101.064: [Full GC (Allocation Failure) [PSYoungGen: 0K->0K(253952K)] [ParOldGen: 146547K->146547K(348160K)] 146547K->146547K(602112K), [Metaspace: 45647K->45647K(1091584K)], 0.1852237 secs] [Times: user=0.88 sys=0.01, real=0.18 secs]
2017-10-28T20:30:32.786+0000: 382101.257: [Full GC (Allocation Failure) [PSYoungGen: 192K->0K(253952K)] [ParOldGen: 146547K->146558K(348160K)] 146739K->146558K(602112K), [Metaspace: 45647K->45647K(1091584K)], 0.1879624 secs] [Times: user=0.89 sys=0.00, real=0.19 secs]
2017-10-28T20:30:32.979+0000: 382101.450: [Full GC (Allocation Failure) [PSYoungGen: 0K->0K(253952K)] [ParOldGen: 146558K->146552K(348160K)] 146558K->146552K(602112K), [Metaspace: 45647K->45647K(1091584K)], 0.2331467 secs] [Times: user=1.15 sys=0.00, real=0.24 secs]
标准输出异常:
java.lang.OutOfMemoryError: Java heap space
at java.nio.HeapByteBuffer.<init>(Unknown Source) ~[?:1.8.0_121]
at java.nio.ByteBuffer.allocate(Unknown Source) ~[?:1.8.0_121]
对于普通对象分配指令也观察到类似的堆栈跟踪。
系统详细信息:
java hotspot(tm)64位服务器vm(25.121-b13),适用于linux-amd64 jre(1.8.0_121-b13),由“java_re”于2016年12月12日16:36:53使用gcc 4.3.0 20080428(red hat 4.3.0-8)构建
操作系统:red hat enterprise linux server 7.3版(迈朴)
此应用程序正在使用anonhugepages(thp)
暂无答案!
目前还没有任何答案,快来回答吧!