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

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

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

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

Когда мы попытались проанализировать этот дамп кучи размером 11 ГБ, используя JHAT , он выдал OOM.

Мы попробовали следующие команды из нашего 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 минут).

Мы прогуглили его и нашли MAT в качестве мощного анализатора дампа кучи, но не способ использовать его в 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)

Ответы [ 3 ]

2 голосов
/ 17 мая 2011

Я вчера использовал MAT на Linux .... проверьте правильную версию здесь

1 голос
/ 20 мая 2011

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

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

0 голосов
/ 20 мая 2011

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

...