リモート サーバーからローカル ラップトップに大きなファイル (約 5G) をダウンロードしようとしていますが、ダウンロードはサイズの 40% (2.4G) で停止します。
私は次の rsync コマンドを使用しています:
rsync --bwlimit=1200 -rh --progress -e 'ssh -p port' server:/path/to/file Downloads/
また、サーバーの MTU を 1500 から 1492 に下げようとしましたが、成功しませんでした。
何か提案はありますか? :D
答え1
これはネットワークの問題ではないと思います。
メモリの問題である可能性の方がはるかに高いです。サーバーの RAM が 2GB しかなく、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