Perché un SSD NVMe rallenta durante i backup di file piccoli, ma non durante una singola copia locale di grandi dimensioni?

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Un SSD NVMe può rallentare durante i backup di file di piccole dimensioni perché i metadati, le scritture casuali, le barriere di sincronizzazione e il carico della CPU creano un collo di bottiglia diverso rispetto alla copia di un singolo file di grandi dimensioni.

La parola “throttling” viene spesso usata per indicare qualsiasi calo di velocità, ma il throttling termico è solo una delle possibilità. I backup di file di piccole dimensioni creano ripetutamente voci nelle directory, aggiornano date, ore e permessi, aprono e chiudono file, calcolano checksum, comprimono o crittografano i dati e registrano i metadati. L’NVMe può mostrare un valore MB/s inferiore mentre elabora più operazioni al secondo e presenta una latenza maggiore. Confronta carichi di lavoro locali della stessa dimensione prima di modificare il raffreddamento o sostituire l’unità.

Dimostra la differenza con test locali della stessa dimensione

Crea un file di grandi dimensioni e una struttura di directory composta da file piccoli con lo stesso payload totale. Copiali localmente sulla stessa destinazione NVMe, registrando il tempo trascorso, gli IOPS, la latenza, l’utilizzo della CPU e la temperatura.

Fio definisce modalità di I/O sequenziale e casuale separate, consentendo al test di isolare la forma del carico di lavoro invece di confrontare esecuzioni di backup non omogenee.

Se la copia locale del file grande rimane veloce mentre la creazione dei file piccoli rallenta, probabilmente il collegamento PCIe e il percorso NAND sequenziale sono disponibili. Prosegui analizzando metadati, latenza della coda, cache, CPU e temperatura.

Misura le operazioni sui metadati invece dei soli MB/s

Monitora file al secondo, creazioni, chiusure, rinominazioni, aggiornamenti delle directory, scritture ACL, attributi estesi e operazioni di sincronizzazione. Confrontali con il throughput del payload.

Red Hat descrive lo storage con file piccoli come intensivo in termini di metadati, spiegando perché migliaia di file piccoli possono produrre MB/s ridotti senza raggiungere il limite di larghezza di banda sequenziale dell’NVMe.

Un backup può quindi essere impegnato e funzionare correttamente pur mostrando una velocità in byte deludente. Valutalo in base ai file completati, alla latenza e ai requisiti di ripristino, oltre che al throughput.

Verifica se la pulizia della cache aumenta la latenza di scrittura

Registra lo spazio libero, i byte scritti, la latenza sostenuta e l’eventuale ripristino delle prestazioni dopo un periodo di inattività. Confronta un’area di test appena sottoposta a TRIM con la normale destinazione del backup solo quando è sicuro farlo.

Crucial spiega che la raccolta dei rifiuti attiva può influire sulla velocità dell’SSD, soprattutto quando il dispositivo ha poco tempo di inattività o poco spazio riutilizzabile.

Le scritture casuali di piccole dimensioni possono richiedere più spostamenti interni rispetto a un singolo flusso sequenziale. Mantieni un margine di spazio libero ed evita di presumere che la velocità sequenziale dichiarata si applichi alle scritture di piccole dimensioni in condizioni operative stabili.

-15% OFF

Controlla la latenza della coda e la saturazione del dispositivo

Acquisisci la latenza media delle richieste, la profondità della coda, l’utilizzo, le velocità di lettura e scrittura e l’attesa I/O della CPU durante entrambi i test. Cerca una latenza elevata associata a valori MB/s moderati.

Il report di iostat aiuta a mostrare quando il dispositivo è saturo a causa di molte richieste di piccole dimensioni, anche se il throughput aggregato rimane molto al di sotto delle specifiche sequenziali.

Aumentare la concorrenza del backup può migliorare le prestazioni di un dispositivo poco utilizzato, ma peggiorare una coda già satura. Modifica una sola impostazione relativa ai worker o alla coda alla volta.

Separa i record del filesystem dal payload dei file

Individua i filesystem di origine e destinazione e i metadati che ogni backup conserva. Su NTFS, registra la crescita della MFT e verifica se vengono copiati descrittori di sicurezza, flussi alternativi e timestamp.

Microsoft afferma che la MFT contiene almeno un record per ogni file, illustrando perché molti file piccoli generano un lavoro sui record del filesystem molto maggiore rispetto a un singolo file della stessa dimensione complessiva.

Se il backup conserva ACL, xattr, intervalli sparsi o checksum, includi questo lavoro nel confronto. Disattivare le funzioni di integrità solo per migliorare un benchmark può indebolire il backup.

Verifica il reale throttling termico invece di dedurlo

Registra la temperatura composita dell’NVMe, il tempo degli avvisi termici, il tempo di attività del controller e le prestazioni prima e dopo il miglioramento del raffreddamento. Ripeti il test con un flusso d’aria stabile e lo stesso insieme di file piccoli.

Kingston spiega che il throttling termico riduce le prestazioni finché l’SSD non torna a una temperatura sicura.

Se il throughput diminuisce senza raggiungere una soglia di temperatura e senza un avviso termico, definiscilo un collo di bottiglia del carico di lavoro anziché throttling termico. Il raffreddamento non risolverà la serializzazione dei metadati né l’hashing limitato dalla CPU.

Ottimizza il livello del backup che raggiunge effettivamente la saturazione

Prova una modifica moderata, come ridurre il numero di worker per i checksum, aggiungere un solo worker per la copia, raggruppare i metadati, usare un manifest locale o escludere le cache rigenerabili. Conserva i metadati essenziali per il ripristino.

L’articolo di ZimaSpace sui test delle copie SMB con file piccoli tratta le copie di rete; questo articolo isola l’NVMe locale e la pipeline del backup quando la copia locale del file grande rimane veloce.

La diagnosi è completa quando il rallentamento viene ricondotto al tasso dei metadati, alla latenza delle scritture casuali, alla pulizia della cache, al carico della CPU o a un throttling termico verificato, e una modifica mirata migliora lo stesso test controllato con file piccoli.

Supporto e consigli

Altro da leggere

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.