Rozwiązywanie problemów związanych z szybkościami sieci - The Age Old Enquiry

18

Szukam pomocy w tym, co na pewno jest odwiecznym pytaniem. Znalazłem się w sytuacji pragnienia lepszego zrozumienia przepustowości sieci, ale wydaje mi się, że nie mogę znaleźć informacji, dzięki której kliknięcie

Mamy kilka serwerów rozproszonych geograficznie, obsługujących różne wersje systemu Windows. Zakładając, że zawsze używamy jednego hosta (komputera stacjonarnego) jako źródła, podczas kopiowania danych z tego hosta na inne serwery w całym kraju, widzimy dużą zmienność prędkości. W niektórych przypadkach możemy konsekwentnie kopiować dane z prędkością 12 MB / s, w innych widzimy 0,8 MB / s. Należy zauważyć, że po przetestowaniu 8 miejsc docelowych zawsze wydajemy się mieć albo 0,6-0,8 MB / s, albo 11-12 MB / s. W budynku, który nas interesuje, mamy połączenie OC-3 z naszym dostawcą usług internetowych.

Wiem, że w grę wchodzi wiele zmiennych, ale sądzę, że miałem nadzieję, że eksperci tutaj pomogą mi odpowiedzieć na kilka podstawowych pytań, które pomogą zwiększyć moje zrozumienie.

1.) Czy w przypadku starszych komputerów z systemem Windows XP, serwerem 2003 itp. Z kartą Ethernet 100 Mb / s i typowym opóźnieniem 72 ms, 0,8 MB / s brzmi w ogóle rozsądnie? A może uważasz, że jest wystarczająco wolny, aby wskazać problem?

2.) Klasyczna „matematycznie najszybsza prędkość” „przepustowości = okno TCP / opóźnienie” jest w naszym przypadku obliczana na 0,8 MB / s (64 KB / 72 ms). Rozumiem, że to górne granice; którego nigdy nie spodziewałbyś się osiągnąć (ze względu na obciążenie), nie mówiąc już o przekroczeniu tej prędkości. W niektórych przypadkach obserwujemy prędkość 12,3 MB / s. Istnieją akceleratory Steelhead rozrzucone po sieci, czy mogą one uwzględniać tak wysoką prędkość transferu?

3.) Zasugerowano, że użycie SMB vs. SMB2 może wyjaśnić różnice prędkości. Rzeczywiście, zgodnie z oczekiwaniami, przechwytywanie pakietów pokazuje, że oba są używane w zależności od wersji systemu operacyjnego w grze, zgodnie z oczekiwaniami. Rozumiem, co decyduje o tym, czy SMB2 jest używane, czy nie, ale jestem ciekawy, jakiego wzrostu wydajności można się spodziewać po SMB2.

Moim problemem jest po prostu brak doświadczenia, a co ważniejsze, perspektywa, jeśli chodzi o to, jakie są i nie są rozsądne prędkości sieci. Czy ktokolwiek mógłby pomóc przekazać kontekst / perspektywę?

Univ426
źródło
różnice w prędkości to nie tylko SMB vs. SMB 2. pamiętaj, że w vista i wyżej stos sieci nie jest już dodatkiem opartym na * nix i jest zintegrowany z systemem operacyjnym, co pozwala na znacznie mniejsze opóźnienia i koszty ogólne.
Jim B
Dzięki Jim, to dobrze wiedzieć. Tak, wiem, że istnieje miliard zmiennych w górę i w dół w zależności od tego, gdzie patrzysz na stosie OSI. Współpracownik zaproponował, że być może różnica prędkości może być po prostu kwestią „SMB vs. SMB2”. Chyba sceptycznie podchodzę do SMB2 (.1), który daje nam 10-krotny wzrost prędkości, ale znowu, po prostu nie jestem wystarczająco obeznany w sztuce aracne, aby wiedzieć;)
Univ426
Świetne pytanie! Wszelkie aktualizacje na ten temat? I fwiw, okno systemu Windows XP, które udostępnia, ale nie jest „zalogowany”, przesyła pliki szybciej niż jeden z zalogowanym użytkownikiem.
Chris K

