On 2/13/12 2:02 AM, [email protected] wrote:
that looks like you are in the issue of TS-1006: https://issues.apache.org/jira/browse/TS-1006
Hmmm, so, I personally never see this unbounded growth myself. What is it that makes it grow out of bounds like this? It can't just be the RAM cache, is it? Is there a bug in how it calculates memory usage vs what is allocated for it?
There is no surprise that memory isn't free, the freelist doesn't work like that (obviously). Meaning, if the system at some point needed 1GB of RAM, and it's now on the freelist, it would never go below 1GB of RAM usage. The questions are:
1) Is there a leak in the RAM cache, or some other bug that prevents it from limiting the memory usage as per the records.config settings?
2) Or is there a "leak" in the freelist, where objects that are put on the freelist are not reused, and instead, we allocate new ones?
I think we have to try to understand why this is happening, what sort of bug it is, and how it happens. Blindly freeing things from the freelist doesn't seem right to me (it's goes against the design and purpose of it). Hence, understanding why the freelist is allowed to grow out of bounds is the first step.
I do agree that it could be useful to have an (optional) feature where we periodically reduce the various freelists that we have, so that we can reclaim some memory from extreme "spikes" in usage. But that can't be the solution to this problem I don't think?
-- Leif
