ZFS ARC and mmap/page cache coherency question
Matthew Macy
mmacy at nextbsd.org
Tue Jul 5 17:43:06 UTC 2016
---- On Tue, 05 Jul 2016 10:35:12 -0700 Freddie Cash <fjwcash at gmail.com> wrote ----
> On Tue, Jul 5, 2016 at 10:19 AM, Matthew Macy <mmacy at nextbsd.org> wrote:
>
> > ---- On Mon, 04 Jul 2016 19:26:06 -0700 Karl Denninger <
> > karl at denninger.net> wrote ----
> > > On 7/4/2016 18:45, Matthew Macy wrote:
> > > > ---- On Sun, 03 Jul 2016 08:43:19 -0700 Karl Denninger <
> > karl at denninger.net> wrote ----
> > > > >
> > > > > On 7/3/2016 02:45, Matthew Macy wrote:
> > > > > >
> > > > > > Cedric greatly overstates the intractability of
> > resolving it. Nonetheless, since the initial import very little has been
> > done to improve integration, and I don't know of anyone who is up to the
> > task taking an interest in it. Consequently, mmap() performance is likely
> > "doomed" for the foreseeable future.-M----
> > > > >
> > > > > Wellllll....
> > > > >
> > > > > I've done a fair bit of work here (see
> > > > > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=187594) and the
> > > > > political issues are at least as bad as the coding ones.
> > > >
> > > > Strictly speaking, the root of the problem is the ARC. Not ZFS per
> > se. Have you ever tried disabling MFU caching to see how much worse LRU
> > only is? I'm not really convinced the ARC's benefits justify its cost.
> > >
> > > The ARC is very useful when it gets a hit as it avoid an I/O that would
> > > otherwise take place.
> > >
> > > Where it sucks is when the system evicts working set to preserve ARC.
> > > That's always wrong in that you're trading a speculative I/O (if the
> > > cache is hit later) for a *guaranteed* one (to page out) and maybe *two*
> > > (to page back in.)
> >
> > The question wasn't ARC vs. no-caching. It was LRU only vs LRU + MFU.
> > There are a lot of issues stemming from the fact that ZFS is a
> > transactional object store with a POSIX FS on top. One is that it caches
> > disk blocks as opposed to file blocks. However, if one could resolve that
> > and have the page cache manage these blocks life would be much much better.
> > However, you'd lose MFU. Hence my question.
> >
>
> Are you confusing terms here?
>
> Pretty sure the ARC uses MRU (Most Recently Used) and MFU (Most Frequently
> Used) caches. Not LRU (Least Recently Used).
>
> Or am I misunderstanding what you're trying to say?
If it caches based on MRU, by definition it evicts LRU. I did mix caching policy with eviction policy in the same sentence which is obviously not correct. Nonetheless, it should be obvious that I meant MFU+MRU caching vs MRU caching only.
Thanks.
-M
More information about the freebsd-hackers
mailing list