Odpowiedzi:

4

Wzór matematyczny, do którego się odwołujesz, jest w rzeczywistości sposobem na określenie najbardziej efektywnych ustawień rozmiaru okna transmisji dla TCP, a nie rzeczywistej dostępnej przepustowości. TCP wykorzystuje mechanizm zwany przesuwanymi oknami, który pozwala na dostosowanie prędkości transmisji w zależności od warunków sieciowych. Chodzi o to, że nadajnik TCP będzie wysyłać coraz więcej danych bez konieczności potwierdzenia przez odbiornik. W przypadku utraty danych ilość danych przesyłanych między potwierdzeniami zmniejsza się, zmniejszając tym samym efektywną szerokość pasma.

Omawiana formuła faktycznie określa idealny rozmiar tego okna transmisji TCP w oparciu o opóźnienie i opóźnienie w obie strony między daną parą hostów. Chodzi o to, aby okno miało taki rozmiar, aby ilość danych „w locie” odpowiadała tak zwanemu produktowi opóźnienia przepustowości. Na przykład, jeśli masz 50 megabitów na sekundę (6,25 megabajta) i średnie opóźnienie w obie strony 100 ms, to masz 6,25 * 0,1 = 625 kilobajtów danych. To byłaby wartość, którą TCP negocjowałby (jeśli byłby poprawnie skonfigurowany). Ponieważ charakterystyka opóźnień i przepustowości łączy jest różna, zmienia się również rozmiar okna.

To, czego potrzebujesz, to narzędzie do zarządzania przepustowością, takie jak iperf (bezpłatne), działające zarówno na źródle, jak i różnych miejscach docelowych. Powinno to dać ci wyobrażenie o możliwej rzeczywistej przepustowości (niezależnie od innych aplikacji), a jednocześnie dać wgląd w opóźnienia. Uruchomienie rozszerzonego polecenia ping między hostami zapewni także ogólne wyobrażenie o charakterystyce opóźnień. Gdy będziesz mieć te dane, będziesz mieć lepsze pojęcie o tym, co powinieneś zobaczyć, jeśli chodzi o przepustowość.

BTW - Użycie dowolnego rodzaju optymalizatora LAN często obejmuje kompresję danych, optymalizację TCP, buforowanie itp. Chociaż jest to przydatne, może ukryć charakter odnośników. Gdy masz już pojęcie o surowej przepustowości / opóźnieniu (i potencjalnie utracie pakietów), możesz przyjrzeć się bliżej, aby upewnić się, że różne hosty są skonfigurowane, aby odpowiednio wykorzystać dostępną przepustowość.

rnxrx
źródło
Dzięki za świetne informacje rnxrx. Przesuwne okna używane w TCP mają sens. W naszym przypadku, ponieważ jedynym ruchem, który nas interesuje, jest przekroczenie TCP, więc moje pytanie jest mocno skoncentrowane na TCP. Użyliśmy innych metod przesyłania danych (takich jak repliweb) i osiągnęliśmy znacznie wyższą przepustowość (do 11 MB / s). Nie wiedziałem jednak o opóźnieniu przepustowości, to wspaniale wiedzieć!
Univ426,
2

Spróbuj użyć polecenia „ping -l 8092” lub FTP lub HTTP, aby sprawdzić, czy występuje problem z SMB.

Po pierwsze: jakich mediów używasz do łączenia komputerów? Co my „100mpbs”? Ethernet? Nie możesz go użyć do komputerów „rozproszonych geograficznie”, prawda?

W przypadku „VPN przez Internet” routery między komputerami mogą używać różnych łączy: jedno jest szybkie, a drugie nie. Mogą wybrać link na podstawie wielu parametrów.

Opisz swoją sieć.

Może to być również problem MTU: kilka łączy może mieć różne MTU.

