Rejestrowanie opóźnienia między kontrolowanym punktem początkowym a niekontrolowanym punktem końcowym

9

To może być bardzo podstawowe pytanie dotyczące rozwiązywania problemów, ale warto zadać sobie pytanie, czy testuję wszystko poprawnie i skutecznie interpretuję wyniki.

Mam kontrolowany punkt początkowy (klaster serwerów pod moją kontrolą) i niekontrolowany punkt końcowy (centrum danych, do którego nie mam fizycznego ani zdalnego dostępu). W ramach normalnego rozwiązywania problemów często muszę ustalić numery opóźnień.

Obecnie używam plotera pingowego lub po prostu dobrego, ciągłego pinglubtracert

Jeśli próbuję ustalić bardziej realistyczne numery od końca do końca (oprogramowanie, z którym pracuję, to oprogramowanie bazy danych), czasami używam Fiddler 2 do przechwytywania ruchu sieciowego i porównywania niektórych tam liczników czasu (takich jak ClientDoneRequest-> ServerBeginResponse) do uzyskać pełny czas od końca do końca.

Na co patrzysz, ustalając liczby prostych opóźnień w sieci?

Sean Long
źródło
Wiele osób sugeruje, abyś się trzymał ping, a nawet twierdzisz, że już używasz ping. Być może mógłbyś wyjaśnić, dlaczego chcesz zrobić coś innego z pomiarami, dlaczego nie jest pingto, czego potrzebujesz? Właściwie nie powiedziałeś, co jest nie tak, po prostu zadałeś pytanie otwarte i nie otrzymujesz odpowiedzi, których potrzebujesz.
jwbensley
To było dość otwarte i otrzymałem odpowiedź, której chciałem. Po prostu tego nie oznaczyłem. Ping jest właściwym narzędziem do tego, co robię.
Sean Long
Rozumiem, no proszę pamiętać, że otwarte pytania są zniechęcające; networkengineering.stackexchange.com/faq#dontask Powinieneś w przyszłości spróbować wymienić punkty, których szukasz w narzędziu pomiarowym, powody, dla których ich potrzebujesz, punkty, których nie lubisz itp., aby nadać pytaniu większą strukturę.
jwbensley

Odpowiedzi:

7

Druga połowa twojego pytania wydaje się wskazywać, że szukasz liczb opóźnień, które uwzględniają proces tworzenia danych warstwy aplikacji, w którym to przypadku „ping” niewiele pomoże, biorąc pod uwagę, że w pingu nie ma zbyt wielu danych paczka.

Ludzie sieci zwykle polegają na pingowaniu, ponieważ jest to stosunkowo lekki i niezawodny sposób na generowanie pewnej liczby losowych danych w celu przetestowania osiągalności i opóźnienia dla danej ścieżki. Na przykład aplikacja korzystająca z połączeń HTTP będzie się zachowywać inaczej, ponieważ HTTP nie jest tym samym co ICMP.

Jeśli obawiasz się ogólnych opóźnień sieci, poza kontekstem specyficznym dla aplikacji (co jest najlepszym sposobem na przetestowanie), ping działa dobrze.

Mierdin
źródło
Bardziej martwię się o rzeczy związane z warstwą sieci. Istnieją inne sposoby izolowania i testowania warstwy aplikacji, a informacje o skrzypcach zawarłem głównie jako tło. Z pozostałych komentarzy wynika, że ​​Ping w zasadzie dostarczy mi najlepszych informacji bez konieczności sięgania do konkretnego narzędzia.
Sean Long
5

Czy masz opcję używania IP SLA między dwoma routerami w każdym punkcie? Nie jestem pewien twojej topologii na odległym końcu, więc nie jestem pewien, czy masz serwer po drugiej stronie lub czy serwer ten łączy się z routerem, który teoretycznie mógłby uruchomić IP SLA

łagodny
źródło
4

Chcę tylko wspomnieć o kilku rzeczach. Opóźnienie może w dużym stopniu zależeć od hosta. Upewnij się, że to serwer, z którego testujesz, a nie twój laptop. W zależności od systemu operacyjnego (Windows lub Linux) czasy oczekiwania na ping mogą się różnić. Mam doświadczenie, w którym systemy Windows wykazywały wolniejsze opóźnienie niż systemy Linux na tych samych ścieżkach sieciowych.

Ping jako rozsądny test. Jeśli jednak możesz wykonać sesję TCP z serwera do punktu końcowego w tym centrum danych, uzyskasz dokładniejsze liczby bez kontroli punktu końcowego. Uruchamiałbym przechwytywanie pakietów podczas ustanawiania sesji TCP. Następnie podążaj za strumieniem TCP i sprawdź czasy delty. Jaka jest różnica czasu między początkowym pakietem TCP a następną sekwencją? Chodzi o to, jakie opóźnienie widzisz w czasie rzeczywistym.

Czy próbujesz dowiedzieć się, czy sieć działa dobrze, czy serwery wykonują swoje zadania?

Matt
źródło
Próbowałem dowiedzieć się, jak dokładnie mierzyć rzeczy w sieci, widzę, że może to być mylące (odkąd wspomniałem o Fiddler2). Mogę dość łatwo izolować i testować elementy warstwy aplikacji (to zupełnie inna historia), ale muszę mieć możliwość dokładnego pomiaru podróży między danym środowiskiem a zdalnym centrum danych, a także wewnętrznie między stacją roboczą klienta a serwerem ( Tak w sieci Ethernet / bezprzewodowej).
Sean Long
4

Opóźnienie może być zabawną rzeczą do zmierzenia - szczególnie dokładnie. Ping wykonuje wystarczająco dobrą robotę, aby uzyskać ogólny pomysł na temat opóźnienia sieci, ale jeśli chodzi o bardzo niskie liczby, może stać się niewłaściwym narzędziem dla tego zadania. Nie robi też nic w przypadku testowania na wyższym poziomie (jak czasy reakcji strony).

Do dokładnego pomiaru wydajności sieci (opóźnienie / przepustowość / utrata itp.) Lubię sprzęt testowy Exfo . Jest to po prostu preferencja i szczerze mówiąc, to pierwsze urządzenie, którego użyłem, więc jestem pewien, że konkurencyjne urządzenia będą działać równie dobrze. JDSU jest także głównym dostawcą tego rodzaju sprzętu.

Istnieje również PCHAR, który jest narzędziem typu open source do dokładniejszego pomiaru opóźnienia niż ping. Nie korzystałem bezpośrednio z niego, ale znam ludzi, którzy go lubią.

Ten artykuł zawiera dobry przegląd niektórych rzeczy, które ICMP Echo może / nie może zrobić dobrze.

Bigmstone
źródło