FTP / FTPS / SFTP / SCP - Porównanie prędkości [zamknięte]

21

Jak FTP, FTPS, SFTP i SCP porównują pod względem szybkości transferu i jak mogę je porównać poprzez testy?

Graham
źródło
3
Szybkość nie jest istotną różnicą między FTP a innymi.
ceejayoz
2
Nie jestem pewien, dlaczego zostało to odrzucone. Jest to z pewnością bardzo istotne dla mojej pracy jako profesjonalnego administratora - dlaczego nie przesyłano plików w pobliżu przepustowości całej ścieżki połączenia?
Dan Pritts,
Różnicę prędkości SFTP można zrekompensować za pomocą wielu połączeń TCP sterowanych przez LFTP i podsystemu kopii lustrzanych za pomocą SFTP bez utraty bezpieczeństwa. Może nawet używać wielu wątków w jednym dużym pliku.
Aaron

Odpowiedzi:

29

Jeśli masz szybką sieć rozległą, znajdziesz ją sftpi scpmasz mniej więcej tę samą prędkość, co jest wolne. Obaj cierpią z powodu problemów z wydajnością w podstawowym openssh. W przypadku nowoczesnego sprzętu nie jest to spowodowane narzutem szyfrowania, ale raczej problemami z implementacją openssh - implementuje własny wewnętrzny mechanizm okienkowania, który psuje się przy szybkich połączeniach.

Problemy te stają się bardziej widoczne na połączeniach na duże odległości (większe opóźnienia), ale spowolnienie występowało nawet w sieciach LAN.

Są one dobrze udokumentowane i dostępne są łatki do rozwiązania problemu. Łatowanie obu końców połączenia może pomóc; idealnie załatałbyś oba końce. Aby uzyskać więcej informacji i poprawki, zobacz High Performance SSH w Pittsburgh Supercomputer Center.

BTW, narzut szyfrowania może również stać się problemem, gdy problem okienkowania zostanie rozwiązany. Łatki również mają poprawki.

Tymczasem okaże się, że ftpjest to bardzo niepewne; wysyła hasła w postaci zwykłego tekstu.

ftpsMyślę, że otacza protokół FTP w SSL. jest prawdopodobnie szybszy niż niezałatany SFTP / SCP.

Ostatnia uwaga: z mojego doświadczenia wynika, że ​​klient WinSCP jest (przynajmniej czasami) boleśnie powolny. Nie wiem dlaczego, ale na podstawie ich FAQ nie jestem jedyną osobą, która miała ten problem. Więc jeśli scp'ujesz z Windows i wydaje się to powolne, wypróbuj innego klienta. Nawet z niepoprawnym serwerem openssh możesz zrobić znacznie, znacznie lepiej z innym klientem. Niestety nie jestem pewien, którzy są dobrymi klientami.

Dan Pritts
źródło
1
Wreszcie. Ktoś, kto wie o czym mówią. Tak, FTPS jest w zasadzie FTP w SSL. SFTP / SCP zawsze będzie wolniejszy niż podczas korzystania z FTP
Jason
Czy masz pojęcie, dlaczego uzyskuję 300 kb / s przy użyciu scp, a około 10 Mb / s (prawie maksymalna prędkość) przy użyciu sftp? To nie wydaje się być „o tej samej prędkości”. To ponad 100 Mb / s Ethernet.
graywolf
Prawdopodobnie twój scp jest wadliwą implementacją (np. WinSCP), ale twój sftp nie. Nawet jeśli są w tym samym opakowaniu GUI, mogą się różnić od wewnątrz.
Dan Pritts,
Dan, masz pojęcie, dlaczego ta łatka SSH nie jest stosowana do głównego OpenSSH? Oczywiście jest to 1 ~ 2 rzędy wielkości lepsze (> 10x nawet w sieci LAN 100 Mb / s), więc dlaczego nie jest to nowy standard OpenSSH? Jak możemy to zrobić?
Gabriel Staples
Rozumiem, że PSC przesłało łatki ludziom openbsd (którzy piszą openssh). Nie byli zainteresowani. Słyszałem niejasne stwierdzenia, że ​​żadna z osób openbsd nie ma połączeń o dużej przepustowości i nie zauważyły ​​żadnych problemów i / lub koniecznie wierzą, że był to prawdziwy problem. To było kilka lat temu i jest to pogłoska, więc nie mogę ręczyć za jego dokładność.
Dan Pritts,
4

Zasadniczo wszystkie protokoły będą działać mniej więcej tak samo. Bardziej prawdopodobne jest ograniczenie prędkości sieci lub dysku niż protokołu.

