Then I don't think these are viable options, my dev server uses Java
1.5.
What I was hoping for is sort of a simple how-to on best practices
when cleaning up after a large query. Especially when there are many
sessions anticipated.
On Aug 13, 2009, at 4:45 PM, Michael Gentry wrote:
> FWIW, jmap -dump is only on Java 1.6, not 1.5.
>
> mrg
>
>
> On Thu, Aug 13, 2009 at 3:29 PM, Tore Halset<halse..vv.ntnu.no>
> wrote:
>> Hello.
>>
>> It is hard to tell where the memory problems are without looking at
>> the
>> actual used memory. I normally use jmap to dump memory info and
>> then jhat on
>> a different computer to analyze the dump.
>>
>> jmap -dump:live,file=filename pid
>> jhat -J-Xmx10G filename
>>
>> Depending on your heap size, jhat may need a lot of memory and cpu.
>> That is
>> why I normally copy the file to a separate non-production server.
>>
>> If your memory are filled with cayenne DataRows, then you should
>> look at the
>> size of the datarow cache. Both DataRows and CayenneDataObject use
>> Maps that
>> need quite a lot of memory, so you should not have too many.
>>
>> Regards,
>> - Tore.
>>
>> On Aug 13, 2009, at 6:22 PM, Joe Baldwin wrote:
>>
>>> Background:
>>>
>>> I have been attempting to do as much performance tuning as I can
>>> given the
>>> visibility of the middleware I am using, but am running into
>>> severe "out of
>>> memory" errors with Tomcat on my production server. My current
>>> theory is
>>> that I may have missed something concerning how to properly
>>> maintain my
>>> Cayenne data objects.
>>>
>>> Configuration:
>>> 1. I am using the most recent version of Cayenne.
>>> 2. This is primarily a web app, using JSP, Tomcat, Cayenne and MySQL
>>> 3. Tested both on OSX and Linux
>>> 4. Essentially, it is a webstore with a lot of products
>>> - small amount of UPDATES
>>> - very large amount of searches resulting in result sets
>>> that will
>>> average between 50-500 products for read-only
>>> - occasional large result sets of a few thousand products for
>>> read-only
>>> 5. The design is a simple 3-tier.
>>>
>>> After a few hours to a few days of what appears to be very light
>>> usage,
>>> Tomcat reports "out of memory" errors. Since the vast majority of
>>> the tasks
>>> performed by the app are funneled through Cayenne, I am assuming
>>> that is
>>> where I am making the mistake.
>>>
>>> Question:
>>> What is the best way to manage the data objects in this
>>> configuration?
>>> (i.e. caching, releasing memory, etc)
>>>
>>> Note:
>>> I was researching the Java Library ArrayList (which I believe is the
>>> work-horse for the Cayenne result sets), and there are many
>>> recommendations
>>> concerning custom clearing of the list and releasing memory. Is
>>> this
>>> possibly where I am may have missed something?
>>>
>>> Thanks,
>>> Joe
>>>
>>>
>>
>>
This archive was generated by hypermail 2.0.0 : Thu Aug 13 2009 - 22:23:59 EDT