У меня есть приложение JBoss 4.2.1, работающее на JVM 7, которое запускает дампы кучи, когда выдает OutOfMemoryExceptions
. У меня настроен jvm со следующими переключателями:
-Xms1498m -Xmx3000m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError
Я пытаюсь прочитать дампы кучи, чтобы выяснить, что именно вызвало мой OOME. Я вижу, что потребляются большие блоки памяти, но они несколько ожидаемы. То, что я ищу в данный момент, это «дымящийся пистолет».
Я уже открыл еще одну SO здесь проблему с отсутствующей памятью в моем дампе кучи, поэтому я пытаюсь выяснить, что JVM делала, когда произошел OOME.
Есть ли в дампе кучи что-нибудь, что указывало бы, какой поток вызвал OOME? Точнее, что делал звонок, вызвавший мой OOME? Я осознаю и понимаю, что в случае утечки памяти это может быть погоня за неправильным следом, но я хочу посмотреть, вижу ли я, какой поток вызвал исключение.
Есть ли способ использовать MAT, чтобы увидеть это?