Troubleshooting offsite synchronization speed
Topic
This article explains why offsite sync processes may not be as fast as the average bandwidth of your external connection.
Environment
- Datto SIRIS
- Datto ALTO
- Datto NAS
Description
This article requires a basic knowledge of the following topics:
TCP window size (buffer)
- RoundTrip Time
- Bandwidth: The advertised rate of data transfer measured in bits per second
- Throughput: The average rate of successful data transfer over a communication channel
In general, if the upload speed of a connection is 50 Mbps, the upload rate to Datto's offsite servers should reflect this speed. However, several factors affect the overall travel time. Let's begin with the definitions of bandwidth and throughput. Bandwidth is the rate of transfer for a connection, and throughput is the theoretical average rate of travel for data for a given instance. When calculating throughput, the value can never exceed the total bandwidth.
Calculation
There are multifactors to take into consideration when dealing with throughput:
- TCP window size
- RoundTrip Time (RTT)
Datto devices, both physical and virtual, have TCP window scaling enabled, so the system will dynamically increase as system reliability allows. The scaled max is 24 MiB (25165824 bytes), while the fall back default window size is 64 KiB (65535 bytes). You can determine the RTT by pinging a destination to test response time. Below is an example of the default window size calculation.
ping server1492.dattobackup.com
PING server1492.dattobackup.com (8.34.181.74) 56(84) bytes of data.
64 bytes from 8.34.181.74: icmp_seq=3 ttl=51 time=9.86 ms
64 bytes from 8.34.181.74: icmp_seq=4 ttl=51 time=9.84 ms
64 bytes from 8.34.181.74: icmp_seq=5 ttl=51 time=9.76 ms
64 bytes from 8.34.181.74: icmp_seq=6 ttl=51 time=9.76 ms
While you can average out the RTT values for as many pings as you like (the average for the above ping sequence is 9.805), selecting an RTT value that is common among the others in your ping test works as well.
Once you have your RTT average or value, you can then calculate throughput. Plug in your TCP window size in bytes, and your RTT in seconds, as seen below.
65535/0.009805 = 6683834.778174401 bytes
6683834.778174401/1048576 = 6.37MBps
After converting to MB and rounding up, the throughput between sites in the above example would be 6.37 MBps.
You can use a third-party application called iPerf to diagnose network speed issues. See the Additional Resources section of this article for external links. While Datto cannot provide support or training for iPerf, we have found the application has historically provided reliable results.
Additional Resources
- Diagnosing Network Speed with iPerf (external link)
- Download iPerf for Windows (external link)