我試圖從遠端伺服器下載一個大檔案(~5G)到本地筆記型電腦,但下載到檔案大小(2.4G)的 40% 時停止。
我正在使用這個 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
須藤 ifconfig eth0 mtu 1492
- 停用 TCP SACK
sudo sysctl -w net.ipv4.tcp_sack=0