2

EAでメモリエラーが発生し、-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/some/dirOOM時にヒープをダンプしていました。

12GBのヒープメモリと256MBのpermgenがありました。

ヒープダンプは、アプリケーションを実行しているLinuxボックスで生成され、そのサイズは11.5GBです。ローカルにダウンロードする権限がありません。

JHATを使用してその11GBヒープダンプを分析しようとすると、OOMがスローされました。

LinuxCLIから次のコマンドを試しました。

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

すべてのオプションで、ダンプを数分間(> 30分)読み取った後にOOM例外がスローされます。

私たちはそれをグーグルで検索し、 MATを強力なヒープダンプアナライザーとして見つけましたが、LINUXでそれを使用する方法ではありませんでした。

どんな提案ももっと助けになるでしょう。ありがとう。

変更:

Linux x86_64マシンにMATをインストールしましたが、実行時に次のエラーが発生しました./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)
4

3 に答える 3

2

昨日LinuxでMATを使用していました...ここで適切なバージョンを確認してください

于 2011-05-17T07:50:54.553 に答える
1

Jhatを忘れてください。このダンプを解析するには、100Gybteを超えるRAMが必要になります。これには永遠に時間がかかり、何かを見つけるのは非常に困難です。最近、MATをSUSE11マシンにインストールしました。完璧に動作しました。MATが正しいJVMを使用していることを確認してください。SUN /SAPJVM以外のものでテストするかどうかはわかりません。

よろしく、Markus(kohlerm

于 2011-05-20T12:57:06.023 に答える
0

過去に、Netbeansを使用してOOMエラーを分析することに成功しました。EclipseとJHATが対応できなかった場所に対応しているようです。

于 2011-05-20T05:21:35.493 に答える