How to free up memory?

前端 未结 6 888
鱼传尺愫
鱼传尺愫 2021-02-12 22:17

We have been facing Out of Memory errors in our App server for sometime. We see the used heap size increasing gradually until finally it reaches the available heap in size. This

6条回答
  •  半阙折子戏
    2021-02-12 22:36

    I'd first attach a profile tool to tell you what these "Objects" are that are taking up all the memory.

    Eclipse has TPTP, or there is JProfiler or JProbe.

    Any of these should show the object heap creaping up and allow you to inspect it to see what is on the heap.

    Then search the code base to find who is creating these.

    Maybe you have a cache or tree/map object with elements in and you have only implemented the "equals()" method on these objects, and you need to implement "hashcode()". This would then result in the map/cache/tree getting bigger and bigger till it falls over. This is only a guess though.

    JProfiler would be my first call

    Javaworld has example screen shot of what is in memory...


    (source: javaworld.com)

    And a screen shot of object heap building up and being cleaned up (hence the saw edge)


    (source: javaworld.com)

    UPDATE *************************************************

    Ok, I'd look at...

    http://www-01.ibm.com/support/docview.wss?uid=swg1PK38940

    Heap usage increases over time which leads to an OutOfMemory condition. Analysis of a heapdump shows that the following objects are taking up an increasing amount of space:

    40,543,128 [304] 47 class

    com/ibm/wsspi/rasdiag/DiagnosticConfigHome 40,539,056 [56] 2 java/util/Hashtable 0xa8089170 40,539,000 [2,064] 511 array of java/util/Hashtable$Entry 6,300,888 [40] 3 java/util/Hashtable$HashtableCacheHashEntry

提交回复
热议问题