From owner-freebsd-current@FreeBSD.ORG Sun Apr 20 22:38:31 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 33ABF37B401; Sun, 20 Apr 2003 22:38:31 -0700 (PDT) Received: from mail.chesapeake.net (chesapeake.net [205.130.220.14]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4BCDD43F3F; Sun, 20 Apr 2003 22:38:30 -0700 (PDT) (envelope-from jroberson@chesapeake.net) Received: from localhost (jroberson@localhost) by mail.chesapeake.net (8.11.6/8.11.6) with ESMTP id h3L5cSI87977; Mon, 21 Apr 2003 01:38:28 -0400 (EDT) (envelope-from jroberson@chesapeake.net) Date: Mon, 21 Apr 2003 01:38:27 -0400 (EDT) From: Jeff Roberson To: Matthew Dillon In-Reply-To: <200304201924.h3KJOxWo090302@apollo.backplane.com> Message-ID: <20030421013449.V76635-100000@mail.chesapeake.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: David Schultz cc: freebsd-current@freebsd.org Subject: Re: Broken memory management on system with no swap X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Apr 2003 05:38:31 -0000 On Sun, 20 Apr 2003, Matthew Dillon wrote: > > note (1): normally act_count protects against thrashing. It is the > active queue's act_count algorithm which gives FreeBSD's such a nice > smooth degredation curve when memory loads become extreme by preventing > a frequently accessed page from being freed too early, so we don't > want to just turn it off. Maybe we need a test for 'too many active > pages', aka when > 80% of available pages are in the active queue > to temporarily disable the act_count test. This is actually analogous to a problem that is solved in the 4bsd scheduler. The decay is effected by the load average so that all processes do not reach the highest priority as a result of a heavily loaded system. The analogous idea being scaling some value based on current system load. What we could do is apply a filter to a raw act count based on memory pressure. I'm not familiar enough with the properties of the act count in practice to suggest what that filter should be. I think this should make the system quite dynamic though. You would require fewer passes for most cases eh? Cheers, Jeff