From owner-freebsd-hackers Mon Apr 1 10:09:40 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id KAA11595 for hackers-outgoing; Mon, 1 Apr 1996 10:09:40 -0800 (PST) Received: from dyson.iquest.net (dyson.iquest.net [198.70.144.127]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id KAA11585 for ; Mon, 1 Apr 1996 10:09:33 -0800 (PST) Received: (from root@localhost) by dyson.iquest.net (8.7.5/8.6.9) id NAA17963; Mon, 1 Apr 1996 13:07:59 -0500 (EST) From: "John S. Dyson" Message-Id: <199604011807.NAA17963@dyson.iquest.net> Subject: Re: Virtual Memory system (was: Interesting IDE perf results) To: luigi@labinfo.iet.unipi.it (Luigi Rizzo) Date: Mon, 1 Apr 1996 13:07:59 -0500 (EST) Cc: lehey.pad@sni.de, joerg_wunsch@uriah.heep.sax.de, freebsd-hackers@FreeBSD.ORG Reply-To: dyson@FreeBSD.ORG In-Reply-To: <199604011557.RAA23477@labinfo.iet.unipi.it> from "Luigi Rizzo" at Apr 1, 96 05:57:57 pm X-Mailer: ELM [version 2.4 PL24 ME8] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > > Note that 1.1.5 has no unusual settings, while the 2.1R has been > patched with phkmalloc, custom-built XF86_SVGA with only the minumum > set of drivers, no unused servers etc. Both systems have custom, > stripped down kernels. The same symptoms, though less evident, > occurs on a system with 16MB. > > Is it just me ? > The system does let go of not recently used pages more quickly when someone else needs them. The algorithm is based heavily on recent usage stats. It can converge very quickly to a small working set. I think that part of the problem is that we don't start gathering stats until we are out of memory. I have some changes to the pageout daemon that would be interesting to try if you want. (I am only working on -current though.) For a quick hack (might not work,) you might try changing the tsleep in the mainloop of the pageout daemon (vm_pageout) so that it wakes up every half second or so. (Put a 60 in the last arg that is currently a 0.) Tell me how it works. John