Performance and scalability: JVM Crash
Hi I have a process running on following config *Linux 64 bit Physical Memory - 16 G Swap 8G *JVM Sun 1.5_14 32 bit *VM Settings -Xmx768m -Xms768m -XX:NewSize=128m -XX:MaxNewSize=128m -XX:InitialCodeCacheSize=32m -XX:ReservedCodeCacheSize=48m -XX:PermGenSize=64m -XX:MaxPermGenSize=64m which crashes once the main memory reaches around 3.2 G. Crash message Exception java.lang.OutOfMemoryError: requested 2048000 bytes for GrET in /BUILD_AREA/src/share/vm/utilities/growableArray.cpp. Out of swap space? ulimit is unlimited. None of the heap area reaches the above defined max limit. Heap remain well below 500m. We do have some native memory usage for the reason we need to limit the java usage strictly. The problem is why the process crashes around 3.2 G? Through a test program I can consume up to 4G comfortably. Any suggestions please?
Hi, -Xmx768m -Xms768m -XX:NewSize=128m -XX:MaxNewSize=128m looks like you have set the max heap size to 768M, which is probably why the process keeps crashing despite the server has enough memory. Try increasing the max heap size and see if that helps. On another note, if your application consumes more than 2.5 GB, you might need to have a 64 bit JVM installed in place of your current 32 bit JVM. Hope this helps. Keep us posted on your findings. Karthik Durairajan
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6423256 Internal fragmentation of process space causing the garbage sweep collectors to fail. Looks like no heap tuning going to help. We cant go for 64 bit vm now because of other limitations we have, and we have a lot of Native operations. For now it is just a hard choice.