GetUSB.info Logo

Posts Taggati ‘prestazioni USB’

Perché l’hardware di duplicazione si comporta diversamente da un copia e incolla dei file

Operatori di magazzino che illustrano la differenza tra l’overhead della copia file e la duplicazione binaria, spostando migliaia di graffette una alla volta oppure trasportando una sola scatola organizzata

Capire perché copiare migliaia di piccoli file può sembrare più lento che spostare un unico grande file video

La maggior parte delle persone pensa che copiare dati sia un processo piuttosto semplice. Trascini i file da una finestra all’altra, guardi la barra di avanzamento che si muove lentamente sullo schermo e, alla fine, i file compaiono sul dispositivo di destinazione. Vista da fuori, l’hardware di duplicazione sembra fare esattamente la stessa cosa — solo più velocemente e con più porte USB.

Ma internamente, i due metodi si comportano in modo molto diverso.

Questa differenza diventa particolarmente evidente quando si lavora con strutture di cartelle complicate, distribuzioni software, archivi tecnici, cataloghi fotografici, backup di siti web o qualsiasi cosa contenga migliaia e migliaia di piccoli file.

Questo è anche il motivo per cui molte persone restano confuse davanti alle prestazioni reali dello storage. Una chiavetta USB può essere pubblicizzata con velocità di 200MB al secondo. Copi un grande file video da 20GB e il trasferimento sembra incredibilmente veloce. Poi, più tardi, sposti un progetto software da 2GB con 80.000 piccoli file e all’improvviso il computer sembra dolorosamente lento.

Stessa chiavetta USB. Stessa porta USB. Meno dati totali.

Allora cosa è cambiato?

La risposta è l’overhead.

Una copia file è in realtà una lunga conversazione

Quando la maggior parte delle persone pensa alla copia dei file, immagina che il computer stia semplicemente spostando dati da un punto a un altro. In realtà, una copia tramite trascinamento richiede una grande quantità di comunicazione tra il sistema operativo e il dispositivo di archiviazione.

Il sistema operativo deve esaminare ogni file singolarmente. Controlla i nomi dei file, crea cartelle, scrive timestamp, aggiorna le tabelle di allocazione, elabora i metadati, verifica lo spazio disponibile, apre sessioni di scrittura, chiude sessioni di scrittura e conferma che ogni transazione sia stata completata correttamente.

Per un unico file grande, questo overhead è relativamente piccolo.

Per 100.000 piccoli file, l’overhead diventa enorme.

A un certo punto, il sistema passa più tempo a gestire il processo di copia che a spostare dati realmente utili.

Questa è la parte che la maggior parte degli utenti non vede mai.

Il problema delle graffette

Il modo più semplice per visualizzarlo è pensare alle graffette.

Immagina di dover spostare 50 libbre di materiale da una stanza a un’altra.

Una possibilità è trasportare una scatola sigillata piena di graffette.

L’altra possibilità è spostare ogni singola graffetta a mano, una alla volta.

Tecnicamente, il peso totale è identico.

Ma uno dei due metodi è assurdamente inefficiente perché il lavoro di gestione domina completamente il carico.

I file piccoli creano lo stesso problema all’interno di un sistema di archiviazione. Ogni file minuscolo diventa una piccola transazione a sé. Il sistema operativo si ferma continuamente per organizzare, catalogare, validare e gestire ogni singolo pezzo, invece di mantenere un lungo flusso dati continuo e ininterrotto.

Ecco perché un singolo file video da 20GB può, a volte, trasferirsi più velocemente di una cartella da 2GB contenente migliaia di piccole immagini, script, icone, file cache, installer, elementi HTML e documenti di configurazione.

Il problema non è sempre la quantità di dati.

Il problema è la quantità di gestione.

Perché la duplicazione binaria si comporta diversamente

La duplicazione binaria guarda il processo da una prospettiva completamente diversa.

Invece di concentrarsi su file e cartelle, un processo di duplicazione binaria spesso si concentra sulla struttura grezza del dispositivo di archiviazione stesso. Invece di chiedere: “Quali file esistono dentro questa cartella?”, il sistema chiede: “Quali dati esistono in questi settori?”

Sembra una distinzione sottile, ma cambia radicalmente il flusso di lavoro.

