由于某种原因,运行单个rsync命令时,即使连接两台连接到1 Gbps端口的服务器,我也会获得1 MB /秒到2 MB /秒的速度。
rsync -v –progress -e ssh /backup/mysqldata/mysql-bin.000199 [email protected]:/secondary/mysqldata/mysqldata/mysql-bin.000199
我有超过800 GB的数据传输拆分500个左右的文件所有开始:
的mysql-bin.000 *
我发现,从独立的SSH窗口同时运行25-30 rsync使我获得了25 MB /秒以上的速度,但是需要几个小时才能手动运行这些。
无论如何,从单个rsync命令获得25 MB /秒?
OpenSSH的窗口大小限制对于高延迟连接并不是非常友好,因而臭名昭着。 要确定所需吞吐量的最小窗口大小(让我们暂时忽略其他开销):
Window size = throughput * latency
因此,如果您希望在25毫秒的延迟(0.025秒)内达到25MB /秒(200,000,000比特/秒):
Window size = 200,000,000 * 0.025 = 5000000.0 bits
除以8,这大概是一个625KB的窗口。 让我们翻转一下,看看64KB的窗口(许多版本的OpenSSH的内部上限):
throughput = 512000 bits / 0.025s latency = 20480000.0 bits/sec = ~2.5MB/sec
这与您所看到的非常接近(您可能还有其他一些开销)。
所以,我会按以下顺序检查:
根据压缩是否打开,SSH的性能可能会有很大的不同。