Initially, the User creates a single file with random data on source server:
Delta Transfer uses an algorithm for updating a file on one machine to be identical to a file on another remote machine. The algorithm identifies parts of the source file which are identical to some parts of the destination file, and only sends those parts which cannot be matched in this way. Effectively, the algorithm computes a set of difference without having both files on the same machine.
Typically, Delta Transfer works very well when the two machines are connected by a low-bandwidth, high-latency communications link. In this case, the connection between the two machines is the major bottleneck of the whole system. By dramatically reducing the amount of the bytes to be sent over the link, the efficiency of the operations would be greatly improved.
-- SourceAnywhere
The User is transferring without a corresponding file on the remote server, therefore copying the file and not syncing, the initial transfer with --whole-file
is more efficient.
To trade CPU cycles for network overhead I would suggest the -z
compression option. The type and level of compression can also be adjusted:
--compress-choice= |
--compress-level= |
zstd |
0-9 |
lz4 |
0-9 |
zlibx |
0-9 |
zlib |
0-9 |
On supported filesystems, common data, unlike the User's random data, can be saved as a sparse file with the --sparse
switch set, then on the subsequent rsync, set the --inplace
switch to write in-place.
Adding the --update
switch skips files which are newer on the receiver, saving wasted writes.
The --append
switch lets the User append data onto shorter files.
The settings below can help increase overall verbosity during testing:
--verbose, -v increase verbosity
--stats give some file-transfer stats
--human-readable, -h output numbers in a human-readable format
--progress show progress during transfer
rsync -a
should save you time. Otherwise usersync -aW
and just copy the file in its entirety