On May 18, 2009, at 10:45 PM, Kip Macy wrote: > On Mon, May 18, 2009 at 7:34 PM, Ben Kelly <ben_at_wanderview.com> wrote: >> On May 18, 2009, at 9:26 PM, Kip Macy wrote: >> On the low memory front it seems like the arc needs a way to tell >> the pager >> to mark some vnodes inactive. I've seen many cases where the arc >> size >> greatly exceeded the target, but it couldn't evict any memory >> because all >> its buffers were still referenced. This seems to behave a little >> better >> with code that increments vm_pageout_deficit and signals the >> pageout daemon >> when the arc is too far above its target. The normal buffer cache >> seems to >> do this as well when its low on memory. > > > Good point. Patches welcome. Otherwise I'll look in to it when I get > the chance. I do some of that in this patch: http://www.wanderview.com/svn/public/misc/zfs/zfs_kmem_limit.diff But I trigger it based on kmem thresholds. See arc_reclaim_pages(). I can try to put together a smaller patch tomorrow evening that signals the pager based on size vs. c target. The main reason I didn't implement it in my previous patch was because I was concerned with the arc being prevented from growing at all once its been shrunk. It only grows when size exceeds its current target by a certain amount. This may require some careful balancing or hysteresis or something. Thanks. - BenReceived on Tue May 19 2009 - 01:07:20 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:47 UTC