Русский English Тэги View Sergey Zolotaryov's profile on LinkedIn Вход
Как узнать, кто наделал OOM
Постоянная ссылка 16-05-2008 anydoby java

Поступила задача - найти виновника OutOfMemory. Сложность состяла в том, что воспроизводилась ошибка крайне нестабильно - система могла работать месяцами а потом в один прекрасный момент за пять минут размер хипа повышался до 2гб и сервер падал. Причем на многопроцессорных тачках воспроизводилось чаще, но тоже никто не мог когда и как поймать сей момент. Естественно, профайлером следить долго и неэффективно.

Оказалось, в Java 5+ есть замечательный флажок -XX:+HeapDumpOnOutOfMemoryError. При падении JVM по OOM в файл дампа пишется все содержимое памяти на момент падения. Есть способ указать, в какую именно папку класть эти дампы: -XX:HeapDumpPath=/home/dumps.

Очень здорово. А что с этим дампом делать? Есть куча тулзов, занимающихся расшифровкой дампов. Я нашел замечательный бесплатный инструмент, плагин к Eclipse - SAP Memory Analyzer. Очень мощная, когда-то платная, а теперь OpenSource программа, позволяющая определить почему и как ваша система упала.

Читаем хелпы и лечим сервера, удачи :)

Добавить комментарий

oledz
24-07-2008

"SAP Memory Analyzer supports HPROF binary heap dumps, a de-facto standard of Sun supported also by other vendors:

Sun, SAP and HP JDK/JVM from version 1.4.2_12 and 5.0_7 and 6.0 upwards

IBM doesn't support HPROF binary heap dumps. Therefore IBM heap dumps can't be analyzed with the SAP Memory Analyzer. We know of no tool to convert an IBM heap dump into an HPROF binary heap dump, but surely such a converter (System Dump/DTFJ API -> HPROF binary heap dump) could be written."

Do you know any *good* dump analyzer for WebSphere AS?

anydoby
24-07-2008

Thanks for your interest :)
Unfortunately, I haven't had such problems on websphere server so I didn't investigate it further. We did memory profiling for JBoss and had other problem: the jvm simply died with no dump.

krumzv
24-10-2008

the memory analyzer is now able to work also with data from IBM systems. here more info: http://dev.eclipse.org/blogs/memoryanalyzer/2008/10/23/troubleshooting-memory-problems-from-ibm-systems-with-memory-analyzer/

anydoby
24-10-2008

thanks for the info

Предыдущая статья Как заставить IE не кэшировать страницы Следующая статья IE file could not be written to the cache