【问题标题】:Issue with heap memory peaking堆内存峰值问题
【发布时间】:2016-02-22 19:14:05
【问题描述】:

我的 web 应用程序出现问题。我的堆内存在大约 30 分钟内达到几乎达到最大大小的峰值,并且它使我的系统崩溃。

我已经用谷歌搜索并尝试了几乎所有方法。我一直在使用 Java VisualVM、jconsole 和 Oracle Java Mission Control 监控我的堆内存(我知道它已经过时了)。

所以我一直在尝试直到知道:

  1. 监控堆内存以查看是否有特定线程在特定时间运行并且它达到内存峰值。 (情况并非如此,因为它不会在特定时间达到峰值。)

2.增加了我的堆内存大小。

  1. 遵循以下指令:

http://karunsubramanian.com/websphere/top-4-java-heap-related-issues-and-how-to-fix-them/

所以我的问题是:

是否有任何工具可以帮助我查看我是否有内存泄漏以及来自何处? 有没有人遇到过同样的问题。 有关如何管理此类问题的任何指示。

顺便说一句,我是这个领域的新手,所以请善待。

Windows Server 2012 上的 Tomcat 7 JAVA 7

如果您需要更多信息,请发表评论。

【问题讨论】:

    标签: memory-leaks tomcat7 heap-memory java-7


    【解决方案1】:

    您需要配置 jvm 以在发生内存不足时创建 heapdump。

    -XX:+HeapDumpOnOutOfMemoryError
    

    然后分析堆转储找出哪些类正在使用内存

    【讨论】:

    • 我已经做了这个,我应该看类的大小还是保留的内存?
    • 作为“小”类保留的内存会阻塞其他几个类的 gc。找到统治者
    • 它不是指向任何泄漏嫌疑人(同一个对象占用的内存量成比例更高)吗?
    猜你喜欢
    • 2014-12-01
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    相关资源
    最近更新 更多