Ini terlihat terkait dengan ini , tetapi agak berbeda.
Ada tautan WAN ini antara dua situs perusahaan, dan kita perlu mentransfer satu file yang sangat besar (Oracle dump, ~ 160 GB).
Kami memiliki bandwidth 100 Mbps penuh (telah diuji), tetapi sepertinya koneksi TCP tunggal tidak dapat memaksimalkannya karena cara kerja TCP (ACK, dll.). Kami menguji tautan dengan iperf , dan hasilnya berubah secara dramatis ketika meningkatkan Ukuran Jendela TCP: dengan pengaturan basis, kami mendapatkan ~ 5 Mbps throughput, dengan WS yang lebih besar kita bisa mencapai ~ 45 Mbps, tetapi tidak lebih dari itu. Latensi jaringan sekitar 10 ms.
Karena penasaran, kami menjalankan iperf menggunakan lebih dari satu koneksi tunggal, dan kami menemukan bahwa, ketika menjalankan empat dari mereka, mereka memang akan mencapai kecepatan masing-masing ~ 25 Mbps, mengisi semua bandwidth yang tersedia; jadi kuncinya terlihat dalam menjalankan beberapa transfer simultan.
Dengan FTP, segalanya menjadi lebih buruk: bahkan dengan pengaturan TCP yang dioptimalkan (Ukuran Jendela tinggi, MTU maks., Dll.) Kami tidak bisa mendapatkan lebih dari 20 Mbps dalam satu transfer. Kami mencoba melakukan FTP beberapa file besar pada saat yang bersamaan, dan memang segalanya menjadi jauh lebih baik daripada saat mentransfer satu file saja; tetapi kemudian pelakunya menjadi disk I / O, karena membaca dan menulis empat file besar dari bottleneck disk yang sama segera; juga, kami tampaknya tidak dapat membagi satu file besar itu menjadi yang lebih kecil dan kemudian menggabungkannya kembali, setidaknya tidak pada waktu yang dapat diterima (jelas kami tidak dapat menghabiskan penyambungan / penggabungan kembali file waktu yang sebanding dengan dari memindahkannya).
Solusi ideal di sini adalah alat multithreaded yang dapat mentransfer berbagai potongan file secara bersamaan; semacam program peer-to-peer seperti emule atau BitTorrent sudah melakukannya, tetapi dari satu sumber ke satu tujuan. Idealnya, alat ini akan memungkinkan kita untuk memilih berapa banyak koneksi paralel untuk digunakan, dan tentu saja mengoptimalkan disk I / O untuk tidak melompat (terlalu) secara liar di antara berbagai bagian file.
Apakah ada yang tahu alat seperti itu?
Atau, adakah yang bisa menyarankan solusi yang lebih baik dan / atau sesuatu yang sudah kita tidak coba?
PS Kami sudah memikirkan untuk mendukung itu ke tape / disk dan secara fisik mengirimkannya ke tujuan; itu akan menjadi ukuran ekstrem kita jika WAN tidak memotongnya, tetapi, seperti yang dikatakan AS Tanenbaum, "Jangan pernah meremehkan lebar pita sebuah station wagon yang penuh dengan kaset yang meluncur deras di jalan raya."
sumber
Jawaban:
Mencari "transfer file latensi tinggi" memunculkan banyak hits menarik. Jelas, ini adalah masalah yang telah dimasukkan oleh komunitas CompSci dan komunitas komersial.
Beberapa penawaran komersial yang tampaknya sesuai dengan tagihan:
FileCatalyst memiliki produk yang dapat mengalirkan data melalui jaringan latensi tinggi baik menggunakan UDP atau beberapa aliran TCP. Mereka juga punya banyak fitur lain (kompresi on-the-fly, transfer delta, dll).
The FASP transfer file "teknologi" dari Aspera tampaknya sesuai dengan tagihan untuk apa yang Anda cari, juga.
Di dunia open-source, proyek uftp terlihat menjanjikan. Anda tidak terlalu membutuhkan kemampuan multicastnya, tetapi ide dasar untuk meluncurkan file ke penerima, menerima NAK untuk blok yang terlewat di akhir transfer, dan kemudian meledakkan blok-blok NAK'd (busa, bilas, ulangi) terdengar seperti itu akan melakukan apa yang Anda butuhkan, karena tidak ada ACK'ing (atau NAK'ing) dari penerima sampai setelah transfer file selesai satu kali. Dengan asumsi jaringan hanya laten, dan tidak lossy, ini bisa melakukan apa yang Anda butuhkan juga.
sumber
Saran yang sangat aneh yang satu ini .. Siapkan server web sederhana untuk meng-host file di jaringan Anda (saya sarankan nginx, kebetulan), lalu atur pc dengan firefox di ujung lainnya, dan instal ekstensi DownThemAll .
Ini akselerator unduhan yang mendukung chunking dan re-assembly.
Anda dapat memecah setiap unduhan menjadi 10 bagian untuk dirakit ulang, dan itu sebenarnya membuat segalanya lebih cepat!
(peringatan: Saya belum pernah mencobanya pada apa pun sebesar 160GB, tetapi itu bekerja dengan baik dengan file iso 20GB)
sumber
The UDT transportasi mungkin adalah transportasi paling populer untuk komunikasi latency tinggi. Ini mengarah ke perangkat lunak lain mereka yang disebut Sektor / Sphere "Sistem File Terdistribusi Kinerja Tinggi dan Mesin Pemrosesan Data Paralel" yang mungkin bermanfaat untuk dilihat.
sumber
Jawaban saya agak terlambat, tetapi saya baru saja menemukan pertanyaan ini, sambil mencari fasp. Selama pencarian itu saya juga menemukan ini: http://tsunami-udp.sourceforge.net/ , "Tsunami UDP Protocol".
Dari situs web mereka:
Sejauh kecepatan berjalan, halaman menyebutkan hasil ini (menggunakan tautan antara Helsinki, Finlandia ke Bonn, Jerman melalui tautan 1GBit:
Jika Anda ingin menggunakan akselerator unduhan, lihatlah lftp, ini adalah satu-satunya akselerator unduhan yang dapat melakukan mirror rekursif, sejauh yang saya tahu.
sumber
The bbcp utilitas dari halaman sangat relevan 'Bagaimana untuk mentransfer data dalam jumlah besar melalui jaringan' tampaknya menjadi solusi yang paling sederhana.
sumber