Uno scrub RAID aumenta la latenza dell'inferenza locale quando le letture di verifica competono con il caricamento del modello, il recupero, la registrazione o la pressione sulla memoria nei percorsi di archiviazione condivisi.
Un modello già residente nella memoria della GPU può eseguire il decoding normalmente durante uno scrub, mentre la prima richiesta, la ricerca RAG o un'operazione di spill rallentano improvvisamente. Lo scrub scansiona i dati allocati, legge copie ridondanti o la parità, verifica l'integrità e può riparare i danni. Il suo impatto dipende meno dalla parola RAID che dai dischi, dalle code del controller, dai cicli della CPU e dalle pagine della cache di cui l'inferenza ha ancora bisogno.
Lo scrub trasforma la capacità inutilizzata in I/O di verifica
Uno scrub legge sistematicamente i blocchi allocati, convalida checksum o parità e ricostruisce i dati danneggiati quando la ridondanza lo consente. Anche gli array integri eseguono il lavoro di lettura e verifica, quindi l'operazione può mantenere occupato ogni disco membro per ore.
OpenZFS descrive il lavoro di scrub e resilver come una classe I/O di scrub separata, la cui concorrenza viene bilanciata rispetto alle letture e scritture normali. Aumentare l'attività dello scrub completa prima la verifica, ma può aumentare la latenza delle operazioni in primo piano.
Gli array rotazionali risentono dello spostamento delle testine quando le letture dello scrub si alternano a piccole richieste casuali, mentre gli array SSD possono saturare la larghezza di banda del controller o i canali flash interni. Pertanto, lo stesso throughput nominale può produrre latenze di coda molto diverse.
L'inferenza risente dello scrub solo attraverso dipendenze condivise
Il decoding dei token da pesi e cache KV completamente residenti è principalmente un carico di lavoro di calcolo e larghezza di banda della memoria. Lo storage diventa rilevante durante il caricamento del modello, i page fault del memory mapping, il recupero, la registrazione dei prompt, la sostituzione degli adapter, l'offload della cache KV o qualsiasi accesso a checkpoint e indici.
OpenZFS osserva che le operazioni di scrub emettono letture dal disco e che l'ordine di scansione modifica il modo in cui il lavoro raggiunge il pool. Questi controlli di pianificazione della scansione possono espellere pagine utili dalla cache o occupare le code prima che arrivi una lettura del modello o del vettore sensibile alla latenza.
Anche il lavoro della CPU per i checksum e la ricostruzione della parità può competere con la tokenizzazione, il recupero o l'inferenza sulla CPU. Il ritardo osservabile può manifestarsi come latenza al primo token, ritardo nel recupero o blocchi periodici, anziché come una riduzione uniforme dei token al secondo in output.
La limitazione della velocità scambia il tempo di completamento con la latenza di coda
Limitare la concorrenza dello scrub o mettere in pausa la verifica durante le ore interattive lascia più capacità nelle code per l'inferenza, ma prolunga il periodo durante il quale gli errori latenti restano non rilevati. La sola pianificazione è utile soltanto quando la domanda è prevedibile e lo scrub può comunque terminare entro l'obiettivo di manutenzione.
La guida all'ottimizzazione di OpenZFS afferma che aumentare il ritardo dello scrub può ridurre l'effetto dello scrub sui carichi di lavoro dinamici. L'impostazione utile dipende dall'hardware e dal carico di lavoro, perché un mirror, un gruppo RAID-Z, un SSD SATA e un pool NVMe presentano colli di bottiglia diversi.
Il limite operativo è rappresentato da un array degradato o da una riparazione in corso. La ricostruzione dei dati può avere priorità rispetto alla latenza interattiva e una limitazione eccessiva può prolungare la vulnerabilità; la risposta corretta non è nascondere il rischio dello storage dietro un chatbot veloce.
Profilare uno scrub rispetto al percorso critico dell'inferenza
Raccogli p50 e p99 del tempo al primo token, della velocità dei token, della latenza del recupero, dei page fault del modello, della profondità della coda del disco, della latenza di lettura, del throughput, dell'utilizzo della CPU, delle dimensioni di ARC o della page cache e dell'avanzamento dello scrub prima e durante la verifica. Questa distinzione resta osservabile anche nei successivi test domestici.
Usa la contesa dello storage durante gli snapshot per distinguere la contesa degli snapshot da quella dello scrub. Ripeti il test con modelli residenti e a freddo, RAG attivo e disattivato, concorrenza dello scrub normale e limitata e una baseline di solo storage. Il risultato intermedio deve restare ispezionabile prima che l'automazione lo utilizzi.
Scegli un limite che protegga la latenza di coda interattiva consentendo comunque di completare i controlli di integrità secondo la pianificazione. Se il decoding residente nella GPU non risente dello scrub ma il recupero si blocca, isola o assegna priorità al percorso di storage condiviso invece di ottimizzare il modello.
Hub Tecnologico e AI
Altro da leggere

Che cos’è la deriva degli embedding e quando è necessario ricostruire un indice di ricerca privato?
Decodifica il modello, il preprocessing, il corpus e il drift delle query; distingui il monitoraggio dall'incompatibilità e decidi quando è necessario ricostruire un indice...

Che cos'è la compatibilità dei tokenizzatori e perché può compromettere il passaggio da un modello all'altro?
Decodifica l'identità del vocabolario, la semantica dei token speciali, i modelli di chat, i token memorizzati nella cache, gli adattatori e i controlli di...

Che cos'è la permanenza del modello e quando un servizio di IA locale dovrebbe mantenere i pesi caricati?
Comprendi la permanenza dei pesi, i livelli della cache, gli avvii a freddo, l'espulsione, il multiplexing, la pressione sulla memoria e quando un servizio...

