[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