Subject: Re: page replacement
To: YAMAMOTO Takashi <firstname.lastname@example.org>
From: Chuck Silvers <email@example.com>
Date: 12/14/2005 20:37:16
On Wed, Dec 14, 2005 at 10:23:16PM +0900, YAMAMOTO Takashi wrote:
> > > - page type balancing is disabled for simplicity.
> > did having this enabled or disabled affect the results?
> as it "randomize" the order of pages in page queue,
> results were somewhat unstable with it enabled, depends on amount of memory.
> anyway, results with the default setting are here:
> vm.anonmin = 10 vm.execmin = 5 vm.filemin = 10
> vm.anonmax = 80 vm.execmax = 30 vm.filemax = 50
interesting... it looks like clrref=0 sometimes does better than clrref=1
with the balancing stuff turned on. so the interesting comparison would be
clrref=0 with balancing on vs. clrref=1 with balancing off.
(I'd really like to get rid of the balancing stuff if we can,
it's a horrible interface for tuning the system.)
> > I guess that the effect of clearing the reference bit when moving a page
> > from active to inactive is to discount the initial pages access the occurs
> > when a page is first create. only if a page is accessed again after some
> > time would we consider it important enough to keep. it's interesting that
> > the shorter you make the period of "initial access" (ie. the longer you make
> > the inactive queue), the better the result. so my notion that gathering
> > access info for longer was right, I just forgot that it's important to ignore
> > the initial access.
> yes, otherwise newly allocated pages are always reactivated once.
> it makes old pages hard to compete.
yea. so it would likely be even better to maintain more than 2 bits of
access history info. the current system has 4 states (the cross product
of active vs. inactive and referenced vs. not), and clrref=1 reduces this
to 3 states (active, inactive and referenced, inactive and not referenced).
various people have previously played around with the idea of having more
states that would reflect a page having reached the inactive-and-referenced
state more than once. this would give such often-referenced pages an even
greater lifetime, with less interference from once-referenced pages.
you might try to construct a framework that would allow for experimentation
with different ways to use this additional access history information to
give preference to old pages.