繁体   English   中英

巨大的堆转储(11GB)-Jhat失败&Eclipse MAT需要帮助

[英]Huge heap dump (11GB) - Jhat failed & Eclipse MAT needed help

我们在EA中遇到了一个内存错误,并且在OOM时使用-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/some/dir来转储堆。

我们的堆内存为12GB,perm生成为256MB。

堆转储在运行我们的应用程序的Linux框中生成,其大小为11.5GB。 我们没有特权将其下载到本地。

当我们尝试使用JHAT分析11GB堆转储时,它抛出了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

对于所有选项,在读取转储几分钟(> 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)

我昨天在Linux上使用MAT。... 在此处查看正确的版本

忘了Jhat,您将需要超过100Gybte的RAM来解析此转储,这将花费很多时间,而且很难找到某些东西。 我最近刚在SUSE 11机器上安装了MAT。 完美地工作。 您可以确保MAT使用的是正确的JVM吗? 不知道我们是否先使用SUN / SAP JVM进行测试。

问候,马库斯( kohlerm

过去,使用Netbeans分析OOM错误已经取得了成功。 似乎可以应付Eclipse和JHAT无法做到的地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM