0

java.lang.OutOfMemoryError:交换空间:分析GC日志

java.lang.OutOfMemoryError: requested 1136136 bytes for Chunk::new. Out of swap space?

Internal Error (allocation.cpp:272), pid=16889, tid=150817680 Error: Chunk::new

在GC日志:

990.772:GC 990.772:[ParNew:172602K-> 15442K(176960K ),0.0488380秒] 493872K-> 340757K(2601792K),0.0492530秒] [时间:用户= 0.18 SYS = 0.05,真= 0.05秒]

29074.961:[GC 29074.961:[ParNew:176960K-> 19648K(176960K ),0.0442200秒] 1022856K-> 872041K(2601792K),0.0445530秒] [时间:用户= 0.24 sys = 0.01,实际= 0.05秒]

493872K达到1022856K

我的纪念品选项有:

"-Xmx2560m -Xms2560m -XX:NewSize=192m -XX:MaxNewSize=192m -XX:+UseTLAB -XX:MaxPermSize=64m"

请帮

+0

可能重复[换掉内存](http://stackoverflow.com/questions/9645609/swap-out-of-memory) –

+0

@Narendra:493872K达到1022856K。这是预期的! – VJS

+0

是的,如果你的应用程序使用了大量的内存,可能会发生这种情况。应用程序没有提供请求的交换空间,因此outofmemory –

回答

0

检查多少可用/自由空间怎么会出现在您的RAM。很可能你的内存参数必须超过可用的RAM空间。适当减少您的内存配置。

0

如果它不断增加,那肯定是内存泄漏。

  1. 采取堆转储 - jmap -dump:format=b,file=cheap.bin <pid>
  2. 打开它YourKit(免费试用)或VisualVM
  3. 查找堆中的最大目标 - 这将是你的泄漏:)
+0

最近我已经找到关于所有的OOM问题的简短教程http://progrnotes.blogspot.com/2015/12/javalangoutofmemoryerror-8-symptoms.html – Sergey