我正尝试从远程服务器下载一个大文件(~5G)到本地笔记本电脑,但下载在大小的 40%(2.4G)处停止。
我正在使用这个 rsync 命令:
rsync --bwlimit=1200 -rh --progress -e 'ssh -p port' server:/path/to/file Downloads/
我还尝试将服务器上的 mtu 从 1500 降低到 1492,但没有成功。
有什么建议吗?:D
答案1
我不认为这是一个网络问题。
更有可能是内存问题。服务器只有 2GB RAM,并且对 5G 文件运行 RSYNC,我首先怀疑是服务器的问题。希望您可以在运行服务器时监控服务器内存。
客户端也可能有问题。例如,我放弃了 Windows 版 RSYNC,因为无论你有多少 RAM,它在处理大文件时总是会崩溃。
我不得不怀疑 rsync 是否是处理如此大文件的最佳工具。当然这取决于文件,但除非任何更新都适合 rsync 的 diff 引擎,否则可能没有意义。直接传输可能更好。您甚至可以使用 zip 或 tar 之类的工具来拆分文件,以便将其分成几部分发送并在另一端重新组装。
答案2
请尝试以下操作:
- 将 MTU 降低至 1492
sudo ifconfig eth0 mtu 1492
- 禁用 TCP SACK
sudo sysctl -w net.ipv4.tcp_sack=0