50GB Heap dump generated by jconsole is not loaded in 12.0.2

Questions about YourKit Java Profiler
Post Reply
sursubra
Posts: 1
Joined: Fri Jan 04, 2013 6:47 am

50GB Heap dump generated by jconsole is not loaded in 12.0.2

Post by sursubra »

Hi

I recently purchased YourKit 12.0.2 Java Profiler and want to load a huge heap dump generated using jconsole. I was trying with different Heap Memory setting( -Xmx setting : default 512MB, 1GB, 2GB,4GB, 6GB, 8GB and 12GB) for yourKit with -Dyjp.dominators=false setting. But still i am not able to load the heap dump in the yourkit. My machine have 80GB RAM and 160GB temp file. But all the time 49% of the heap is parsed and then i get a error message saying that "Not enough virtual Memory".

following is the log file content.
[root@ecp-10-194-178-69 log]# cat yjp-4745.log
12.0.2 - 1.831: Command line:
./../jre64/bin/java
-Xmx6g
-XX:PermSize=256m
-XX:MaxPermSize=256m
-XX:+HeapDumpOnOutOfMemoryError
-Dyjp.dominators=false
-Xbootclasspath/a:./../lib/tools.jar
-jar
./../lib/yjp.jar
12.0.2 - 1.831: uname:
sysname: Linux
release: 2.6.18-194.el5
version: #1 SMP Fri Apr 2 14:58:14 EDT 2010
machine: x86_64
12.0.2 - 1.831: Linux; fast_thread_cpu_time=1; 64-bit process
12.0.2 - 1.831: shmem 4234148E: OK
12.0.2 - 1.833: shmem 42341490: OK
12.0.2 - 71.692: Loader for HPROF: /root/Snapshots/notifier.dump
12.0.2 - 71.698: pass1: starting
12.0.2 - 251.698: pass1: finished
12.0.2 - 251.701: pass2: starting
12.0.2 - 431.701: pass2: finished
12.0.2 - 550.230: OIDs converted
12.0.2 - 550.232: createStorage: objectCount=1163164584: process: CPU 739275 ms (kernel: 53093 ms); 15597 Mb
12.0.2 - 550.243: exception caught at ObjectStorageNatives.cpp:52
12.0.2 - 730.243: Loader for HPROF: /root/Snapshots/notifier.dump
12.0.2 - 730.246: pass1: starting
12.0.2 - 910.246: pass1: finished
12.0.2 - 910.247: pass2: starting
12.0.2 - 1090.247: pass2: finished
12.0.2 - 1209.093: OIDs converted
12.0.2 - 1209.093: createStorage: objectCount=1163164584: process: CPU 1405832 ms (kernel: 85286 ms); 15675 Mb
12.0.2 - 1209.093: exception caught at ObjectStorageNatives.cpp:52
[root@ecp-10-194-178-69 log]#


i also find another log 0.log which has the following content


2013-01-03 22:21:40.057 0 +0 INFO com.yourkit.Main0 :
---------------------------------------------------------------------
Product: YourKit Java Profiler 12.0.2
Build: 12070 on Thu Dec 20 18:51:00 PST 2012
JDK: 1.6.0_37
VM: Java HotSpot(TM) 64-Bit Server VM
Vendor: Sun Microsystems Inc.
OS: Linux
OS version: 2.6.18-194.el5
OS arch: amd64


