Wygląda na związany z tym , ale jest nieco inny.
Istnieje łącze WAN między dwiema witrynami firmy i musimy przenieść pojedynczy bardzo duży plik (zrzut Oracle, ~ 160 GB).
Mamy pełną przepustowość 100 Mb / s (przetestowane), ale wygląda na to, że pojedyncze połączenie TCP po prostu nie może tego zwiększyć ze względu na to, jak działa TCP (ACK itp.). Przetestowaliśmy łącze z iperf , a wyniki zmieniają się dramatycznie podczas zwiększania rozmiaru okna TCP: przy ustawieniach podstawowych uzyskujemy przepustowość ~ 5 Mb / s, przy większym WS możemy uzyskać do ~ 45 Mb / s, ale nie więcej. Opóźnienie sieci wynosi około 10 ms.
Z ciekawości uruchomiliśmy iperf, używając więcej niż jednego połączenia, i stwierdziliśmy, że kiedy uruchomimy cztery z nich, rzeczywiście osiągną prędkość ~ 25 Mb / s, wypełniając całą dostępną przepustowość; więc kluczem jest uruchomienie wielu jednoczesnych przelewów.
W przypadku FTP sytuacja się pogarsza: nawet przy zoptymalizowanych ustawieniach TCP (wysoki rozmiar okna, maks. MTU itp.) Nie możemy uzyskać więcej niż 20 Mb / s na jednym transferze. Próbowaliśmy jednocześnie przesłać trochę dużych plików na serwer FTP i rzeczywiście stało się o wiele lepiej niż przy przesyłaniu jednego; ale potem sprawca stał się dyskowym We / Wy, ponieważ bardzo szybko odczytuje i zapisuje cztery duże pliki z tych samych wąskich gardeł dysku; ponadto nie wydaje się, abyśmy mogli podzielić ten pojedynczy duży plik na mniejsze, a następnie scalić go z powrotem, przynajmniej w nieodpowiednich czasach (oczywiście nie możemy spędzić na składaniu / scalaniu pliku w czasie porównywalnym z czasem przenoszenie).
Idealnym rozwiązaniem byłoby tu narzędzie wielowątkowe, które mogłoby przenosić różne fragmenty pliku w tym samym czasie; coś w rodzaju programów typu peer-to-peer, takich jak eMule lub BitTorrent, ale już z jednego źródła do jednego miejsca docelowego. Idealnie, narzędzie to pozwoliłoby nam wybrać liczbę równoległych połączeń do użycia i oczywiście zoptymalizować dyskowe operacje wejścia / wyjścia, aby nie przeskakiwały (zbyt) szalenie między różnymi sekcjami pliku.
Czy ktoś wie o takim narzędziu?
A może ktoś może zaproponować lepsze rozwiązanie i / lub coś, czego jeszcze nie próbowaliśmy?
PS Już myśleliśmy o utworzeniu kopii zapasowej na taśmie / dysku i fizycznym wysłaniu jej do miejsca docelowego; byłby to nasz ekstremalny środek, gdyby WAN po prostu tego nie przerwał, ale, jak powiedział AS Tanenbaum: „Nigdy nie lekceważ przepustowości wozu kombi pełnego taśm pędzących po autostradzie”.
źródło
Odpowiedzi:
Wyszukiwanie „przesyłania plików z dużym opóźnieniem” przynosi wiele interesujących trafień. Jest to oczywisty problem, na który włożyli się zarówno społeczność CompSci, jak i społeczność komercyjna.
Kilka ofert komercyjnych, które wydają się pasować do rachunku:
FileCatalyst ma produkty, które mogą przesyłać strumieniowo dane w sieciach o dużych opóźnieniach, wykorzystując UDP lub wiele strumieni TCP. Mają też wiele innych funkcji (kompresja w locie, transfery delta itp.).
Fasp file transfer „technologia” z Aspera wydaje pasowały do tego, co szukasz, jak również.
W świecie open source projekt uftp wygląda obiecująco. Nie potrzebujesz szczególnie jego możliwości multiemisji, ale podstawowa idea wysyłania pliku do odbiorników, odbierania NAK za brakujące bloki pod koniec przesyłania, a następnie wysadzania bloków NAK (piana, płukanie, powtarzanie) wygląda na to, że zrobi to, czego potrzebujesz, ponieważ nie ma potwierdzenia (lub NAK'owania) z odbiornika, dopóki transfer pliku nie zostanie zakończony jeden raz. Zakładając, że sieć jest po prostu ukryta i nie jest stratna, może to zrobić również to, czego potrzebujesz.
źródło
To naprawdę dziwna sugestia. Skonfiguruj prosty serwer sieciowy do hostowania pliku w sieci (proponuję nginx, nawiasem mówiąc), następnie skonfiguruj komputer z firefoxem na drugim końcu i zainstaluj rozszerzenie DownThemAll .
To akcelerator pobierania, który obsługuje dzielenie i ponowne składanie.
Możesz podzielić każde pobranie na 10 części w celu ponownego złożenia, a to naprawdę przyspiesza!
(zastrzeżenie: nigdy nie próbowałem tego na tak dużych jak 160 GB, ale działa dobrze z plikami ISO 20 GB)
źródło
UDT transport jest prawdopodobnie najbardziej popularnym transportowa na wysokich komunikacji latencji. Prowadzi to do ich innego oprogramowania o nazwie Sector / Sphere, czyli „wysokowydajnego rozproszonego systemu plików i silnika przetwarzania danych równoległych”, na które warto się przyjrzeć.
źródło
Moja odpowiedź jest nieco spóźniona, ale właśnie znalazłem to pytanie, szukając fafa. Podczas tego wyszukiwania znalazłem również: http://tsunami-udp.sourceforge.net/ , „Protokół Tsunami UDP”.
Z ich strony internetowej:
Jeśli chodzi o szybkość, strona wspomina o tym wyniku (za pomocą łącza między Helsinkami, Finlandią a Bonn, Niemcy za pomocą łącza 1 GBit:
Jeśli chcesz użyć akceleratora pobierania, spójrz na lftp, jest to jedyny akcelerator pobierania, który może zrobić rekurencyjne lustro, o ile mi wiadomo.
źródło
Narzędzie bbcp z bardzo trafnej strony „Jak przesyłać duże ilości danych przez sieć” wydaje się najprostszym rozwiązaniem.
źródło