Mam serwer sieciowy z bieżącym połączeniem 100 Mb, a mój dostawca oferuje aktualizację do 1 GB. Rozumiem, że odnosi się to do przepustowości, ale im większe są pakiety, tym szybciej można je przesyłać, więc oczekiwałbym niewielkiego skrócenia czasu odpowiedzi (np. Ping). Czy ktoś kiedykolwiek to porównał?
Przykład (serwer 100mbit do 100mbit) z obciążeniem 30 bajtów:
> ping server -i0.05 -c200 -s30
[...]
200 packets transmitted, 200 received, 0% packet loss, time 9948ms
rtt min/avg/max/mdev = 0.093/0.164/0.960/0.093 ms
Przykład (serwer 100 do 100 Mb) z obciążeniem 300 bajtów (poniżej MTU):
> ping server -i0.05 -c200 -s300
[...]
200 packets transmitted, 200 received, 0% packet loss, time 10037ms
rtt min/avg/max/mdev = 0.235/0.395/0.841/0.078 ms
Średnio od 30 do 300. opóźnienia zwiększają się z 0,164 do 0,395 - Spodziewam się, że będzie to wolniejszy wzrost dla połączenia 1 gibt do 1 gb. Spodziewałbym się nawet, że 100mbit do 1gbit będzie szybszy, jeśli połączenie jest realizowane przez przełącznik, który najpierw czeka, aż odbierze cały pakiet.
Aktualizacja: Przeczytaj uważnie komentarze do odpowiedzi! Połączenie nie jest nasycone i nie sądzę, że ten wzrost prędkości będzie miał znaczenie dla ludzi dla jednego żądania, ale dotyczy wielu żądań, które się sumują (Redis, baza danych itp.).
Odnośnie odpowiedzi od @LatinSuD :
> ping server -i0.05 -c200 -s1400
200 packets transmitted, 200 received, 0% packet loss, time 9958ms
rtt min/avg/max/mdev = 0.662/0.866/1.557/0.110 ms
źródło
Odpowiedzi:
Jedynym sposobem, aby opóźnienie znacznie spadło, jest nasycenie obecnego łącza 100 Mb. Jeśli nie jest nasycony, prawdopodobnie nie zauważysz żadnych zmian.
Ponadto Twoje założenie, że łącze 1 Gbit będzie w stanie obsługiwać większe pakiety, jest błędne. Maksymalny rozmiar pakietu zależy od MTU różnych urządzeń wzdłuż ścieżki, którą obiera pakiet - od karty sieciowej na serwerze, aż do MTU komputera klienta. W wewnętrznych aplikacjach LAN (gdy kontrolujesz wszystkie urządzenia na ścieżce), czasami jest możliwe zwiększenie MTU, ale w tej sytuacji utkniesz z domyślną MTU równą 1500. Jeśli wysyłasz pakiety większe niż że ostatecznie zostaną rozdrobnione, co w rzeczywistości obniży wydajność.
źródło
TAK gbit ma mniejsze opóźnienie, ponieważ:
ALE poprawa jest zauważalna tylko wtedy, gdy pakiety mają określony rozmiar:
Jeśli więc masz aplikację, która jest bardzo wrażliwa na opóźnienia (4 ms w porównaniu z 0,8 ms, transfer w obie strony dla 20 kb) i wymaga przesłania większych pakietów, to zmiana z 100 Mb na gbit może zapewnić zmniejszenie opóźnień, nawet jeśli używasz znacznie mniej niż średnio 100 Mb / s (= łącze nie jest nasycone na stałe).
Serwer (100mbit) -> Przełącznik (gbit) -> Serwer (100mbit):
Serwer (gbit) -> Przełącznik (gbit) -> Serwer (gbit):
= średnio na wielu serwerach 80% redukcja opóźnień dla ping 20kb
(Jeśli tylko jedno z linków to gbit, nadal będziesz mieć 5% redukcję opóźnień dla ping 20kb.)
źródło
Myślę, że masz fundamentalne błędne przekonanie na temat opóźnienia przepustowości i „prędkości”. Szybkość jest funkcją przepustowości i opóźnienia. Rozważmy na przykład przesyłanie danych na dyskach DVD wysyłanych w całym kraju w ciągu 3 dni. Porównaj to z wysyłaniem danych przez Internet. Internet ma znacznie mniejsze opóźnienie połączenia, ale aby dopasować „szybkość” połączenia do przesyłki, trzeba by je otrzymywać z prędkością 9,6 MB na sekundę ( przykład z tego źródła ).
W twoim przypadku uaktualnienie do wyższej przepustowości pozwoli ci obsługiwać więcej jednoczesnych użytkowników, ale nie zwiększysz opóźnień u poszczególnych użytkowników.
źródło
Patrzysz na świat przez otwór. Prawidłowy test różnic opóźnienia przy różnych prędkościach odbywałby się między dwoma identycznymi kartami sieciowymi połączonymi kablem skrosowanym. Ustaw prędkości matematyczne kart sieciowych na 10 Mb, 100 Mb i 1000 Mb. To pokaże, że praktycznie nie ma różnicy w opóźnieniu przy różnych prędkościach. Wszystkie pakiety podróżują z tą samą prędkością drutu, niezależnie od użytej maksymalnej przepustowości. Po dodaniu przełączników do pamięci podręcznej przechowywania i przesyłania dalej wszystko się zmienia. Testowanie opóźnienia przez przełącznik musi być wykonane tylko z dwoma połączeniami z przełącznikiem. Każdy inny ruch może mieć wpływ na opóźnienie testu. Nawet wtedy przełącznik może przechodzić dzienniki, dostosowywać liczniki typów pakietów, aktualizować zegar wewnętrzny itp. Wszystko może wpływać na opóźnienia.
Tak, zmiana ze 100mb na 1gb może być szybsza (mniejsze opóźnienie) ze względu na zmiany sprzętowe, inną kartę sieciową, inny przełącznik, inny sterownik. Widziałem większe zmiany w opóźnieniu ping z różnic między sterownikami niż jakiekolwiek inne zmiany; przepustowość, przełączniki, rozładowywanie kart sieciowych itp.
Przełącznik byłby kolejną największą zmianą z odcięciem znacznie szybszym niż przechowywanie i przesyłanie do testów pojedynczej transmisji. Jednak dobrze zaprojektowany przełącznik przechylania i przewijania może wyprzedzić wyłącznik przeciążeniowy pod względem ogólnego działania pod dużym obciążeniem. Na początku gigabitów widziałem 10-megabitowe przełączniki płytowe o mniejszych opóźnieniach niż tanie przełączniki gigabitowe.
Testy ping są praktycznie nieistotne dla analizy wydajności podczas korzystania z Internetu. Są to szybkie testy, aby dowiedzieć się, co dzieje się w transporcie w momencie testu. Testowanie wydajności produkcji jest znacznie bardziej skomplikowane niż tylko ping. Przełączniki o wysokiej wydajności to komputery i przy dużym obciążeniu zachowują się inaczej - zmiana opóźnienia.
Posiadanie wolniejszej karty sieciowej lub karty sieciowej ustawionej na mniejszą prędkość może w rzeczywistości pomóc serwerowi z jednoczesnymi seriami poprzez dławienie danych wejściowych do serwera za pomocą pamięci podręcznej przełączników. Pojedyncza ponowna transmisja może negować jakiekolwiek zmniejszenie opóźnienia. Zwykle ważne są poziomy ruchu o średnim i dużym obciążeniu, a nie pojedyncze testy ping. np. stary wolny Sun Ultrasparc (większe opóźnienie dla pojedynczego pinga) przewyższa nowy tani gigabitowy pulpit używany jako serwer deweloperski, gdy obciążenie przepustowości wynosi 70% 100mb. Komputer stacjonarny ma szybszą kartę sieciową gb, szybsze połączenie gb-gb, szybszą pamięć, więcej pamięci, szybszy dysk i szybszy procesor, ale nie działa tak dobrze, jak dostrojony sprzęt / oprogramowanie klasy serwera. Nie oznacza to, że obecnie dostrojony serwer działający na gb-gb nie jest szybszy niż stary sprzęt, nawet w stanie obsłużyć większe obciążenia. Jest jeszcze bardziej złożona kwestia „
Dowiedz się, czy Twój dostawca używa różnych przełączników dla połączeń 100 Mb vs. 1 GB. Jeśli używają tej samej płyty przełączającej niż ja, zapłaciłbym za wzrost tylko wtedy, gdy poziomy ruchu przekroczyłyby niższą przepustowość. W przeciwnym razie może się okazać, że w krótkim czasie wielu innych użytkowników przełączy się na gigabit, a niewielu użytkowników pozostałych na starym przełączniku ma teraz wyższą wydajność - mniejsze opóźnienia, podczas dużych obciążeń na przełączniku (ogólne obciążenie przełącznika, nie tylko na serwerach) ).
Przykład jabłek i pomarańczy: lokalny dostawca usług internetowych dostarczył nowy przełącznik dla usług pakietowych, DSL i telefonu. Początkowo użytkownicy zauważyli wzrost wydajności. System został wyprzedany. Teraz użytkownicy, którzy pozostają na starym przełączniku, mają wyższą stałą wydajność. Późną nocą użytkownicy nowego systemu są szybsi. Wieczorem pod dużym obciążeniem dawni klienci przełączników wyraźnie przewyższają nowy przeciążony system.
Niższe opóźnienia nie zawsze korelują z szybszą dostawą. Wspominasz o MySQl w 20 żądaniach wyświetlenia jednej strony. Ten ruch nie powinien być na tej samej karcie sieciowej, co żądania strony. Przeniesienie całego ruchu wewnętrznego do sieci wewnętrznej zmniejszy liczbę kolizji i całkowitą liczbę pakietów na wychodzącej karcie sieciowej i zapewni większe zyski niż przyrost opóźnienia wynoszący 0,04 ms dla pojedynczego pakietu. Zmniejsz liczbę żądań na stronę, aby zmniejszyć opóźnienie ładowania strony. Kompresuj strony, html, css, javascript, obrazy, aby skrócić czas ładowania strony. Te trzy zmiany zapewnią większe ogólne zyski w toku niż płacenie za przepustowość nieużywaną do uzyskania opóźnienia w zakresie 0,04 ms. Ping musi działać 24 godziny i być uśredniony, aby zobaczyć rzeczywistą zmianę opóźnienia. Inteligentne przełączniki wykonują teraz adaptacyjne dławienie typu RTSP z niewielkim początkowym wzrostem przepustowości i dławieniem dużych transferów. W zależności od rozmiarów strony (grafika, duży HTML / CSS / JAScript) początkowe opóźnienia / przepustowość połączenia mogą być znacznie niższe / wyższe niż w przypadku przesyłania dużych lub pełnych stron. Jeśli część strony przesyła strumieniowo, możesz zobaczyć drastycznie różną wydajność między stroną a strumieniem.
źródło
Załóżmy 300 bajtów pakietów (jeśli
-s 300
go użyjesz , będzie tak naprawdę większy z powodu nagłówków).0,024 ms to w przybliżeniu faktyczny czas wymagany do wysłania ramki (nie licząc średniego czasu dostępu ani nagłówków).
W sekwencji ping-pong zajęłoby to dwa razy więcej czasu (0,048 ms), a także czas przetworzenia zapytania przez system operacyjny.
Oznacza to dla mnie, że twoje opóźnienie jest spowodowane przez 90% kilku czynników ogólnych. Nie jestem pewien, czy zauważysz dużą różnicę w stosunku do Gb. Prawdopodobnie różnica mniejsza niż 1 ms nie będzie zauważalna dla serwera.
W każdym razie czy mógłbyś spróbować z naprawdę dużym pakietem, takim jak 1400 bajtów?
źródło
Zależy to od rodzaju przełącznika, z którym się łączysz. W przypadku niektórych dostawców (takich jak Crisco ... mam na myśli Cisco) pakiety ICMP będą wracać do procesora ( gag ).
Lepszym rozwiązaniem może być przeprowadzenie testu host-host przy użyciu łącza 100 Mb / s i łącza 1 Gb / s (tj. Nie test hosta na przełącznika ani hosta na router).
Pod koniec dnia opóźnienie sprowadza się do szybkości przesyłania na przełączniku i szczegółów architektury przełącznika (gdzie układy ASIC są umieszczane na płycie, sposób blokowania między kartami linii itp.). Powodzenia w testowaniu.
źródło