Date: Thu, 9 Jul 2015 18:13:57 -0500 From: Alan Cox <alc@rice.edu> To: hiren panchasara <hiren@FreeBSD.org> Cc: Alan Cox <alc@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285282 - head/sys/vm Message-ID: <CC38576F-5B51-40A9-9895-2F8719AC6767@rice.edu> In-Reply-To: <20150708182901.GJ51988@strugglingcoder.info> References: <201507081746.t68Hk0To044278@repo.freebsd.org> <20150708182901.GJ51988@strugglingcoder.info>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jul 8, 2015, at 1:29 PM, hiren panchasara <hiren@FreeBSD.org> wrote: > On 07/08/15 at 05:46P, Alan Cox wrote: >> Author: alc >> Date: Wed Jul 8 17:45:59 2015 >> New Revision: 285282 >> URL: https://svnweb.freebsd.org/changeset/base/285282 >>=20 >> Log: >> The intention of r254304 was to scan the active queue continuously. >> However, I've observed the active queue scan stopping when there are >> frequent free page shortages and the inactive queue is steadily = refilled >> by other mechanisms, such as the sequential access heuristic in = vm_fault() >> or madvise(2).=20 >=20 > What would be the actual downside/effect of this scenario? i.e. What = goes > wrong when active queue scan stops and what would I see/observe on a > system when the problem is going on - is what I want to understand. >=20 Basically, pages that haven=92t been used recently get stuck in the = active queue. Consequently, they are never reclaimed and repurposed to = hold newly accessed data. Instead, more recently used pages from the = inactive queue are reclaimed. Effectively, this reduces the amount of = physical memory that is available for caching file data, and so the = system (likely) performs more I/O operations than it would have with the = stuck pages problem corrected. >> To remedy this problem, record the time of the last active >> queue scan, and always scan a number of pages proportional to the = time >> since the last scan, regardless of whether that last scan was a >> timeout-triggered ("pass =3D=3D 0") or free-page-shortage-triggered = ("pass > >> 0") scan. >>=20 >> Also, on a timeout-triggered scan, allow a full scan of the active = queue >> when the system is short of inactive pages. >>=20 >> Reviewed by: kib >> MFC after: 6 weeks >> Sponsored by: EMC / Isilon Storage Division >=20 > [skip] >=20 > Thanks in advance. > Cheers, > Hiren
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CC38576F-5B51-40A9-9895-2F8719AC6767>