Dwa procent utraty podczas długiego przebiegu ping wygląda jak liczba, na którą można zareagować, i rzadko tak jest. Nie mówi, gdzie zniknęły odpowiedzi, czy zniknęły razem ani jak konkretna aplikacja przeżyła ten przedział. Utrata rozłożona równomiernie na minutę i utrata skupiona w jednej wymianie dają przy tym samym procencie bardzo różne wyniki.

Porównaj trzy pomiary zamiast ufać jednemu: co zobaczyła sonda, co zrobiły liczniki interfejsu i na co aplikacja naprawdę czekała.

Co naprawdę mierzy procent ping

Sonda echa sprawdza jeden kierunek jednego protokołu z jednym rozmiarem pakietu, w dowolnym wybranym tempie. Tunel przenoszący duży wysył robi coś zupełnie innego, a łącze, które gubi małe sondy, niekoniecznie jest tym łączem, które szkodzi transmisji. Procent dodatkowo zgniata informację o czasie, która ma największe znaczenie, bo dziesięć utraconych odpowiedzi w jednym wybuchu to nie to samo co dziesięć utraconych odpowiedzi w odstępie godziny. Nie potrafi też powiedzieć, która strona tunelu coś zgubiła.

Zatrzymaj wynik sondy jako wskazówkę o ścieżce. Potem szukaj czasu i granicy, które go wytworzyły.

Porównuj różnice liczników, nie sumy z całego życia

Zbierz odczyty ze znacznikiem czasu przed oknem, w którym pojawił się objaw, i po nim, na obu końcach i na każdym porcie przełącznika, który kontrolujesz. Zapisz wolumen ruchu wraz z błędami, odrzuceniami i zmianami stanu łącza, bo suma różna od zera nagromadzona przez miesiące opisuje historię, a nie ten incydent. Licznik, który podczas zatrzymania przesunął się o trzy, to inna obserwacja niż licznik pokazujący trzy tysiące i nigdy niezmieniony.

ip -s link show dev eth0
nstat -az TcpRetransSegs TcpExtTCPTimeouts
date -u +%Y-%m-%dT%H:%M:%SZ

Pakiety odrzucone z powodu błędów odbioru i pakiety odrzucone z innych powodów żyją w osobnych licznikach, a ta różnica zmienia dalsze kroki. Liczniki błędów wskazują warstwę fizyczną lub warstwę sterownika, natomiast nacisk kolejek i odrzucenia polityki wskazują gdzieś wyżej. Zachowaj też kierunek i nazwę interfejsu, bo wzrost błędów odbioru na łączu uplink i licznik pakietów tunelu nie są wymienne.

Jeśli sterownik udostępnia szczegółowe liczniki fizyczne, czytaj je według dokumentacji tego adaptera. Przypisanie jednego znaczenia każdemu polu o nazwie „drop” u dwóch producentów to droga, na której zwykła osobliwość księgowa staje się diagnozą sprzętową.

Jak utracony segment staje się długim czekaniem

Aplikacja może czekać znacznie dłużej niż jedną podróż w obie strony po utracie segmentu. TCP szacuje czas podróży w obie strony, wylicza z tego szacunku timer retransmisji i wycofuje się, gdy retransmisja też zawiedzie, więc jeden utracony segment w złym momencie może wstrzymać żądanie na zauważalny przedział. Ten mechanizm jest opisany w RFC 6298 i wyjaśnia, dlaczego wskaźnik utraty, który wygląda banalnie, wciąż może być odczuwalny.

Nie każda pauza jest jednak przekroczeniem czasu retransmisji. To samo czekanie może pochodzić z rozwiązywania nazw, wolnego serwera lub aplikacji, która po niepowodzeniu ponawia własne żądanie. Rozdziel te przypadki, dopasowując nieudaną operację do obserwacji transportu i do zdarzeń sesji samego tunelu. Przerwanie na ścieżce danych bez ponownego połączenia to inne zdarzenie niż nowy uścisk dłoni i wymiana danych uwierzytelniających.

Tam, gdzie przechwytywanie jest dozwolone, trzymaj je wąsko. Potrzebujesz wiedzieć, czy oczekiwane pakiety lub potwierdzenia zatrzymują się na konkretnej granicy, a nie tego, że gdzieś w zajętym śladzie istnieje retransmisja.

Zmień jedną granicę, nie ruszając pozostałych

Jeśli dowody wskazują na lokalne łącze, zastąp zatwierdzony kabel lub port jako kontrolowane porównanie i zostaw wszystko inne w spokoju. Utrzymaj punkt końcowy, aplikację i obciążenie jako porównywalne i zmieniaj dokładnie jedną granicę na próbę. Porównywanie laptopa przewodowego z bezprzewodowym przy jednoczesnej zmianie wyjść i protokołów nie mówi nic, co można by przypisać.

Czyste lokalne liczniki nie poświadczają reszty ścieżki. Ograniczają tę część, którą widzisz, a uczciwy raport mówi, które granice zaobserwowano, a których nie. Na końcu chcesz stwierdzenia, że jedna obserwacja się zmieniła, gdy nastąpiła jedna interwencja, a nie anegdoty o złym kablu podniesionej do rangi uniwersalnej reguły.

Powiązane artykuły