Dlaczego przepustowość NAS spada, gdy indeksator AI skanuje miliony małych plików?

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.

Przepustowość serwera NAS spada podczas indeksowania małych plików, ponieważ stałe koszty metadanych oraz otwierania i zamykania plików dominują, zanim pamięć masowa osiągnie wydajne sekwencyjne szybkości transferu.

Indeksator skanujący jeden terabajt w kilku dużych archiwach może przesyłać dane strumieniowo, ale te same bajty rozproszone wśród milionów dokumentów wymagają milionów wyszukiwań. Każda ścieżka może powodować przechodzenie przez katalogi, sprawdzanie uprawnień, odczyt atrybutów, otwieranie plików, drobne odczyty, zamykanie plików, obliczanie skrótów i zapisywanie indeksu. Obciążenie staje się zależne od liczby operacji na sekundę i opóźnień, a nie wyłącznie od przepustowości.

Każdy plik dodaje pracę, która nie skaluje się wraz z jego rozmiarem

Przed odczytaniem zawartości klient i serwer NAS ustalają ścieżkę, sprawdzają metadane, egzekwują uprawnienia i otwierają uchwyt. Te stałe operacje kosztują niemal tyle samo w przypadku dwukilobajtowej notatki co dużego filmu, dlatego liczba użytecznych bajtów na żądanie maleje wraz ze spadkiem średniego rozmiaru pliku.

Praca TableFS nad obciążeniami zdominowanymi przez metadane została zaprojektowana z myślą o obciążeniach zdominowanych przez metadane i małe pliki, pokazując, że konwencjonalne lokalne systemy plików mogą stanowić wąskie gardło w operacjach na przestrzeni nazw, nawet gdy podstawowa pamięć masowa może przesyłać dane znacznie szybciej.

Sieciowy system plików dodaje wymianę komunikatów protokołu oraz blokowanie po stronie serwera lub sprawdzanie poprawności pamięci podręcznej. Równoległość może ukryć część opóźnień, ale zbyt wielu pracowników pogłębia kolejki, usuwa przydatne metadane z pamięci podręcznej i sprawia, że interaktywne żądania NAS czekają za masowym wyliczaniem zawartości.

Duże katalogi i losowy dostęp niszczą wydajność sekwencyjną

Miliony wpisów powiększają indeksy katalogów i zbiory robocze i-węzłów poza rozmiar pamięci podręcznej. Skanowanie przeskakuje między blokami metadanych i małymi obszarami danych, ograniczając skuteczność odczytu z wyprzedzeniem i wymuszając wyszukiwanie na dyskach HDD lub rozproszone żądania do dysków SSD zamiast długich transferów sekwencyjnych.

Badania nad skalowalnymi katalogami plików analizują katalogi zawierające od milionów do miliardów małych plików i rozdzielają przyrost metadanych między partycje. Ich projekt pokazuje, że skalowalność przestrzeni nazw to odrębny problem od surowej przepustowości urządzenia. To rozróżnienie pozostaje widoczne podczas późniejszych testów domowych.

Potok AI dodaje kolejny losowy strumień, gdy zapisuje skróty, tekst OCR, miniatury lub rekordy bazy danych wektorowych. Kolejki odczytu i zapisu konkurują ze sobą, a synchroniczne zatwierdzanie transakcji w bazie danych może wstrzymać pobieranie danych, nawet gdy dyski wykazują niewykorzystaną szczytową przepustowość sekwencyjną.

Rotacja pamięci podręcznej przenosi spowolnienie na innych użytkowników NAS

Wpisy katalogów, atrybuty, dane plików, strony modeli i bufory indeksu konkurują o pamięć RAM. Szerokie skanowanie może zastąpić często używane pliki domowe w pamięci podręcznej, podczas gdy program antywirusowy, generowanie miniaturek lub obliczanie sum kontrolnych powiela odczyty wywołane przez te same nowe zdarzenia dostępu.

Analiza narzutu związanego z małymi plikami wyjaśnia, jak duże zbiory obiektów mniejszych niż 64 KB generują narzut metadanych i żądań, który pozostaje niewidoczny w pomiarach przepustowości masowej. Grupowanie pracy zmienia proporcję między użytecznym ładunkiem a przetwarzaniem każdego obiektu. Wynik pośredni musi pozostać możliwy do skontrolowania, zanim zostanie zastosowana automatyzacja.

Błędem jest założenie, że sama liczba plików określa wydajność. Ciepła pamięć podręczna metadanych na dysku SSD, spakowane archiwum, lokalna baza danych indeksu i grupowanie komunikatów protokołu mogą obsłużyć więcej plików niż zimny dysk HDD przez SMB o dużym opóźnieniu. Mierz liczbę operacji i kolejkowanie w rzeczywistym układzie danych.

-15% OFF

Testuj liczbę plików na sekundę niezależnie od liczby megabajtów na sekundę

Utwórz zbiory danych o identycznym łącznym rozmiarze, ale z medianą rozmiaru plików wynoszącą 4 KB, 64 KB, 1 MB i 64 MB, a także z płytkimi i głęboko zagnieżdżonymi katalogami. Rejestruj liczbę plików na sekundę, operacje na metadanych, podróże w obie strony sieci, IOPS, opóźnienie kolejki, chybienia pamięci podręcznej, zapisy indeksu i interaktywne opóźnienie NAS.

Użyj oddzielania wąskich gardeł jako metody analizy wąskiego gardła, powtarzając testy dla jednego, czterech i szesnastu pracowników indeksatora, a następnie z grupowaniem zawartości i bazą danych indeksu na innym urządzeniu. Wyraźnie określ zestaw plików i stan pamięci podręcznej.

Dobierz współbieżność w punkcie, w którym liczba plików na sekundę przestaje rosnąć lub interaktywne opóźnienie p95 przekracza ustalony limit. Jeśli dominują metadane, ogranicz powtarzające się operacje stat i grupuj pracę; jeśli dominują odczyty zawartości, zoptymalizuj układ pamięci masowej zamiast uznawać sekwencyjną przepustowość za brakującą wydajność.

Centrum Technologii i Sztucznej Inteligencji

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.