- The system gets slower and slower
- From time to time the system runs out of memory (after a few hours, days, or weeks - depending on the severity)
Cause:
- If an application opens CRXSessions explicitely, make sure the proper closure of these sessions.
- If not, such sessions will not be subject of garbage collection and thus will stay in memory, causing above listed symptoms.
- Each CRXSession creates and maintains its own set of caches which adds to the overall resource consumption.
Analysis:
- Run the following commands to determine the overall number of current CRXSessions held in memory: jmap -histo:live | grep CRXSessionImpl
- The second column of the output is the instance count, which means that that many sessions are not closed (and actually reside in-memory).
- If this number is significantly higher than 100, then there is a problem with CRXSessions in your application.
- To see how many CRXSession objects are held in memory including those waiting to be garbage collected, run the command below: jmap -histo | grep CRXSessionImpl
- This tells you how many session objects are in memory which are live or haven't been garbage collected yet.
Conclusion:
You can force a jvm full garbage collection by going to http://localhost:4502/system/console/memoryusageand clicking the "Run Garbage Collector" button.
You can force a jvm full garbage collection by going to http://localhost:4502/system/console/memoryusageand clicking the "Run Garbage Collector" button.
After doing this, you can run the above command again a few times to see how quickly the number of session objects increases.
No comments:
Post a Comment
If you have any doubts or questions, please let us know.