Co powoduje utratę pakietów tylko podczas dużych zapisów na domowym NAS?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Utrata pakietów podczas dużych zapisów na NAS zwykle ujawnia słabość ścieżki sieciowej między klientem a NAS przy obciążeniu ciągłym, a nie tylko problem z dyskami.

Krótki ping lub przeglądanie katalogu może pozostać czyste, ponieważ generuje niewielki ruch, podczas gdy wielogigabajtowy zapis SMB utrzymuje klienta w stanie ciągłej transmisji, zapełnia kolejki przełącznika, obciąża kabel z prędkością linii i zmusza kartę sieciową NAS oraz procesor do ciągłego odbioru. Diagnoza powinna więc porównać pomiary w stanie bezczynności i pod obciążeniem, śledzić kierunek zapisu krok po kroku oraz zmieniać po jednym kablu, porcie, funkcji sterownika lub warunku nadawcy na raz.

Udowodnij, że utrata pojawia się tylko pod obciążeniem zapisu

Uruchom ciągły mały ping z klienta zapisującego do NAS przed kopiowaniem, podczas trwałego zapisu dużego pliku oraz po zakończeniu kopiowania. Jednocześnie rejestruj przepustowość SMB, opóźnienia pod obciążeniem, retransmisje oraz liczniki błędów interfejsu na obu końcach.

Testowanie utraty pakietów powinno łączyć ping, iperf i statystyki interfejsu, ponieważ pojedynczy ping z czterema pakietami może nie wykryć krótkotrwałej awarii wywołanej obciążeniem. Przydatny wzorzec to pojawienie się utraty lub błędów wraz z rozpoczęciem zapisu i ich zniknięcie po jego zakończeniu.

Jeśli rośnie tylko opóźnienie, a pakiety ostatecznie wracają, zbadaj kolejkowanie i bufferbloat, zanim uznasz to za utratę pakietów. Jeśli zapis na NAS zatrzymuje się, ale pingi i liczniki interfejsu pozostają czyste, wąskie gardło prawdopodobnie leży w ścieżce zapisu, systemie plików, opróżnianiu pamięci podręcznej, parzystości lub aplikacji, a nie w dostarczaniu przez Ethernet.

Śledź kierunek zapisu przed wymianą sprzętu

Podczas zapisu klient → NAS karta sieciowa klienta jest nadajnikiem, przełącznik przekazuje dane do portu NAS, a karta sieciowa NAS jest odbiorcą. Ten kierunek wskazuje, które liczniki i zamienniki mogą faktycznie zlokalizować usterkę.

Czysty licznik transmisji NAS nie oznacza, że odbiór NAS jest bezbłędny, a czysty licznik odbioru klienta niewiele mówi o ramkach opuszczających klienta. Porównaj błędy i odrzucone pakiety nadawania klienta, liczniki wejścia i wyjścia przełącznika, błędy i odrzucone pakiety odbioru NAS oraz retransmisje TCP w tym samym przedziale testowym.

Zresetuj lub zanotuj liczniki przed każdym testem, przetransferuj ten sam duży plik, a następnie oblicz, który licznik rośnie tylko podczas awarii. Pierwsze urządzenie, które rejestruje błędy fizyczne, odrzucenia kolejek, utracone pakiety lub odrzucone odbiory, staje się kolejnym punktem testowym.

Sprawdź, czy błędy fizyczne rosną przy stałej prędkości linii

Marginalny kabel, złącze, transceiver lub port przełącznika może przepuszczać lekki ruch, a mimo to gromadzić błędy CRC, ramki, nośnika lub symbolu podczas długiego zapisu. Duże transfery nie „przeciążają” prawidłowo negocjowanego kabla; po prostu generują wystarczająco dużo ramek, by szybko ujawnić słabą ścieżkę fizyczną.

Przypadki rozwiązywania problemów z transferem plików pokazują, że błędy interfejsu podczas dużych kopiowań wskazują na kabel, kartę sieciową, port lub sprzęt pośredni, a nie na sam rozmiar pliku.

Wymieniaj tylko jeden element na test: najpierw kabel krosowy, potem port przełącznika, a następnie adapter klienta lub port NAS, jeśli to możliwe. Diagnoza warstwy fizycznej jest potwierdzona, gdy wzrost błędów następuje po wymianie jednego elementu lub znika po tej zamianie.

Sprawdź, czy odbiornik NAS odrzuca ramki zanim SMB je przetworzy

Sieć może być elektrycznie czysta, podczas gdy host odbierający nadal traci pakiety, ponieważ kolejki karty sieciowej, sterownik, obsługa przerwań, procesor lub wirtualny przełącznik nie nadążają za szybkością przyjmowania. Jest to szczególnie prawdopodobne na małym NAS wykonującym szyfrowanie, kontenery, indeksowanie lub operacje parzystości podczas zapisu.

