ZFS ARC Cache: What is the lowest tested size

Kip Macy kmacy at freebsd.org
Mon May 4 20:05:18 UTC 2009


On Mon, May 4, 2009 at 10:12 AM, Mark Saad <msaad at datapipe.com> wrote:
>
> Hello List
>   Worked on breaking ZFS we came across a interesting question;
> What is the lowest tested ZFS ARC Cache size ?

I haven't tested it with just over 64MB, but the code indicates that
that is the lowest you should try.

http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/fs/zfs/arc.c

  3500 	/*
   3501 	 * Allow the tunables to override our calculations if they are
   3502 	 * reasonable (ie. over 64MB)
   3503 	 */
   3504 	if (zfs_arc_max > 64<<20 && zfs_arc_max < physmem * PAGESIZE)
   3505 		arc_c_max = zfs_arc_max;
   3506 	if (zfs_arc_min > 64<<20 && zfs_arc_min <= arc_c_max)
   3507 		arc_c_min = zfs_arc_min;

>Also could you reliably
> run with it set to 0 ?

For better and worse, ZFS isn't primarily a file system. It is a
transactional object store that has a file system as one type of
object. The ARC is not a file system buffer cache, it caches virtual
device blocks. You might think of it as being more like a very large
write-back drive cache. It might work with less than 64MB, but the ARC
buffers are what ZIO sends down to disk so it certainly would not work
with zero.


Cheers,
Kip


More information about the freebsd-hackers mailing list