I will try that when I get the database locally.  It is 20Gb compressed, so it 
is taking a while for the customer to get me a copy.

Brett

-----Original Message-----
From: Kristian Waagan [mailto:[email protected]] 
Sent: Wednesday, February 15, 2012 4:15 PM
To: [email protected]
Subject: Re: Quetion on out memory usage

On 15.02.2012 19:59, Bergquist, Brett wrote:
> Thanks for the reply Kristian.
>
> The ++HeapDumpOnOutOfMemoryError is of no use because up to now, I have not 
> found any tool that can read the heap dump when the heap is configured to 
> 8Gb.  I have tried with this before.

What about getting just the heap histogram?
I'm assuming it takes a while to fill the heap when it's 8 GB, so a script 
fetching the histogram every now and then may give us a clue to what's going on.


--
Kristian
>
> The stack traces when the " java.lang.OutOfMemoryError: GC overhead limit 
> exceeded" is reported are in the Derby.log, so it is Derby that is trying to 
> put "more stuff on the heap than what can fit there".   Note that Derby is 
> running in its own JVM with an 8Gb heap.   The system actually has 32Gb of 
> physical memory and the app server is constrained to 12Gb.
>
> I am in the process of getting the database back locally onto a test system.  
> I will probably turn down the heap size to 2Gb and try the query.  Maybe then 
> a tool can analyze the heap.
>
> Again, I appreciate the response and will post what I find.
>
> Brett
>
> -----Original Message-----
> From: Kristian Waagan [mailto:[email protected]]
> Sent: Wednesday, February 15, 2012 1:28 PM
> To: [email protected]
> Subject: Re: Quetion on out memory usage
>
> On 15.02.2012 18:09, Katherine Marsden wrote:
>> On 2/15/2012 8:45 AM, Bergquist, Brett wrote:
> <  snip>
>>> java.lang.OutOfMemoryError: GC overhead limit exceeded
>>>
>> I have not personally encountered the GC overhead limit, but google 
>> search indicates it is related to the amount of time spent on garbage 
>> collection ("too much") and can be overridden.
>> http://www.petefreitag.com/item/746.cfm
> I've seen this several times and for practical purposes I have always 
> considered this the same as "Java heap space": for whatever reason you're 
> trying to put more stuff on the heap than what can fit there.
>
>
> <  snip>
>>> The server is a Oracle M3000 and the Derby engine heap is setup to 
>>> be 8Gb.
>>>
>> For a heap out of memory, I have seen occasional cases where  Derby's
>> estimate of whether it can sort in memory is wrong.   You'd need to
>> look at the plan and do some debugging with the actual query  if you 
>> are able to reproduce to find out if that is the case here.
>>
> Not sure, but the code in impl/store/access/sort/MergeInserter may be 
> relevant and a good starting point.
>
> If you're debugging this, it may be useful to specify 
> -XX:+HeapDumpOnOutOfMemoryError (and possibly
> |-XX:HeapDumpPath=/your/dump/path).
>
> |



Reply via email to