Starsze wersje OpenSSH (SFTP / SCP) używały stałego rozmiaru okna, który ograniczy prędkość w sieciach o dużych opóźnieniach (powiedzmy transatlantyckich). Istnieje zestaw łatek do rozwiązania tego problemu o nazwie HPN (High performance network) i jest on zawarty w większości nowoczesnych instalacji OpenSSH.

Jeśli masz do czynienia z sytuacją taką jak gigabitowe lub szybsze łącze LAN i wolniejszy procesor, wówczas SFTP / SCP może wpaść w wąskie gardło. Będziesz w stanie stwierdzić, ponieważ proces ssh / scp / sftp zużywa 100% procesora na hostingu wysyłającym lub odbierającym. Jeśli używasz nowszej wersji OpenSSH (6.4+), możesz włączyć wątkową wersję szyfru AES, która będzie mogła używać więcej niż 1 rdzenia do obsługi szyfrowania i będzie mniej prawdopodobne, że będzie ograniczona przez procesor niż dysk lub przepustowość sieci.

Jeśli kontrolujesz zarówno stronę wysyłającą, jak i odbierającą, OpenSSH 6+ ma również opcjonalny tryb „BRAK UŻYTKOWNIKA”. Używa zwykłego szyfrowania / kluczy itp. Do zalogowania się na zdalnym komputerze, ale następnie przechodzi do niezaszyfrowanego połączenia w celu skopiowania pliku. Spowoduje to usunięcie narzutu procesora. W NONECIPHER wbudowane są zabezpieczenia, które uniemożliwiają uzyskanie powłoki, która nie jest zaszyfrowana.

Ostatecznie protokół nie powinien ograniczać szybkości, chociaż starsze wersje ssh mają problemy z łączami o dużych opóźnieniach.

Allan Jude
źródło
Warto wiedzieć, że domyślnymi ustawieniami są teraz zainstalowane łatki, chociaż wygląda na to, że redhat wyraźnie postanowił tego nie robić ( access.redhat.com/site/solutions/53215 ). Zauważ też, że opóźnienie transatlantyckie nie jest aż tak duże. Aktualny ping rtts: umich -> stanford (California): 89ms. umich -> cambridge (uk): 134ms. Ponadto, czy połączenie opóźnień i przepustowości nie powoduje problemu? więc niższe opóźnienia, ale łącza o większej przepustowości mogą nadal mieć problemy.
Dan Pritts,
3

Opierając się na narzutach szyfrowania, powiedziałbym, że zwykły FTP prawdopodobnie ma nieco lepszą wydajność niż inne protokoły, ale prawdopodobnie jest nieistotny. Użyłbym protokołu, który zapewnia bezpieczeństwo, którego potrzebujesz, a potem martwię się o przepustowość.

Biorąc to pod uwagę, będziesz musiał przeprowadzić test, aby znaleźć rzeczywiste liczby. Wszystko powyżej to tylko moja opinia. Jeśli testujesz wydajność lokalnie, skonfiguruj serwer w sieci. Jeśli końcowe użycie będzie przez Internet, przetestuj z zewnętrznego hosta.

Jim G.
źródło
Narzut wydajności jest rzędu wielkości, a nie niewielki. Bliżej 10x niż 2x wolniej. Sam byłem zaskoczony.
Gomibushi,
2

Jak zawsze, Google przechowuje odpowiedzi,
FTP v / s SFTP v / s FTPS
Co oznacza, że ​​FTP> FTPS> SFTP
FTP również wydaje się być szybszy niż SCP w czyimś teście ( http://www.lysesoft.com/support/forums /viewtopic.php?f=5&t=542 ), ale polecam wypróbowanie go samemu.
Więc po prostu skonfiguruj SCP i FTP na dowolnym losowym urządzeniu w sieci, a następnie uruchom typowy transfer plików i sprawdź, jak długo zajmuje to jedno i drugie

Społeczność
źródło
dlaczego mówisz, że FTP to protokół internetowy i SCP dla sieci LAN?
Dan Pritts,
5
Ach, widzę, że masz to z powiązanego artykułu eHow. eHow jest źle. Oba protokoły zostały zaprojektowane do korzystania z Internetu. Artykuł zawiera kilka innych błędów; autor wyraźnie nie wie o czym mówi.
Dan Pritts,
Teraz, gdy o tym myślę, masz rację, prawdopodobnie powinienem był to sprawdzić.
1
Strony takie jak eHow nigdy nie wiedzą o czym mówią.
Jason