On Tue, Mar 19, 2013 at 06:55:54PM -0400, Greg Troxel wrote: > > Thor Lancelot Simon <[email protected]> writes: > > > On Tue, Mar 19, 2013 at 04:05:25PM -0400, Greg Troxel wrote: > >> > >> This is perhaps overly complex, but it seems like all of the drain > >> routines need some sort of "how hard" parameter, because freeing cached > >> objects that haven't been accessed in 1000s doesn't really hurt, and as > >> you bring the stale lifetime down to 0s it begins to hurt more and be > >> thrashing. So maybe that parameter really is in seconds. This seems > >> consistent with the intent in the Bonwick paper, which does not explain > >> the strategy behind the back-end freeing mechanism (pool_drain, in our > >> terms). > > > > I think pools should be (slightly) leaky buckets. > > So do you mean that pools should free a page every so often if it's > available, so that a pool's usage of unallocated pages decays as > e^-(t/60s), or something like that?
Yes. Just like that. I think it might keep a number of common cyclical workloads from becoming pathological so that they end up trying to aggressively drain. Thor
