web-dev-qa-db-ja.com

高遅延リンクを介した大容量ファイル転送の速度の向上

そのため、最近私は海外のオフィスの1つからインターネットを介して大きなファイルをプルする必要がありました。どちらのオフィスにも両方向に50Mビットのファイバーリンクがありますが、往復時間は恐ろしいものであり、良い日に450ミリ秒、がらくたに750ミリ秒と異なります。

元々、VPN接続を介してファイルをプルしようとしましたが、転送が失敗し(smbは低速リンクを本当に吸い込んで)、速度が最大で128kBpsに達した後、グーグルはWindowsに対して実行していることを示しましたTCPウィンドウのスケーリングの問題。

私はそれ以来、ファイルをここにすばやく配信する商用プライベートクラウドタイプのサービスを介してファイルをプッシュしました。そのため、以下は何よりも好奇心のためのものです。

おもしろいことに、両端のインターネットアクセスはhttpプロキシを介して行われます。ただし、マシンの両端に管理者権限があります。

速度を上げるにはどうしますか?

私が試したこと:

1)2つのLinux仮想マシン間のプレーンSFTP。corkscrewを使用してhttpプロキシを介してパンチアウトし、3番目の仲介者を使用して2つの端を接続します。達成速度:約600kBps。

2)SFTPですが、HPN-SSHでパッチされたOpenSSHを使用します。コルクスクリューと中間構成は1)と同じです。速度が向上したとしてもほとんどありません。

3)2と同じですが、pget -c -n 10でLFTPを使用して、転送をチャンクに分割します。これはこれまでのところ最高で、3.5MBpsを表示しています...

すべての改善を歓迎します。

8
Ingo

最近では、トランスポートとして [〜#〜] udr [〜#〜] を使用して、rsyncをUDPでラップすることにより、長距離および高レイテンシのリンクを介した転送に対処しています。 DRはUDTを使用します 、これは次のように記述されます。

UDTは、広域高速ネットワーク上でデータを集中的に使用するアプリケーション向けの、信頼性の高いUDPベースのアプリケーションレベルのデータ転送プロトコルです。 UDTはUDPを使用して、独自の信頼性制御および輻輳制御メカニズムを備えたバルクデータを転送します。新しいプロトコルは、TCPよりもはるかに高速でデータを転送できます。UDTは、さまざまな輻輳制御アルゴリズムに対応できる高度に構成可能なフレームワークでもあります。

これにより、デフォルトで暗号化が無効になります。これは、パッチを適用するときに必要だった HPN-SSH ですが、UDPアプローチはかなり役に立ちました。 UDR/UDPソリューションの主な利点は、コマンド機能がほとんど変更されないことです。 rsyncコマンドの前にudrを付けます。

udr rsync -avP --stats --delete --inplace /data/ mir1:/data/

以下も参照してください。 WAN SSHトラフィックの最適化)の可能性

4
ewwhite

$ lastjobでも同じ問題が発生しました。

自分のインフラストラクチャ内だけに留まることは、LFTPよりも優れたソリューションを見つけることはできませんでした。

費用を正当化できる場合、WANアクセラレーションを実行するアプライアンスを取得できます。基本的には、透過的にリクエストをはるかに大きなチャンクに変換するため、2つのサイト間のチャットが大幅に減少します。リバーベッドはおそらくそこには最もよく知られているオプションがありますが、IIRCにはジュニパーのルーターがそれを行うためのモジュールもあります。現時点では、FLOSSオプションについては知りません。

私は実際にはDropboxらが最良の選択肢だとわかりましたが、それはあなたには受け入れられないかもしれません。

3
chriscowley