Prędkość kopiowania SMB spada przy tysiącach małych plików: co powinieneś przetestować najpierw?

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.

Sprawdź, czy to liczba plików, a nie prędkość łącza, jest przyczyną problemu, zanim zmienisz ustawienia SMB lub sieci.

Na domowym NAS tysiące małych plików zmuszają klienta i serwer do wielokrotnego wykonywania wyszukiwania ścieżki, sprawdzania uprawnień, otwierania, tworzenia, aktualizacji metadanych, zamykania oraz skanowania po stronie aplikacji dla każdego obiektu. Łącze gigabitowe lub 2,5GbE może pozostawać w dużej mierze bezczynne, podczas gdy kopiowanie nadal się wlecze, więc użytecznym pierwszym krokiem jest test A/B, który utrzymuje podobną łączną liczbę bajtów, ale zmienia liczbę obiektów, a następnie testy pamięci masowej, klienta i narzędzi kopiujących w ustalonej kolejności.

Porównaj Jeden Duży Plik z Tą Samą Liczbą Bajtów w Małych Plikach

Utwórz dwa zestawy testowe na tym samym źródłowym nośniku: jeden duży plik oraz jeden folder zawierający tysiące małych plików o łącznym rozmiarze zbliżonym do dużego pliku. Skopiuj oba na ten sam udział NAS, używając tego samego klienta, ścieżki SMB i tego samego okna czasowego.

Raport użytkownika TrueNAS pokazuje charakterystyczny wzorzec spowolnienia SMB przy małych plikach, podczas gdy duże pliki utrzymywały prawie normalną prędkość sieci. Ten kontrast jest bardziej użyteczny niż pojedyncza wartość prędkości, ponieważ dowodzi, że kształt obciążenia zmienia wąskie gardło.

Zanotuj czas trwania, łączną liczbę plików, łączną liczbę bajtów, liczbę plików na sekundę, średnią prędkość MB/s oraz czy spowolnienie zaczyna się natychmiast, czy dopiero po zapełnieniu pamięci podręcznej. Jeśli oba zestawy są wolne, najpierw zbadaj ogólną ścieżkę sieciową lub pamięci masowej; jeśli tylko zestaw małych plików zawodzi, kontynuuj testy skupione na metadanych.

Oddziel Pojemność Sieci od Pracy na Pojedynczym Pliku

Wykonaj test sieci pamięć-do-pamięci między tym samym klientem a NAS, a następnie porównaj go z wynikiem kopiowania dużego pliku przez SMB. Czysty test sieci i szybkie kopiowanie dużego pliku pokazują, że łącze może przenosić dane, nawet jeśli obciążenie małymi plikami nie jest w stanie go wypełnić.

Małe pliki zamieniają kopiowanie w powtarzającą się pracę typu żądanie-odpowiedź. Eclectic Light udokumentował, jak kopie zapasowe SMB obciążone metadanymi mogą trwać nieoczekiwanie długo, nawet gdy przesyłanych jest niewiele danych.

Nie reaguj na ten wynik przez zmianę MTU, dupleksu lub agregacji łącza na początku. Zamiast tego śledź liczbę plików na sekundę i obciążoną latencję; kolejne ważne pytanie to, czy powtarzana praca czeka na źródło, miejsce docelowe NAS, czy inspekcję po stronie klienta.

Testuj Opóźnienia Metadanych Źródła i Miejsca Docelowego Osobno

Skopiuj zestaw małych plików ze źródła do innego lokalnego folderu na kliencie, a następnie utwórz lub rozpakuj ten sam zestaw lokalnie na NAS. Te dwa testy izolują odczyty źródłowe i tworzenie na NAS bez udziału SMB pomiędzy nimi.

Bezpośrednia dyskusja na forum Unraid zmierzyła wolne operacje na plikach, które nie były widoczne podczas transferów dużych plików. Ważnym sygnałem jest, czy lokalne tworzenie na miejscu docelowym jest już wolne, zanim zaangażowana zostanie sieć.

