Огромный дамп кучи (11 ГБ) - Jhat не удался, и Eclipse MAT нужна помощь

StackOverflow https://stackoverflow.com/questions/6026959

Вопрос

У нас возникла ошибка памяти в нашем советнике, и мы использовали -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/some/dir сбросить кучу во время ООМ.

У нас была куча памяти размером 12 ГБ и перманентная память 256 МБ.

Дамп кучи создается в Linux, где запущено наше приложение, и его размер составляет 11,5 ГБ.У нас нет прав на загрузку его на локальном компьютере.

Когда мы попытались проанализировать дамп кучи размером 11 ГБ, используя ДЖАТ это вызвало ООМ.

Мы попробовали следующие команды из нашего Linux CLI.

jhat java_pid1491.hprof
jhat -J-Xmx16g -XX:-UseBiasedLocking java_pid1491.hprof
jhat -J-d64 -J-Xmx16g -J-XX:-UseBiasedLocking java_pid1491.hprof#1

Для всех вариантов выдается исключение OOM после чтения дампа в течение нескольких минут (> 30 минут).

Мы погуглили и нашли МАТ как мощный анализатор дампа кучи, но не как способ его использования в LINUX.

Любые предложения будут иметь большую помощь.Спасибо.

Изменено:

MAT установлен на машине Linux x86_64, но при выполнении возникла следующая ошибка ./MemoryAnalyzer

(.:17319): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(.:17319): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(.:17319): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
(.:17319): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT (object)' failed
(.:17319): Gtk-WARNING **: Screen for GtkWindow not set; you must always set
a screen for a GtkWindow before using the window
(.:17319): Gdk-CRITICAL **: gdk_pango_context_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
(.:17319): Pango-CRITICAL **: pango_context_set_font_description: assertion `context != NULL' failed
(.:17319): Pango-CRITICAL **: pango_context_set_base_dir: assertion `context != NULL' failed
(.:17319): Pango-CRITICAL **: pango_context_set_language: assertion `context != NULL' failed
(.:17319): Pango-CRITICAL **: pango_layout_new: assertion `context != NULL' failed
(.:17319): Pango-CRITICAL **: pango_layout_set_text: assertion `layout != NULL' failed
(.:17319): Pango-CRITICAL **: pango_layout_set_attributes: assertion `layout != NULL' failed
(.:17319): Pango-CRITICAL **: pango_layout_set_alignment: assertion `layout != NULL' failed
(.:17319): Pango-CRITICAL **: pango_layout_set_ellipsize: assertion `PANGO_IS_LAYOUT (layout)' failed
(.:17319): Pango-CRITICAL **: pango_layout_set_single_paragraph_mode: assertion `PANGO_IS_LAYOUT (layout)' failed
(.:17319): Pango-CRITICAL **: pango_layout_set_width: assertion `layout != NULL' failed
(.:17319): Pango-CRITICAL **: pango_layout_get_extents: assertion `layout != NULL' failed
(.:17319): Gtk-CRITICAL **: gtk_icon_theme_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
(.:17319): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
(.:17319): Gtk-CRITICAL **: gtk_icon_size_lookup_for_settings: assertion `GTK_IS_SETTINGS (settings)' failed
(.:17319): Gtk-WARNING **: Invalid icon size 6
(.:17319): Gtk-CRITICAL **: gtk_icon_theme_load_icon: assertion `GTK_IS_ICON_THEME (icon_theme)' failed
Segmentation fault

Я пытался ./ParseHeapDump.sh ../java_pid1491.hprof это и получил следующую ошибку,

Caused by: java.lang.NoClassDefFoundError: com/ibm/dtfj/image/CorruptDataException
        at org.eclipse.mat.dtfj.InitDTFJ.stop(InitDTFJ.java:70)
Это было полезно?

Решение

Вчера я использовал MAT в Linux....проверьте подходящую версию здесь

Другие советы

Забудьте, вам понадобится более 100 ГБ ОЗУ, чтобы разобрать этот дамп, это займет целую вечность, и будет очень сложно что-то найти.Недавно я установил MAT на машину SUSE 11.работал безупречно.Можете ли вы убедиться, что MAT использует правильную JVM?Не уверен, тестируем ли мы его на чем-то еще, кроме JVM SUN/SAP.

С уважением, Маркус (колерм)

В прошлом мы успешно использовали Netbeans для анализа ошибок OOM.Казалось, он справился там, где Eclipse и JHAT не смогли.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top