簡體   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