Disable NFS client cache (or other traffic reduction methods)
Mohan Srinivasan
mohan_srinivasan at yahoo.com
Thu Apr 7 14:46:46 PDT 2005
Hi,
Unfortunately, there's no way in the FreeBSD NFS client to
disable data caching. Setting the ac* values to 0 will have
the effect of disabling the attribute cache, which means
that you'll never fetch attributes from the cache, but force
an over-the-wire getattr call each time. But this does not
disable data caching. For reference, take a look at
nfs_loadattrcache() and nfs_getattrcache().
The real reason for tweaking the ac* values is to improve
on the consistency of the cached data (for applications with
data shared across multiple clients). By setting the ac* values
to 0 and bypassing attr caching completely, you force much
more frequent mtime checks giving you much better consistency
of the cached data.
I added Direct IO support for the NFS client for exactly this
reason - to bypass data caching. But I tickled a bug in the
-current NFS server when I use Direct IO on the client and
I have left it disabled until I get a chance to fix that bug.
Direct IO support works fine when used against a FreeBSD 4.x
NFS server or a NetApp filer.
mohan
--- Eli Dart <dart at nersc.gov> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>
> >> Is there a way to disable client-side caching? I've looked, and
> >> can't seem to find one. Or, do I have this wrong and there is
> >> something else that is causing this?
> >
> >
> > Take a look through "man mount_nfs" for:
> >
> > -a Set the read-ahead count to the specified value. This may
> > be in
> > the range of 0 - 4, and determines how many blocks will be
> > read
> > ahead when a large file is being read sequentially. Trying a
> > value greater than 1 for this is suggested for mounts with a
> > large bandwidth * delay product.
>
> I did see this. Since the client is not reading any files (I think
> all the reads are being done by the NFS layer, not by any userland
> processes with open files) I had ignored -a.
>
> >
> > ...and the -o ac*** options. Although you may be right-- I was a bit
> > surprised not to see a "-o noac", myself. Solaris has one:
>
> Hmmmm.....any NFS gurus know whether setting the ac* options to 0
> will disable client caching? Or, will setting these to 0 result in
> the client NFS layer fetching the data from the server and then
> immediately expiring it?
>
> Thanks,
>
> --eli
>
>
>
> >
> > noac Suppress data and attribute caching.
> >
> > :-)
> >
>
> - --
>
> - -------------------------------------------------------------------
> Eli Dart Office: (510) 495-2999
> NERSC Center Networking and Security Group Cell: (510) 703-4508
> Lawrence Berkeley National Laboratory Fax: (510) 486-4316
> PGP Fingerprint = C970 F8D3 CFDD 8FFF 5486 343A 2D31 4478 5F82 B2B3
> - -------------------------------------------------------------------
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.0 (MingW32)
> Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
>
> iD4DBQFCVZYOLTFEeF+CsrMRAlReAKDMxrs97SSkZJRhaEVxRRpO51XrsACXX983
> grAaYcgINLwiLtzoz3nLhQ==
> =GAZ7
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>
More information about the freebsd-net
mailing list