[jboss-user] [Performance Tuning] - Re: [JBoss 5.0-CR2] OutOfMemory JVM Crash during JIT

ceciiil do-not-reply at jboss.com
Wed Oct 29 06:02:21 EDT 2008


Hi Peter,

Thanks for your feedback. My Windows 2003 SP2 server running in 32 bits mode (with /3GB option in boot.ini) is set up with 4GB memory and 4GB paging.

The problem has been reproduced with both JRE-1.6.0_7 and JRE-1.5.0_15.

So I have tried to change my JVM options with increased Perm size as follow : 


  | jvm_args: -Dprogram.name=pdm.bat -Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+Dis
  | ableExplicitGC
  | 

Result : JBoss 5 crashes at startup time ! (with JRE6 - I didn't try this set up with JRE5). Again CompilerThread while this time compiling JBoss method : 


  | #
  | # An unexpected error has been detected by Java Runtime Environment:
  | #
  | # java.lang.OutOfMemoryError: requested 35608 bytes for Chunk::new. Out of swap space?
  | #
  | #  Internal Error (allocation.cpp:218), pid=5756, tid=8176
  | #  Error: Chunk::new
  | #
  | # Java VM: Java HotSpot(TM) Server VM (10.0-b23 mixed mode windows-x86)
  | # If you would like to submit a bug report, please visit:
  | #   http://java.sun.com/webapps/bugreport/crash.jsp
  | # The crash happened outside the Java Virtual Machine in native code.
  | # See problematic frame for where to report the bug.
  | #
  | 
  | ---------------  T H R E A D  ---------------
  | 
  | Current thread (0x64142800):  JavaThread "CompilerThread0" daemon [_thread_in_native, id=8176, stack(0x64330000,0x64380000)]
  | 
  | Stack: [0x64330000,0x64380000]
  | [error occurred during error reporting (printing stack bounds), id 0x80000001]
  | 
  | 
  | Current CompileTask:
  | C2:1420  !   org.jboss.ejb3.Ejb3Deployment.deployElement(Ljava/io/InputStream;Lorg/jboss/ejb3/Ejb3HandlerFactory;Ljavax/naming/InitialContext;)V (66 bytes)
  | 
  | Heap
  |  PSYoungGen      total 217472K, used 176224K [0x539d0000, 0x639d0000, 0x639d0000)
  |   eden space 170432K, 97% used [0x539d0000,0x5dbec148,0x5e040000)
  |   from space 47040K, 21% used [0x60be0000,0x615dc210,0x639d0000)
  |   to   space 44672K, 0% used [0x5e040000,0x5e040000,0x60be0000)
  |  PSOldGen        total 786432K, used 200494K [0x239d0000, 0x539d0000, 0x539d0000)
  |   object space 786432K, 25% used [0x239d0000,0x2fd9b9b0,0x539d0000)
  |  PSPermGen       total 524288K, used 39978K [0x039d0000, 0x239d0000, 0x239d0000)
  |   object space 524288K, 7% used [0x039d0000,0x060da870,0x239d0000)
  | 
  | 

So i have fixed the issue decreasing the heap memory : 


  | jvm_args: -Dprogram.name=pdm.bat -Xms768m -Xmx768m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+Dis
  | ableExplicitGC
  | 

I can now run the test with the same level of users as in JBoss 4.2.3/EJB2 but lower perfromances as heap size is reduced.

To summarize what we have observed : 

- Heap = 1024 / Perm = 256 : JVM crashes with 5 users (JRE5/JRE6)
- Heap = 1024 / Perm = 512 : JVM crashes at JBoss startup time  (JRE6)
- Heap = 768 / Perm = 512 = OK (JRE6)

I suspect there is an issue in the way JBoss 5 handles Perm size and CompilerThreads in JIT. And I dont think we will migrate our solution to JBoss 5 as a result unless this issue is fixed.

If you would I can mail you the pic of our GC Viewer while the test is running and until the system crashes (I can't attach a file here and because of my company proxy I can't upload the picture on the www)


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4185318#4185318

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4185318



More information about the jboss-user mailing list