Varför sjunker NAS-genomströmningen när en AI-indexerare skannar miljontals små filer?

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

NAS-genomströmningen minskar vid indexering av små filer eftersom fasta metadata- och öppna-stänga-kostnader dominerar innan lagringen hinner nå effektiva sekventiella överföringshastigheter.

En indexerare som skannar en terabyte i några få stora arkiv kan strömma data, men samma mängd byte fördelad över miljontals dokument kräver miljontals uppslagningar. Varje sökväg kan utlösa kataloggenomsökning, behörighetskontroller, attributläsning, öppningar, små läsningar, stängningar, hashning och indexskrivningar. Arbetsbelastningen blir bunden av operationer per sekund och latens snarare än enbart av bandbredd.

Varje fil lägger till arbete som inte skalar med filens storlek

Innan innehållet läses måste klienten och NAS-enheten lösa en sökväg, läsa metadata, tillämpa behörigheter och öppna ett handtag. Dessa fasta operationer kostar nästan lika mycket för en anteckning på två kilobyte som för en stor video, så mängden användbara byte per begäran minskar när den genomsnittliga filstorleken krymper.

TableFS-arbetet om metadata-dominerade arbetsbelastningar utformades för arbetsbelastningar som domineras av metadata och små filer. Det visar att konventionella lokala filsystem kan bli en flaskhals vid namnrymdsoperationer även när den underliggande lagringen kan överföra data mycket snabbare.

Ett nätverksfilsystem lägger till protokollutbyten samt låsning på serversidan eller cachevalidering. Parallellism kan dölja en del av latensen, men för många arbetare fördjupar köerna, tränger undan användbar metadata och gör att interaktiva NAS-begäranden får vänta bakom massuppräkning.

Stora kataloger och slumpmässig åtkomst bryter den sekventiella effektiviteten

Miljontals poster gör att katalogindex och inode-arbetsmängder överskrider cachekapaciteten. Skanningen hoppar mellan metadatablock och små extents, vilket minskar effektiviteten hos förhandsläsning och tvingar fram hårddisksökningar eller utspridda SSD-begäranden i stället för långa sekventiella överföringar.

Forskning om skalbara filkataloger undersöker kataloger som innehåller miljoner till miljarder små filer och fördelar metadatatillväxten över partitioner. Konstruktionen visar att namnrymdens skalbarhet är ett separat problem från den råa enhetsbandbredden. Denna skillnad märks fortfarande under senare tester i hemmet.

AI-pipeline lägger till ytterligare en slumpmässig dataström när den skriver hashvärden, OCR-text, miniatyrbilder eller poster i vektordatabasen. Läs- och skrivköer konkurrerar, och synkrona databaskommandon kan pausa inmatningen även när diskarna visar outnyttjad maximal sekventiell genomströmning.

Cacheomslag sprider långsamheten till andra NAS-användare

Katalogposter, attribut, fildata, modellsidor och indexbuffertar konkurrerar om RAM. En bred skanning kan ersätta vanliga hushållsfiler i cachen, medan antivirus, miniatyrbildsgenerering eller kontrollsummeberäkning duplicerar läsningar som utlöses av samma nya åtkomsthändelser.

En analys av kostnaderna för små filer förklarar hur stora mängder objekt under 64 KB skapar metadata- och begärandeöverhead som mått på massgenomströmning döljer. Genom att gruppera arbetet förändras förhållandet mellan användbar nyttolast och bearbetning per objekt. Mellanresultatet måste förbli granskningsbart innan automatiseringen följer.

Felgränsen är att anta att antalet filer ensamt avgör prestandan. En varm SSD-cache för metadata, ett kompakt arkiv, en lokal indexdatabas och ett paketerat protokoll kan hantera fler filer än en kall hårddisk över SMB med hög latens. Mät operationer och köbildning med den faktiska layouten.

-15% OFF
Single board computer zimaboard2

Benchmarka filer per sekund separat från megabyte per sekund

Skapa datamängder med samma totala mängd byte men med medianfilstorlekar på 4 KB, 64 KB, 1 MB och 64 MB, samt grunda och djupt nästlade kataloger. Registrera filer per sekund, metadataoperationer, nätverksomgångar, IOPS, kölatens, cachemissar, indexskrivningar och interaktiv NAS-latens.

Använd separering av flaskhalsar som flaskhalsramverk medan du upprepar testet med en, fyra och sexton indexeringsarbetare, och därefter med batchning av innehåll och indexdatabasen på en annan enhet. Håll filuppsättningen och cachens tillstånd uttryckliga.

Välj samtidighet vid den punkt där antalet filer per sekund slutar öka eller där den interaktiva p95-latensen överskrider sin gräns. Om metadata dominerar, minska upprepade statusförfrågningar och paketera arbetet; om innehållsläsningar dominerar, optimera lagringslayouten i stället för att behandla sekventiell bandbredd som den kapacitet som saknas.

Teknik- och AI-hubb

Mer att läsa

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.