On 2/13/12 2:02 AM, ming.zym@gmail.com 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
|