Bezpośredni przypadek szybkiego Ethernetu opisuje przeciążenie przetwarzania pakietów na hoście nawet bez zatłoczonej sieci wieloetapowej. Kluczowa różnica polega na tym, że liczniki odrzuconych pakietów odbioru hosta rosną, podczas gdy liczniki CRC kabla pozostają czyste.

Powtórz zapis z zatrzymanymi nieistotnymi usługami NAS, a następnie przetestuj obciążenie sieci pamięć-do-pamięci, które eliminuje zapisy na dysku. Jeśli odrzucenia odbioru utrzymują się bez operacji I/O na dysku, skup się na sterowniku karty sieciowej, głębokości kolejek, dystrybucji przerwań, wirtualnym przełączniku i procesorze hosta, a nie na systemie plików.

Szukaj mikroprzebłysków na wolniejszym lub współdzielonym porcie wyjściowym

Utrata pakietów może wystąpić wewnątrz przełącznika, gdy szybszy klient wysyła dane do wolniejszego portu NAS, kilku klientów zapisuje jednocześnie lub ruch z wielu portów wejściowych zbiegają się w jednej kolejce wyjściowej. Średnie wykorzystanie może wyglądać na bezpieczne, mimo że krótki impuls przekracza pojemność kolejki.

Przykład utraty pakietów z powodu mikroprzebłysków podczas zapisu pokazuje, jak dwóch nadawców o wysokiej szybkości może chwilowo wymagać więcej przepustowości i miejsca w buforze niż port docelowy.

Przetestuj jednego nadawcę przez jeden przełącznik, a następnie porównaj połączenie bezpośrednie lub ścieżkę z równymi prędkościami łączy. Jeśli utrata znika po usunięciu konkurujących nadawców, wolniejszego uplinku lub przełącznika pośredniego, sprawdź odrzucenia wyjścia i zachowanie kolejek zamiast wymieniać dyski NAS.

Testuj EEE i offloady dopiero po zlokalizowaniu usterki

Energy Efficient Ethernet, checksum offload, large-send offload, kontrola przepływu i moderacja przerwań mogą wpływać na konkretne kombinacje kart sieciowych i sterowników, ale wyłączanie wszystkich funkcji naraz niszczy dowody potrzebne do identyfikacji prawdziwej przyczyny.

Udokumentowany problem z Ethernetem na Raspberry Pi wykazał, że wyłączenie Energy Efficient Ethernet zatrzymało poważną utratę pakietów dla tego kontrolera i partnera łącza. To przydatny test A/B tylko wtedy, gdy liczniki lub zamienniki wskazują na punkt końcowy, a nie na kabel lub kolejkę przełącznika.

Zmień jedną funkcję, powtórz ten sam duży zapis i przywróć oryginalne ustawienie, jeśli wynik się nie zmienia. Obchodzenie problemu sterownika powinno być udokumentowane z modelem adaptera, wersją sterownika, portem przełącznika i dokładnym objawem, aby można było przetestować późniejszą aktualizację zamiast pozostawiać niewyjaśnione dostrojenie.

Użyj wzorca wyników, aby wybrać kolejną naprawę

Ostateczna diagnoza powinna wyjaśnić, dlaczego mały ruch pozostaje czysty, a trwałe zapisy zawodzą. Błędy fizyczne wskazują na problem ze ścieżką sygnału; odrzucenia wyjścia przełącznika wskazują na przeciążenie kolejki; odrzucenia odbioru NAS wskazują na przeciążenie odbiornika; a czyste liczniki sieci z zatrzymanym kopiowaniem wskazują na zachowanie magazynu lub aplikacji.

Wyjaśnienie ZimaSpace, jak utrata pakietów zmniejsza użyteczną przepustowość, pomaga zinterpretować, dlaczego negocjowane łącze może pozostać z pełną prędkością, podczas gdy zapis SMB zwalnia, zatrzymuje się lub wielokrotnie retransmituje.

Nie ogłaszaj problemu rozwiązanym, dopóki ten sam duży zapis nie zakończy się wielokrotnie z stabilnym opóźnieniem, zerową liczbą nowych błędów fizycznych, brakiem rosnących odrzuceń odbioru lub wyjścia oraz nienaruszonym sumowaniem kontrolnym docelowego pliku. Jeśli dowody nie pozwalają odróżnić sieci od ścieżki magazynu, przestań zmieniać ustawienia i powtórz test bez operacji I/O na dysku.

Wsparcie i wskazówki

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.