Una copia file tradizionale trasferisce solo file e cartelle visibili attraverso il sistema operativo. Normalmente non copia informazioni di basso livello dello storage, come settori di avvio, tabelle delle partizioni, strutture nascoste del file system o informazioni sul layout del dispositivo.

Questo è il motivo per cui trascinare semplicemente dei file su una chiavetta USB di solito non crea un vero clone avviabile di un altro dispositivo. I file possono anche essere presenti, ma il codice di avvio e la struttura sottostante dello storage spesso mancano.

Una copia binaria o una distribuzione IMG si comporta diversamente perché riproduce la struttura dello storage stesso. A seconda del metodo di duplicazione, il processo può copiare tabelle delle partizioni, settori di avvio, strutture del file system, aree nascoste e il layout esatto del supporto originale.

Invece di ricostruire l’ambiente file per file, il processo di duplicazione riproduce il dispositivo in modo molto più diretto.

Questo riduce drasticamente la quantità di lavoro amministrativo che il sistema operativo deve svolgere durante il trasferimento.

Perché i file IMG e le copie dispositivo spesso sembrano più veloci

Questo è uno dei motivi per cui le distribuzioni IMG e le copie a livello dispositivo spesso sembrano sorprendentemente veloci e coerenti.

Il sistema non si ferma continuamente per negoziare migliaia di piccole operazioni del file system. Invece, sposta grandi blocchi organizzati di dati binari in un processo più sequenziale.

Le operazioni sequenziali sono di solito molto più efficienti per i dispositivi di archiviazione rispetto a un’attività di scrittura casuale e molto frammentata.

Questo diventa particolarmente evidente con distribuzioni software, ambienti avviabili, deployment Linux, sistemi embedded, piattaforme kiosk e flussi di produzione in cui, sotto la superficie, esistono enormi quantità di piccoli file di supporto.

Una normale copia tramite trascinamento costringe il sistema operativo a elaborare ciascuno di quei pezzi singolarmente. Un processo di duplicazione binaria evita gran parte di questo overhead.

Il risultato appare più fluido, più prevedibile e spesso decisamente più veloce.

Abbiamo trattato un comportamento USB simile, a basso livello, nel nostro articolo su come funziona la protezione dalla copia USB, dove le operazioni a livello di controller si comportano in modo molto diverso rispetto ai normali flussi di lavoro basati sui file.

Perché le velocità dichiarate delle USB possono sembrare fuorvianti

Ai consumatori viene spesso insegnato a pensare alla velocità dello storage come a un unico numero semplice.

Ma le prestazioni reali dipendono molto dal tipo di carico di lavoro.

I file sequenziali grandi sono facili da gestire per i sistemi di archiviazione, perché il dispositivo può mantenere un lungo processo di scrittura ininterrotto. I piccoli file frammentati, invece, creano una continua attività di stop-and-go.

L’unità non sta più correndo su un’autostrada vuota.

Sta attraversando il traffico cittadino con uno stop ogni venti metri.

Questa differenza è enorme.

Spiega anche perché l’hardware di duplicazione e i sistemi di imaging spesso si comportano diversamente da una normale copia desktop. Il metodo sottostante per spostare i dati non è la stessa cosa.

Questo diventa ancora più importante nei flussi di produzione che coinvolgono supporti USB avviabili, dove le strutture di basso livello dello storage contano tanto quanto i file visibili.

Il quadro generale

Nessuno dei due metodi è automaticamente “migliore”, perché i due approcci risolvono problemi diversi.

Una copia file tradizionale è flessibile. Puoi aggiornare singoli file, sostituire cartelle in modo selettivo e lavorare naturalmente all’interno del sistema operativo.

La duplicazione binaria è più orientata alla riproduzione esatta e all’efficienza del flusso di lavoro. È particolarmente efficace quando la coerenza è importante e quando grandi quantità di dati strutturati devono essere replicate in modo affidabile su molti dispositivi.

La maggior parte delle persone non pensa mai a questa distinzione, perché i sistemi operativi moderni nascondono tutta la complessità dietro una semplice barra di avanzamento.

Ma sotto quella piccola barra verde c’è un’enorme differenza nel modo in cui il sistema di archiviazione sta realmente lavorando.

E una volta compreso l’overhead, diventa improvvisamente del tutto logico che spostare un unico grande file video possa sembrare facilissimo, mentre copiare una piccola directory software piena di migliaia di file possa mettere in ginocchio anche un computer costoso.

Leggi Tutto