2013-01-03 22:21:40.067 0 +0 INFO com.yourkit.Main0 : number of args: 0
2013-01-03 22:21:40.333 0 +0 INFO com.yourkit.Main0 : oomeDumperStatus: 1
2013-01-03 22:22:52.222 72 +71 INFO com.yourkit.c.o : database: /root/Snapshots/notifier.dump -1
2013-01-03 22:22:52.243 72 +0 INFO com.yourkit.c.a2 : PID: 4745
2013-01-03 22:42:35.987 1255 +1183 SEVERE com.yourkit.ui.bi$1 :
com.yourkit.util.z: java.lang.RuntimeException: db::oome
at com.yourkit.ui.av.<init>(a:13)
at com.yourkit.ui.av.<init>(a:49)
at com.yourkit.d.an.if(a:159)
at com.yourkit.d.an.do(a:123)
at com.yourkit.d.an$a$a.if(a:10)
at com.yourkit.ui.g.n.actionPerformed(a:84)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at com.yourkit.ui.g.j$1.fireActionPerformed(a:6)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6297)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
at java.awt.Component.processEvent(Component.java:6062)
at java.awt.Container.processEvent(Container.java:2039)
at java.awt.Component.dispatchEventImpl(Component.java:4660)
at java.awt.Container.dispatchEventImpl(Container.java:2097)
at java.awt.Component.dispatchEvent(Component.java:4488)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
at java.awt.Container.dispatchEventImpl(Container.java:2083)
at java.awt.Window.dispatchEventImpl(Window.java:2489)
at java.awt.Component.dispatchEvent(Component.java:4488)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:668)
at java.awt.EventQueue.access$400(EventQueue.java:81)
at java.awt.EventQueue$2.run(EventQueue.java:627)
at java.awt.EventQueue$2.run(EventQueue.java:625)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:641)
at java.awt.EventQueue$3.run(EventQueue.java:639)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:638)
at com.yourkit.c$b.dispatchEvent(a:32)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.yourkit.ui.m.a(a:314)
at com.yourkit.ui.m.a(a:473)
at com.yourkit.d.an.if(a:1)
at com.yourkit.ui.g.n.actionPerformed(a:84)
at com.yourkit.ui.be.a(a:66)
at com.yourkit.ui.be.a(a:60)
at com.yourkit.ui.be$1.mouseReleased(a:17)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273)
at java.awt.Component.processMouseEvent(Component.java:6297)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
at java.awt.Component.processEvent(Component.java:6062)
at java.awt.Container.processEvent(Container.java:2039)
at java.awt.Component.dispatchEventImpl(Component.java:4660)
at java.awt.Container.dispatchEventImpl(Container.java:2097)
at java.awt.Component.dispatchEvent(Component.java:4488)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
at java.awt.Container.dispatchEventImpl(Container.java:2083)
at java.awt.Window.dispatchEventImpl(Window.java:2489)
at java.awt.Component.dispatchEvent(Component.java:4488)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:668)
at java.awt.EventQueue.access$400(EventQueue.java:81)
at java.awt.EventQueue$2.run(EventQueue.java:627)
at java.awt.EventQueue$2.run(EventQueue.java:625)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:641)
at java.awt.EventQueue$3.run(EventQueue.java:639)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:638)
at com.yourkit.c$b.dispatchEvent(a:32)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.RuntimeException: db::oome
at com.yourkit.Natives.createStorage(Native Method)
at com.yourkit.c.c.d.<init>(a:169)
at com.yourkit.c.c.a.b.<init>(a:1289)
at com.yourkit.c.a2.<init>(a:68)
at com.yourkit.c.v.a(a:225)
at com.yourkit.d.an$4.a(a:4)
at com.yourkit.ui.av$1.run(a:4)
at com.yourkit.ui.av$b.run(a:28)
2013-01-03 22:42:36.276 1256 +0 INFO com.yourkit.ui.bi$1$1 : ===============================================
==============================
DB: file=/root/Snapshots/notifier.dump hasController=false

Own:

string records= 0/ 1280 allocated=0 MB
thread records= 0/ 1280 allocated=0 MB
method records= 0/10486016 allocated=0 MB
threadframe records= 0/ 1280 allocated=0 MB
j2ee records= 0/ 1280 allocated=0 MB
monitor records= 0/ 1280 allocated=0 MB
cpuprofiling records= 0/ 1280 allocated=0 MB
instancecounts records= 0/ 1280 allocated=0 MB
frame records= 0/ 1280 allocated=0 MB
tablegeneration records= 0/ 1280 allocated=0 MB
snapshot records= 0/ 1280 allocated=0 MB
allocinfo records= 0/ 1280 allocated=0 MB
allocator records= 0/ 1280 allocated=0 MB
generation records= 0/ 1280 allocated=0 MB
properties records= 0/ 1280 allocated=0 MB
tele records= 0/ 1280 allocated=0 MB
threadstate records= 0/ 1280 allocated=0 MB
exception records= 0/ 1280 allocated=0 MB
tele_ext records= 0/ 1280 allocated=0 MB
user_table_start_row records= 0/ 1280 allocated=0 MB

telemetryLimit=-1

probeTableLengthLimit=-1

String bodies: 0 MB
TFI: 0 MB

Total size: 0 MB
Properties:

2013-01-03 22:55:36.965 2036 +780 INFO com.yourkit.c.o : database: /root/Snapshots/notifier.dump -1
2013-01-03 22:55:36.965 2036 +0 INFO com.yourkit.c.a2 : PID: 4745
[root@ecp-10-194-178-69 log]#


is there any suggestion to load the heap dump into the tool?.

Regards
Suresh Subramanian
Anton Katilin
Posts: 6172
Joined: Wed Aug 11, 2004 8:37 am

Re: 50GB Heap dump generated by jconsole is not loaded in 12

Post by Anton Katilin »

Hello Suresh
Heap Memory setting( -Xmx setting : default 512MB, 1GB, 2GB,4GB, 6GB, 8GB and 12GB)
Because you don't get a Java level out of memory error, the setting -Xmx6G should be enough.
My machine have 80GB RAM and 160GB temp file
Do you mean a swap file? Please try to increase it.
Peak memory usage when loading a snapshot can sometime be 3 times bigger than the snapshot size on disk.

Can you share the dump file? We'd try to find the actual memory requirements in this particular case, as well as check whether there is a bug preventing the dump loading.

Best regards,
Anton
Anton Katilin
Posts: 6172
Joined: Wed Aug 11, 2004 8:37 am

Re: 50GB Heap dump generated by jconsole is not loaded in 12

Post by Anton Katilin »

FYI: we've improved snapshot loading in v2014 EAP:
http://www.yourkit.com/eap

If you still have that or similar huge snapshots, please try opening them with the new build.
Post Reply