Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Oct 2000 15:32:01 -0700 (PDT)
From:      Matt Dillon <dillon@earth.backplane.com>
To:        Alfred Perlstein <bright@wintelcom.net>
Cc:        ps@FreeBSD.ORG, hackers@FreeBSD.ORG
Subject:   Re: vm_pageout_scan badness
Message-ID:  <200010242232.e9OMW1X21204@earth.backplane.com>
References:  <20001024112708.E28123@fw.wintelcom.net> <200010242010.e9OKAJK19739@earth.backplane.com> <20001024151414.P28123@fw.wintelcom.net>

next in thread | previous in thread | raw e-mail | index | archive | help

:The people getting hit by this are Yahoo! boxes, they have giant areas
:of NOSYNC mmap'd data, the issue is that for them the first scan through
:the loop always sees dirty data that needs to be written out.  I think
:they also need a _lot_ more than 32 pages cleaned per pass because all
:of thier pages need laundering.
:
:Perhaps if you detected how often the routine was being called you
:could slowly raise max_page_launder to compensate and lower it
:after some time without a shortage.  Perhaps adding a quarter of
:'should_have_laundered' to maxlaunder for a short interval.
:....
:It might be wise to switch to a 'launder mode' if this sort of
:usage pattern is detected and figure some better figure to use than
:32, I was hoping you'd have some suggestions for a heuristic to
:detect this along the lines of what you have implemented in bufdaemon.

    We definitely don't want to increase max_page_launder too much... the
    problem is that there is a relationship between it and the number of
    simultanious async writes that can be queued in one go, and that can
    interfere with normal I/O.  But perhaps we should decouple it from the
    I/O count and have it count clusters instead of pages.  i.e. this line:

	written = vm_pageout_clean(m);
	if (vp)
		vput(vp)
	maxlaunder -= written;

    Can turn into:

	if (vm_pageout_clean(m))
		--maxlaunder;
	if (vp)
		vput(vp);

    In regards to speeding up paging, perhaps we can implement a heuristic
    similar to what buf_daemon() does.  We could wake the pageout daemon up
    more often.   I'll experiment with it a bit.  We certainly have enough
    statistical information to come up with something good.

						-Matt

:-Alfred
:



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200010242232.e9OMW1X21204>