【问题标题】:java.lang.OutOfMemoryError : Out of swap space : Analysis with GC logsjava.lang.OutOfMemoryError:交换空间不足:使用 GC 日志进行分析
【发布时间】:2013-11-28 07:23:50
【问题描述】:

我明白了

java.lang.OutOfMemoryError:为 Chunk::new 请求了 1136136 个字节。交换空间不足?

内部错误(allocation.cpp:272),pid=16889,tid=150817680 错误:Chunk::new

在 GC 日志中:

990.772: [GC 990.772: [ParNew: 172602K->15442K(176960K), 0.0488380 secs] 493872K->340757K(2601792K), 0.0492530 secs] [Times: user=0.005 sys=0.05, real /p>

29074.961: [GC 29074.961: [ParNew: 176960K->19648K(176960K), 0.0442200 secs] 1022856K->872041K(2601792K), 0.0445530 secs] [Times: user=0.24 5secs] [Times: user=0.24 sys=0.24 sys=0. /p>

493872K 最高可达1022856K。

我的内存选项是:

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

请帮忙

【问题讨论】:

  • swap out of memory 的可能重复项
  • @Narendra:493872K 达到 1022856K。这是预期的!
  • 是的,如果您的应用程序正在使用大量内存,则可能会发生这种情况。应用程序未提供请求的交换空间,因此内存不足
  • @Narendra:不断增加。这是不是内存泄漏的嫌疑人..
  • @VJS:试试这个建议:stackoverflow.com/questions/40119/…

标签: java memory-management memory-leaks garbage-collection out-of-memory


【解决方案1】:

检查您的 RAM 中有多少可用/可用空间。很可能您的内存参数必须超出可用的 RAM 空间。适当减少内存配置。

【讨论】:

    【解决方案2】:

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

    1. 进行堆转储 - jmap -dump:format=b,file=cheap.bin <pid>
    2. 在YourKit(免费试用)或VisualVM打开它
    3. 在堆中找到最大的对象 - 这将是您的泄漏 :)

    【讨论】:

    猜你喜欢
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 2011-05-25
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    相关资源
    最近更新 更多