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). > > |
