Skip to main content

OOME under low and heavy load!!!

2 replies [Last post]
nizanh
Offline
Joined: 2009-06-15

Hi guys

I could do with some assitance here as google can only provide snippets of information relating to the problem I face.

I am working with and app running on SunOS 10 release 5 (5.10 Generic_137111-06 sun4v sparc) SUNW on a T5240 under JDK1.5.0_06. The container is WebLogic Server 10.

Under light load the JVM crashes with:
ServletException.
java.lang.OutOfMemoryError
at java.util.zip.Deflater.init(Native Method)
at java.util.zip.Deflater.(Deflater.java:117)
at java.util.zip.GZIPOutputStream.(GZIPOutputStream.java:46)
at java.util.zip.GZIPOutputStream.(GZIPOutputStream.java:58)
at net.sf.packtag.filter.GzipResponseStream.(GzipResponseStream.java:37)
Truncated. see log file for complete stacktrace

which is very ofen accompanied by a Swap Space Error.

And under heavy load Old Gen fills up completely and the JVM eventually dies or fails with
java.lang.OutOfMemoryError
at java.util.zip.Deflater.init(Native Method)
at java.util.zip.Deflater.(Deflater.java:117)
at java.util.zip.GZIPOutputStream.(GZIPOutputStream.java:46)
at java.util.zip.GZIPOutputStream.(GZIPOutputStream.java:58)
at net.sf.packtag.filter.GzipResponseStream.(GzipResponseStream.java:37)
at net.sf.packtag.filter.GzipResponseWrapper.createOutputStream(GzipResponseWrapper.java:37)
at net.sf.packtag.filter.GzipResponseWrapper.getWriter(GzipResponseWrapper.java:83)
at BulletinTicker.BulletinServlet.doGet(BulletinServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

and/or

>
<[weblogic.servlet.internal.WebAppServletContext@9d93be - appName: 'MCApplication',
ception.
java.lang.OutOfMemoryError
at java.util.zip.Deflater.init(Native Method)
at java.util.zip.Deflater.(Deflater.java:117)
at java.util.zip.GZIPOutputStream.(GZIPOutputStream.java:46)
at java.util.zip.GZIPOutputStream.(GZIPOutputStream.java:58)
at net.sf.packtag.filter.GzipResponseStream.(GzipResponseStream.java:37)
Truncated. see log file for complete stacktrace
>

Exception java.lang.OutOfMemoryError: requested 169344 bytes for GrET* in /BUILD_AREA/jdk1.5.0_06/hotspot/src/share/vm/utilities/growableArray
Exception java.lang.OutOfMemoryError: requested 169344 bytes for GrET* in /BUILD_AREA/jdk1.5.0_06/hotspot/src/share/vm/utilities/growableArray
.cpp. Out of swap space?

The JVM memory args are: -Xms1536m -Xmx1536m -XX:NewSize=786m -XX:MaxNewSize=786m -XX:PermSize=256m -XX:MaxPermSize=512m -Xss128k -XX:CompileThreshold=8000 -XX:+UseParallelGC -XX:ParallelGC
Threads=4 -XX:SurvivorRatio=8 -Xverify:none

I've been watching the pattern and it seems that we can avoid the OOME relating to Swap Space and /or Deflator when we apply a higher load.

OS info shows:
genunix: [ID 120576 kern.notice] basic rctl process.max-stack-size (value 8388608) exceeded by process [JVMPID]

Would I be right in saying that Java isn't clearing down the non-heap objects in a timely manner under lower load which allows the app to use up it's allocation of non-heap stack size space? Whereas under heavy load GC occurs more frequently which can help control non-heap stack usage?

I realise that the app itself has a memory leak which causes OG space build up, but this error is aswell as that.

Any ideas?

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
linuxhippy
Offline
Joined: 2004-01-07

Your JVM seems to run out of C-heap.
Your heap is 1,5GB + 256MB perm size, so there's not much room left to breathe for native code.

Deflater holds quite a bunch of native memory, so if you have many open Deflaters arround, that could be the source of your problem. You could try to reduce your maximum heap setting by a few hundred MB, or use a 64bit JVM instead.

- Clemens

peter__lawrey
Offline
Joined: 2005-11-01

It could be a bug. Have you tried Java 5 update 19 instead of Java 5 update 6?

http://java.sun.com/javase/downloads/index_jdk5.jsp