自动化堆转储和线程转储

时间:2015-11-27 07:04:03

标签: java memory-management memory-leaks heap heap-dump

我正在分析内存泄漏和性能问题的应用程序。我想在某些条件下创建堆转储和线程转储。 JVM版本是1.6。有没有可能的方法,只要堆内存使用量增加到70%或触发完整GC之前,我们就可以安排堆转储和线程转储。

1 个答案:

答案 0 :(得分:0)

您可以使用JMX创建线程转储和堆转储。

有关线程转储的信息,请参阅ThreadMXBean

堆的HotSpotDiagnosticMXBean(可能特定于oracle / sun jvm)

如果您想在应用程序中使用它,您可以注册一个jmx监视器+监听器,以便在内存超过给定阈值时收到通知。

如果你想从另一个进程中执行它,那么你需要从脚本中提取内存使用量(通常也使用jmx ...) 然后发送信号到jvm以获取堆+线程转储或使用jdk实用程序(jstack + jmap)