Re: What can we do to get ready for memory controller merge in2.6.25

From: Rik van Riel
Date: Sat Dec 01 2007 - 14:28:57 EST


On Sat, 1 Dec 2007 11:02:32 -0800
"Paul Menage" <menage@xxxxxxxxxx> wrote:

> On Dec 1, 2007 10:36 AM, Rik van Riel <riel@xxxxxxxxxx> wrote:
> >
> > With the /proc/refaults info, we can measure how much extra
> > memory each process group needs, if any.
>
> What's the status of that? It looks as though it would be better than
> the "accessed in the last N seconds" metric that we've been playing
> with, although it's possibly more intrusive?
>
> Would it be practical to keep a non-resident set for each cgroup?

I have an implementation with a global array, but will have to
change it over to a per-radix tree implementation (not that
hard, with the slab reclaiming code) and per-cgroup reclaiming
information.

That way we can figure out per mapping, per cgroup or system
wide reclaim info (though not all at the same time).

> > As for how much memory a process group needs, at pageout time
> > we can check the fraction of pages that are accessed. If 60%
> > of the pages were recently accessed at pageout time and this
> > process group is spending little or no time waiting for refaults,
> > 40% of the pages are *not* recently accessed and we can probably
> > reduce the amount of memory assigned to this group.
>
> It would probably be better to reduce its background-reclaim high
> watermark than to reduce its limit. If you do the latter, you risk
> triggering an OOM in the cgroup if it turns out that it did need all
> that memory after all.

I did mean the RSS limit, not a virtual memory limit.

What exactly are all the terminologies you use that
I need to be aware of? :)

--
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it." - Brian W. Kernighan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/