[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Velocità filesystem su pendrive



> Il giorno 04/nov/2015, alle ore 11:19, Mimmo <redtyphoon@alice.it> ha scritto:
> 
>> Poi smonta il volume, copia il primo gigabyte tramite dd sul disco
>> locale e poi riscrivilo, così vedi qual è la velocità di accesso senza
>> file system. (sempre con iostat attivo)
> 
>> A quel punto puoi essere certo di aver rilevato la velocità sia tramite
>> file system, che tramite accesso diretto al device. E puoi cominciare a
>> fare dei ragionamenti su cosa accada. Ad esempio: su linux è lento il
>> file system oppure il device?
> 
>> Ciao,
>> Giuseppe
> 
> Grazie per il consiglio, provero' come mi hai detto e vi faro' sapere, ma se il device e' identito come detto prima a quello che uso su windows ci sara' qualche altra cosa che mi sfugge…

Possono essere tante cose: differenze nella gestione della cache di scrittura (magari linux scrive immediatamente il file, mentre windows lo lascia nella cache di scrittura per farlo dopo), differenze nella gestione del file system, differenze nelle opzioni di mount predefinite, differenze nei driver …

Segui l'ottimo consiglio di Giuseppe: fai degli esperimenti, e dati alla mano vedi cosa succede.

Da parte mia, ti suggerisco di usare pv (vedi http://www.catonmat.net/blog/unix-utilities-pipe-viewer/) per copiare i file e dati da e verso la pendrive: può copiare i dati come cp e dd, e mentre fa la copia dei dati ti mostra statistiche istantanee e finali del tempo richiesto a fare la copia e della velocità di copia.

Per esempio, creiamo 1GB di dati per le nostre prove:
$ dd if=/dev/zero of=/mnt/1GB bs=1G count=1

Proviamo a copiare questi dati direttamente sul disco, bypassando il file system (occhio, che questo comando distrugge qualsiasi file system ci sia sul dispositivo):

# pv 1GB > /dev/disk/by-label/mypendrive

(ovviamente sostituisci /dev/disk/by-label/mypendrive con il percorso del device della tua pendrive)

L’output di pv somiglierà a questo, ottenuto copiando un file da 201MB (==192 MiB) da uno share della mia rete:
192MiB 0:01:19 [2.41MiB/s] [================================>] 100%

Vedrai la quantità di dati copiati, il tempo impiegato a copiarli e la velocità di trasmissione (sì, si può fare MOLTO di meglio, solo che qui il wifi non mi prende bene). In linea di principio questa dovrebbe essere la velocità massima di scrittura (o di lettura) del disco, senza alcun overhead dovuto al file system (sì, può essere anche più veloce di dd).

Poi crea un file system sulla pendrive (per esempio fat, ext4, ntfs), montala e prova di nuovo a copiare il file, questa volta sul file system:
$ pv 1GB > /mnt/pendrive/1GB

La velocità di copia dovrebbe essere minore o uguale a quella di prima. 
Se vuoi cambia file system e prova di nuovo: la velocità di copia è cambiata?

Puoi installare pv anche su windows tramite cygwin: se fai la prova là, che risultati ottieni?

E prova anche a vedere se dopo la copia il sistema ti fa smontare la pendrive all’istante oppure no! Potrebbe essere un indizio che la maggiore velocità di scrittura è dovuta al fatto che il sistema rinvia la scrittura ad un momento successivo. 

buona fortuna,
gerlos





Reply to: