大容量ファイル(1GB)をダウンロードする必要があります。また、Linuxを実行している複数のコンピュータにアクセスできますが、管理ポリシーによっては、コンピュータあたりのダウンロード速度が50kB / sに制限されます。
このファイルを複数のコンピュータに分散させ、すべてのフラグメントがダウンロードされた後にマージしてより早く受信できるようにするにはどうすればよいですか。
答え1
一般的なプロトコルであるHTTP、FTP、およびSFTPをサポートしています。範囲要求、ファイルの一部を要求できます。これにはサーバーのサポートも必要であるため、実際には機能していても機能しない場合があります。
curl
または-r
、オプションを使用して--range
範囲を指定し、最後にcat
ファイルを一緒にリンクすることもできます。例:
curl -r 0-104857600 -o distro1.iso 'http://files.cdn/distro.iso'
curl -r 104857601-209715200 -o distro2.iso 'http://files.cdn/distro.iso'
[…]
最後に、部品を収集するときに部品を接続します。
cat distro* > distro.iso
次のオプションを使用して、サイズを含むファイルに関する詳細情報を取得できます--head
。
curl --head 'http://files.cdn/distro.iso'
開いた範囲を使用して最後のブロックを検索できます。
curl -r 604887601- -o distro9.iso 'http://files.cdn/distro.iso'
読むカールマンページより多くのオプションと説明を見るには
SSHとtmuxをさらに活用して、複数のサーバーでダウンロードを簡単に実行および追跡できます。
答え2
1GBファイルを1秒あたり50KBにロードするのに約5.5時間かかります。
コンテンツの一部を得るために複数のコンピュータを調整すると時間が節約されるようです。
BitTorrentを見て、P2P交換を使用してネットワークシーディングとストリーミングを利用できます。各クライアントはローカルエリアネットワーク(LAN)を介してフラグメントを受信し、完成したフラグメントを共有できます。各コンピュータに同じ1GBファイルが作成されますが、部分的なマージは自動的に行われます。