Ilya
źródło
Dziękuję Llya. Zaktualizowałem pytanie, aby odpowiedzieć na twoje. Jest to normalna sieć Ethernet z kartą sieciową 100 Mbps w hoście źródłowym.
Univ426
Josh, nadal nie rozumiem: ((Czy łączysz swój komputer z serwerem za pomocą 100BASE Ethernet? Nawet jeśli używasz 100BASE-LX10 (Ethernet przez dwa światłowody), nie możesz połączyć dwóch komputerów „w całym kraju”: ma limit odległości około 10 kilometrów. A w przypadku Ethernetu używasz przełącznika (który?) lub podłączasz komputery bezpośrednio? I powiedz mi o opóźnieniu: skąd masz „72 ms”? jak to obliczyłeś? Dzięki
Ilya
Przechodzimy przez lokalną sieć LAN do publicznej interenet, do centrum danych, a następnie do serwera przez korporacyjny intranet. Opóźnienie określono za pomocą polecenia ping. Przechodzimy przez wiele przełączników zgodnie z oczekiwaniami. Najbliższy przełącznik ma potwierdzoną autonegocjowaną prędkość z hostem 100 Mb / s. Mam nadzieję, że to pomaga.
Univ426
1
nb - przepustowość, o którą się martwisz, to nie 100 M twojego połączenia LAN, ale najwolniejsze połączenie między punktami końcowymi. Może to być Twój link WAN lub wolniejszy link pośredni.
rnxrx
To świetna uwaga, zaktualizuję pytanie, ale wiem, że jesteśmy podłączeni do naszego ISP za pośrednictwem OC-3. Muszę sobie wyobrazić, że wszystko powyżej tego wynosi co najmniej 100 Mb / s, i wiem, że infrastruktura w budynku to 100 Mb lub 1G aż do tego połączenia.
Univ426
2

Wiele komentarzy i użytkowników oferuje tutaj świetne porady. Niektóre z nich zbliżyły się do tego, czego szukałem, ale miałem również szczęście spotkać się z weteranem sieci z naszej firmy, który pomógł wyjaśnić różne rzeczy. Pomyślałem, że opublikuję tutaj moje ustalenia / ustalenia dla korzyści innych. Prosimy o poprawienie mnie, jeśli coś takiego wydaje się być wyłączone:

1.) Maksymalna przepustowość pojedynczej sesji TCP z opóźnieniem 72 ms i oknem 64 KB wynosi około 0,8 MB / s, co czyni tę prędkość rozsądną w przypadku kopii z pojedynczym wątkiem i pojedynczej sesji, takich jak te, które wykonaliśmy przy użyciu robocopy.

2.) Ta różnica prędkości wydaje się sprowadzać do skuteczności metody przenoszenia. W naszym przypadku korzystaliśmy z Robocopy i Repliweb. Odkryłem, że robocopy korzysta z jednej sesji TCP, podczas gdy Repliweb może otwierać wiele sesji, aby przesyłać dane.

3.) Badania przeprowadzone na stronie Microsoftu wykazały, że SMB2 ma znaczący wzrost wydajności w porównaniu do SMB1. W niektórych przypadkach występowały jednak problemy ze sposobem, w jaki system operacyjny negocjuje, którego protokołu użyć, dlatego należy mieć świadomość zarówno: a.) Które przypadki SMB2 mogą być użyte, i b.) Czy SMB2 jest faktycznie wykorzystywane na przechwytywanie sieci.

Obecnie wygląda na to, że Wire-shark może określić użycie protokołu SMB2.

Mam nadzieję, że to pomoże. Ponownie, moje zrozumienie jest tutaj dość szczątkowe, nie krępuj się rozszerzać.

Univ426
źródło
1
Oprócz obliczeń opóźnienia przepustowości należy pamiętać, że SMB2 znacznie poprawia wydajność łącza o większym opóźnieniu, ponieważ nie czeka na potwierdzenie zapisu przez serwer przed przesłaniem większej ilości danych. W rzeczywistości widzimy 10-krotny wzrost przepustowości dzięki SMBv2 przez nasze połączenia WAN korzystające z ROBOCOPY. Weź również pod uwagę wątek / MT z robocopy, jeśli kopiujesz wiele plików, domyślnie robi to do 8 równolegle.
rmalayter