ZFS ARC minskar vid användning av pinnat värdminne eftersom AI-överföringsbuffertar som inte kan återvinnas ökar trycket på det minne som kärnan kan återvinna, inklusive filsystemets cache.
GPU-körmiljöer mappar värdsidor i minnet så att enheter kan överföra data utan att sidorna flyttas eller växlas ut mitt under operationen. Det förbättrar förutsägbarheten vid DMA, men pinnade allokeringar är svåra att återvinna när mängden tillgängligt RAM minskar. Linux aktiverar återvinning och shrinkers, och ZFS svarar genom att avlägsna cachade block eller sänka sitt ARC-mål, så att mer minne blir tillgängligt för allokeringar som inte kan ge efter.
Pinnade sidor ändrar vilket minne kärnan kan återvinna
Vanliga anonyma sidor kan växlas ut, och rena filsidor i cachen kan kasseras. Långvarigt pinnade sidor förblir residenta eftersom en enhet eller drivrutin är beroende av deras fysiska mappning, vilket minskar den flexibla pool som är tillgänglig för att uppfylla nya allokeringar.
Linux-dokumentationen för långvarig sidpinnning skiljer långvarig sidpinnning från vanliga referenser och förklarar varför DMA-användare måste markera sidor på rätt sätt. Mekanismen gör pinnat minne kvalitativt annorlunda än en processallokering som kärnan enkelt kan flytta eller återvinna.
AI-ramverk använder pinnade stagingbuffertar för snabbare kopiering från värd till enhet, dataladdningsköer och avlastning. Flera arbetare eller överdimensionerade förhämtningsköer kan hålla betydligt mer värdminne pinnat än vad en synlig batch antyder. Denna skillnad förblir synlig under senare tester i hemmet.
ARC är avsiktligt en stor återvinningsbar minneskonsument
Adaptive Replacement Cache behåller nyligen och ofta använda ZFS-block för att undvika läsningar från lagringen. I Linux deltar den i hanteringen av minnestryck och kan minska sin residenta storlek när systemet behöver sidor på annat håll. Mellanresultatet måste förbli granskningsbart innan automatisering följer.
OpenZFS-dokumentationen om ARC-storlek och återvinning beskriver kontroller för ARC-storlek och återvinningsrelaterade justerbara parametrar. En konfigurerad maxstorlek är ett tak, inte ett löfte om att cachad data förblir resident under tryck. Den gränsen bör mätas separat under realistiska driftsförhållanden.
När pinnade buffertar växer kan ARC-avlägsning vara rätt respons snarare än en läcka. Konsekvensen visar sig senare som lägre cacheträffsfrekvens, fler diskläsningar och långsammare filåtkomst efter att AI-jobbet avslutats, tills cachen har värmts upp igen.
Enhetligt minne och containermätvärden kan dölja konkurrensen
På en integrerad GPU använder modelltensorer och filsystemets cache samma fysiska RAM, även när instrumentpaneler märker användningen på olika sätt. På en separat GPU förblir staging på värdsidan åtskild från VRAM, men konkurrerar fortfarande med ARC på servern.
OpenZFS-implementeringen av ARC:s shrinker-implementering registrerar ARC:s återvinningsbeteende hos kärnans minneshantering. Bevis på källkodsnivå hjälper till att skilja avsiktlig cacheminskning från att en applikation direkt beordrar ZFS att kassera block. Den praktiska konsekvensen visar sig när flera källor konkurrerar om begränsat kontextminne.
Felgränsen är att anta att pinnat minne är orsaken varje gång ARC minskar. En stor filgenomsökning, uttryckliga ARC-gränser, metadatapress, cgroup-återvinning, tillväxt i virtuella maskiner eller normalt adaptivt beteende kan ge samma diagram. Bekräfta antalet pinnade sidor och tidpunkten för allokeringarna.
Korreliera pinnade byte med ARC-återvinning och cachemissar
Kör en fast AI-arbetsbelastning samtidigt som du registrerar pinnat eller icke återvinningsbart minne, MemAvailable, återvinningsstopp, ARC-storlek och mål, ARC-träffsfrekvens, ZFS-läsningar, storlek på poolen med pinnade buffertar, antal arbetare, batchstorlek, VRAM och fördröjning för begäranden. Inkludera en lagringsbaslinje utan AI.
Använd delat värdminne för att skilja åt CPU-, minnes- och lagringssymptom. Upprepa med överföringar som kan växlas ut, mindre förhämtningsdjup, färre arbetare och en begränsad pool med pinnat minne, och ändra endast en kontroll per körning. Detta beroende bör förbli tydligt i det slutliga gränssnittet.
Bedöm pinnning som orsakssamband när ARC-kontraktionen följer tillväxten av pinnat minne och avtar med en mindre pool. Begränsa poolen om lagringsmissar skadar andra tjänster, men behåll tillräckligt med pinnat minne för att undvika att acceleratorn svälter; den rätta balansen beror på den samtidiga NAS-belastningen.
Teknik- och AI-hubb
Mer att läsa

Varför når SMB-filändringar en inkrementell indexerare i omgångar?
Se hur SMB-skrivcachelagring, leases, CHANGE_NOTIFY, buffertspill, återanslutning och indexerarbatchning omvandlar kontinuerliga redigeringar till pulserande inmatningshändelser.

Varför missar OCR svag text efter att en PDF har komprimerats om?
Lär dig hur PDF-omkomprimering förändrar svaga pixlar, varför visningsprogram kan dölja kvalitetsförlusten och hur du testar upplösning, kontrast, codec och förbehandling för OCR.

Varför varierar lokal AI-fördröjning med en hemservers fläktkurva?
Se hur värme, fläktstyrning, klockbegränsningar, sensorfördröjning och arbetsbelastningens tidsförlopp skapar periodisk latens för lokal AI - och hur du bevisar sambandet.

