Network bandwidth and Syncrify
Network bandwidth is an important resource to monitor when using a typical backup software. However, the concept of network bandwidth does not have the same meaning in Syncrify and it is important you understand the difference.
Syncrify uses the rsync algorithm to backup files over the HTTP protocol. The most important goal of this algorithm is to minimize network bandwidth. This comes at the cost of local disk I/O and CPU usage. When you backup a large file in Syncrify, it tries to figure out the part of file that has changed, called delta, and move just that delta across the network.
When you backup a 1GB file using a traditional backup software, it moves the entire 1 GB on every attempt. This is true even if only 5 MB has been modified within this large file. Syncrify, on the other hand, moves just 5 MB across the network and reconstructs the file on the target machine.
Consider the following scenario:
- You want to backup a 1 GB file every night
- It takes 10 minutes to backup this file
- Only 5 MB out of 1 GB is actually different on both ends.
This DOES NOT
mean Syncrify used your network bandwidth for 10 minutes. Syncrify takes following actions during backup.
- Computes MD5 signature blocks on client and server - uses CPU and disk I/O, no network
- Block list, which is typically no larger than a few kilobytes is sent to client - network is used
- The client matches its local blocks with the blocks on the server and collects a list of non-matching blocks - uses CPU and disk I/O, no network (This is the most time consuming step)
- Blocks that do not match are sent to the server - network is used
- The server merges the incoming blocks with the actual file - uses CPU and disk I/O
Syncrify spends most of the time matching blocks on the client machine. Therefore, out of the 10 minutes it takes to backup a 1 GB file, only a small fraction is used to transfer data across the network.
One exception to this rule is when you are transferring a file for the first time. Since a matching file won't be found on the server,
the client will send the entire file over the network using your bandwidth. In such cases, we recommend seeding the data
to avoid a large data transfer over a slow network.
Throttling network bandwidth
Although Syncrify provides a way to throttle bandwidth
, this throttling is most useful when the files are copied the first time to the target machine. Alternatively, consider seeding the files
for the first time.
This is the reason we recommend administrators NOT to throttle bandwidth on daily basis and let the rsync algorithm do its magic to minimize your network utilization.