java.lang.OutOfMemoryError: GC overhead limit exceeded

1
This morning the live application in the cloud generated this error. I know this has something to do with the Garbage Collection. How can I trace this error back to what the application was doing at the time? Because as far as I can see the application was not doing something special. I can off course addjust the java heap space (which is currently 128 mb) but would like to do it otherwise if possible. Can somebody from Mendix shed a light, or give me a clou to where to look?
asked
3 answers
0

You should always track down memory leaks i think. You should create a memory dump after a few weeks of running, and analyze it. Google is your best friend here.

I once created a memory leak by creating/changing objects in the system session, and there was one code path that did not commit or rollback them, for which reason the changes are remembered forever by the system session.

answered
2

If it's the application I think you're meaning, graphs show a possible (small) memory leak, building up a pile of more and more referenced objects in the java memory, leaving less and less memory for active threads in your application, up to the point where (after like 10 weeks) about the only thing that's left running is the gc itself, madly trying to make some space available. :|

answered
0

Garbage collection could no longer be performed effective. If your application is running normal, it is probably a hosting issue. Maybe the virtual server is throttled down for a while?

answered