Jeśli lokalna kopia klienta jest wolna, sprawdź dysk źródłowy, system plików, szyfrowanie i układ plików. Jeśli lokalne tworzenie na NAS jest wolne, sprawdź pulę docelową, warstwę pamięci podręcznej, ścieżkę parzystości, fragmentację wolnego miejsca, urządzenie metadanych oraz zachowanie zapisu synchronicznego przed dostrajaniem SMB.

-15% OFF

Zmierz Skanowanie Bezpieczeństwa i Indeksowanie na Obu Końcach

Antywirus, ochrona punktu końcowego, generowanie miniatur, indeksowanie treści, obserwatory synchronizacji i skanery multimediów mogą sprawdzać każdy nowy plik. Ich stały koszt na obiekt może dominować w obciążeniu, które szybko tworzy tysiące elementów.

Wykonaj jeden kontrolowany test, tymczasowo wyłączając skanowanie i indeksowanie w czasie rzeczywistym tylko dla dedykowanego folderu testowego, a następnie natychmiast przywróć ochronę. Celem nie jest pozostawienie zabezpieczeń wyłączonych, lecz ustalenie, czy spowolnienie jest związane z inspekcją każdego pliku.

Jeśli liczba plików na sekundę gwałtownie wzrośnie, utwórz bezpieczne, długoterminowe wykluczenie tylko dla zaufanego etapu tworzenia kopii zapasowej lub generowanych danych pamięci podręcznej albo zaplanuj skanowanie po transferze. Jeśli wynik się nie zmieni, przywróć oryginalne ustawienia i przejdź do analizy zachowania narzędzia kopiującego zamiast gromadzenia niewyjaśnionych wyjątków.

Porównaj Narzędzia Kopiujące i Współbieżność Bez Zmiany Zbioru Danych

File Explorer, Finder, Robocopy, rsync, klienci kopii zapasowych i narzędzia archiwizujące mogą używać różnych głębokości kolejki, wywołań metadanych, zasad ponawiania i równoległości. Porównaj dwa narzędzia na tym samym drzewie źródłowym i miejscu docelowym, zamiast porównywać niepowiązane obciążenia.

Dyskusja Resilio o skanowaniu dużej liczby plików ilustruje, dlaczego zadanie może pozostać ograniczone metadanymi, nawet gdy niewiele treści się zmienia. Więcej wątków może ukryć część latencji, ale może też przeciążyć NAS równoczesnym tworzeniem plików.

Zwiększaj współbieżność krok po kroku i zatrzymaj się, gdy liczba plików na sekundę przestanie rosnąć, latencja gwałtownie wzrośnie lub NAS zacznie kolejkować zapisy. Zachowaj ustawienie, które konsekwentnie poprawia rzeczywiste obciążenie, a nie najwyższą wartość dopuszczoną przez narzędzie.

Użyj Wzorca Wyników, aby Wybrać Najmniejszą Naprawę

Diagnoza powinna wskazać jeden dominujący etap: pojemność sieci, odczyty źródłowe, tworzenie na NAS, skanowanie punktów końcowych, zachowanie żądań SMB lub narzędzie kopiujące. Nie łącz wszystkich możliwych dostroiń w jednym eksperymencie, ponieważ ostateczna zmiana prędkości nie wyjaśni już przyczyny.

Wyjaśnienie ZimaSpace, jak liczba plików zwiększa pracę NAS, dostarcza podstawowego powodu, dla którego liczba plików na sekundę może mieć większe znaczenie niż MB/s dla tego obciążenia.

Zaakceptuj naprawę tylko wtedy, gdy ten sam zestaw małych plików poprawia się w kolejnych powtórzeniach bez szkody dla prędkości dużych plików, uprawnień, zachowania przywracania lub responsywności NAS. Gdy indywidualne odzyskiwanie nie jest konieczne, pakowanie niezmiennych malutkich plików do archiwum może zmniejszyć narzut obiektów, ale jest to decyzja dotycząca przepływu pracy, a nie uniwersalna naprawa SMB.

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.