Rsync over NFS mount sending whole files

Wayne Davison wayned at
Fri Oct 28 01:10:51 GMT 2005

On Thu, Oct 27, 2005 at 07:27:09PM +0200, Anban Mestry wrote:
> rsync -avtz --no-whole-file \test1\ \mnt\test2\

You don't want to do that, because --no-whole-file optimizes rsync's
socket I/O at the expense of disk I/O, which means that you're making
things less efficient when the "connection" between the sender and the
receiver is a local pipe.  The use of -z for a "local" copy is also
wasteful because you're using CPU to optimize the transfer of data over
a connection that is faster than the disk I/O, even when uncompressed.

Your best configuration is to avoid updating via NFS and instead connect
to the NFS server directly so that rsync can update the files on a local
disk.  That allows rsync to optimize the network traffic.

    rsync -avtz /test1/ remoteNFShost:/test2/

If that is not possible, the method that uses the least disk I/O for a
local copy is --whole-file and (to a much smaller extent) --inplace.
That still writes out the entire file over NFS for each update, though,
but it does at least avoid having rsync do a full-file read followed by
a full-file write (which is what occurs with --no-whole-file).


More information about the rsync mailing list