Re: Memory Management Practices

From: Michael Gentry (mgentr..asslight.net)
Date: Thu Aug 13 2009 - 16:45:39 EDT

  • Next message: Dave Lamy: "Shared cache troubles"

    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 - 16:46:11 EDT