Newsgroup: it.comp.hardware.storage
Titolo: Scrittura asincrona su chiavette USB2.0

Sto facendo alcune prove di scrittura asincrona sotto Win7 cos� come 
definito qui:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365683%28v=vs.85%29.aspx
 
 
Tentando di scrivere in modo asincrono su due chiavette USB2.0, il 
programma s'inchioda in modo atroce e la stessa cosa succede se uso il 
test "4K QD32" di CrystalDiskMark 3.0.3 x64.
Nessun problema, invece, in lettura e nessun problema n� in lettura n� 
in scrittura su chiavetta USB3.0, SSD e HD.
 
Considerando che AS SSD sembra scrivere correttamente (test "4K-64Thrd") 
anche se lentissimamente, forse il problema di cui parlo dipende proprio 
dall'esasperante lentezza delle chiavette con questo particolare tipo di 
scrittura.
 
Siccome nel WEB non ho trovato niente al riguardo, volevo chiedere se 
qualcuno � a conoscenza di qualche limitazione hardware delle chiavette 
USB2.0, come, ad esempio, controller che gestisce a fatica qualche 
decina di scritture in parallelo.
 
Grazie
Cristiano

"Cristiano" <cris...@NSgmail.com> ha scritto nel messaggio
news:lv414h$pa4$
1...@dont-email.me
 

il problema che hai riscontrato puo' dipendere
sia dal controller host USB (e/o relativi driver)
che dal controller del dispositivo
(soprattutto se "vecchiotto")
 
quindi andrebbe verificata l'accoppiata host/device
e fare prove incrociate con altri host e device
 
non mi sembra di aver avuto problemi in passato
con CDM e le "vecchie" pendrive neanche con i controller
dell'epoca (5-10 anni fa), ma non ricordo se il sw
aveva gia' il test multithread (aggiunto in seguito),
non escludo neanche un bug delle nuove versioni di CDM
 
mentre confermo che non ci sono problemi
con i nuovi controller e "vecchi" dispositivi
 
ad esempio pendrive OCZ Rally2 2GB
su Asus Z97-A , sia su porta USB2.0 che USB3.0 ,
ovviamente con prestazioni ridicole in scrittura random 4k,
sia con 1 thread che 32 thread: circa 80 kB/s
(si', kappa e non mega, aheh)
 
una piu' recente SanDisk Cruzer Fit 16GB USB2.0
arriva a stento ad 1MB/s in scrittura random 4k
 
 
lato programmazione, se puo' interessarti per
avere un quadro completo, cerca informazioni anche
sul funzionamento dello stack USB di Windows,
e sulle modalita' BOT (USB2.0) ed xHCI/UASP (USB 3.0)
 
secondo me, considerando la natura delle pendrive USB
(sia hardware che di utilizzo tipico), non serve avere
prestazioni elevate in scrittura random 4k , ne' tantomeno
con richieste simultanee, per tali scopi ci sono gli SSD USB
con prestazioni in linea con i costi, sempre con opportuni
host controller e driver
 
 
ciao
luca
 
 
 

 Cristiano <cris...@NSgmail.com> ha scritto:

Che tipo di chiavette usi in particolare? In ambito delle
 scritture random infatti solo quelle di fascia medio/alta con
 controller parallelo a piu' canali offrono prestazioni dignitose
 in tal senso...e generalmente questi prodotti usano l'interfaccia
 USB 3.0.
 
 
-- 
 
 
 
 
----Android NewsGroup Reader----
http://www.piaohong.tk/newsgroup
 

 host controller e driver
 
Sono perfettamente d'accordo; � per questo che pensavo a 
problemi/limitazioni hardware.
 
Cristiano

   USB 3.0.
 
Ah... non sapevo dei controller paralleli. Se una chiavetta gestisce 
nativamente le scritture in parallelo, probabilmente non avr� problemi 
anche a gestirne centinaia, come nel caso della SanDisk Extreme (3.0) 
che gestisce 999 scritture in parallelo meglio dell'SSD (!), almeno con 
buffer di scrittura piccoli (fino a 4 kB).
 
Al contrario, se la chiavetta ha un controlleraccio qualunque, 
probabilmente, tutte quelle scritture in parallelo lo manda in crisi. A 
me sembra che addirittura s'inchiodi.
Resta strano (secondo me) il fatto che in lettura non si notano stranezze.
 
Cristiano

 Resta strano (secondo me) il fatto che in lettura non si notano stranezze.
 
Perche' nella fase di lettura le operazioni da attuare risultano
 molto inferiori rispetto ad un completo ciclo di scrittura sulle
 NAND Flash...se poi non viene utilizzato il comando TRIM le cose
 peggiorano ulteriormente.


 problemi/limitazioni hardware.
 
beh, 80kB/s in random 4K e' addirittura peggio di un hard disk,
con l'USB3.0 si arriva a 5-10MB/s , ad ogni modo
e' sconsigliato fare questo tipo di operazioni (e bench)
sulle pendrive, soprattutto se "vecchiotte" e di bassa capacita',
per evitare di "bruciare" le celle di memoria e rischiare
di rovinarle in modo definitivo (non sono degli SSD)
 
ciao
luca
 
 

   peggiorano ulteriormente.
 
Ah ok, giusta considerazione. :-)
 
Cristiano
 

 di rovinarle in modo definitivo (non sono degli SSD)
 
Ma le scritture (random o sequenziali che siano) sono sempre 10/20 MB di 
roba; che problema possono creare?
 
Cristiano
 

 chiavetta si "siede".
 
A me pare un valore un tantino ottimistico quello...:))


 alcuni minuti si', non ore (eheh)
 
Confermo che s'inchioda con la Cruzer Micro USB2.0 da 2 GB.
Da Process Explorer vedo DiskMarkX64.exe che ha scritto 50,6 MB di roba 
e sta l� inchiodato senza mostrare il risultato e senza che lo si possa 
interrompere. Non lo posso interrompere nemmeno dal task manager di 
Win7. Se tento di spegnere il pc, rimane tutto bloccato e l'unica cosa � 
resettare.
Stessa identica cosa succede con il programma che ho scritto io.
 
Dipender� da quello che hai detto tu (controller host USB ecc); credo 
che il problema hardware, ormai sia certo.
 
Cristiano
 

 A me pare un valore un tantino ottimistico quello...:))
 
Considerando le prestazioni della chiavetta di cui stiamo parlando 
(veramente eccezionali sia sulla carta che in pratica), a me sembra un 
risultato plausibile, perch� � verosimile che l'SSD sia ottimizzato per 
operare con buffer di I/O non microscopici.
 
Ma al di l� delle sensazioni, i test sono fatti apposta per avere dati 
oggettivi e dopo tutte le ore che ho perso per mettere a punto il 
programma, non dirmi che devo buttarlo! :-)
 
Cristiano
 


 
considera che le pendrive usano memorie
con meno cicli P/E , con firmware meno
sofisticati e non supportano neanche il TRIM
 
ciao
luca
 
 
 

 
 
Ovviamente non devi buttare nulla ci mancherebbe...dico solo che
 anche in ambito dell'accesso in scrittura random una pendrive,
 per quanto performante possa essere non raggiungera' mai i valori
 di un buon SSD, tutto qua.


 sofisticati e non supportano neanche il TRIM
 
L'articolo � lunghissimo e in inglese; per leggerlo con l'attenzione che 
merita un articolo tecnico, impiegherei tutta la settimana. :-)
Comunque conosco il funzionamento *di base* degli SSD e delle chiavette 
e ho letto la pagina "Random Read/Write Performance", ma non ho trovato 
qualcosa che mi aiuti a capire ci� che stai affermando.
 
Cristiano

 che stai affermando.
 
l'articolo e' lungo perche' l'argomento e' complesso
(anche se non e' complicato), diciamo che ti interessa
solo la parte teorica (fino a pag.10)
 
tra le parole chiave cerca anche "wear leveling",
"write amplification", "garbage collection",
"steady state" , "TRIM" , altro ..
 
ripeto, con gli SSD c'e' un firmware sofisticato
che agisce come un vero "sistema operativo",
mentre sulle pendrive tradizionali c'e' solo
il minimo indispensabile (wear leveling)
 
tra i sw utili cerca IOMeter 1.1.0 , permette
di fare test complessi con diversi pattern di accesso
(secondo me il migliore in assoluto)
 
ciao
luca
 
 
 

 (secondo me il migliore in assoluto)
 
Mi consola il fatto (si fa per dire) che questo crasha quasi subito, ma 
forse bisogna leggere bene come si utilizza.
 
Cristiano
 


 
si possono estrapolare queste due affermazioni:
 
"Write Endurance is defined as how much data can be written to the SSD over
its lifetime. There are three parameters that affect write endurance of
flash memory-based SSDs:
1. ..
2. ..
3.The amount of write amplification the SSD suffers."
 
"Factors that affect write amplification are:
.. ..
Workload: Small random writes across the entire drive cause the most write
amplification, because the drive will be forced to erase blocks in which
most of the data is valid. Sequential writes, on the other hand, are the
easiest to manage, as they will typically be programmed to sequential blocks
of flash. Next time the blocks are erased, it may be the case that no data
needs to be preserved. The less over provisioning there is, the more
workload will affect write amplification.
.. .."
 
 
per l'USB2.0 aggiungi il problema del protocollo BOT
(sia lato host che device), siccome non ho riscontrato
problemi simili neanche con una "vecchia" pendrive,
credo che il tuo problema sia piu' lato host controller/driver
che lato device
 
nel BIOS/UEFI prova a modificare "USB Legacy" (o sinile),
considera che con la Z87 Pro4 le porte posteriori
sono gestite dal chipset Intel, mentre quelle frontali
dal controller Asmedia
 
sulle pendrive non ho provato con IOMeter ,
attenzione che con l'uso prolungato si rischia
di danneggiarle
 
ciao
luca
 
 
 

 che lato device
 
A me in passato sono capitate pendrive di bassa lega che in un
 ambito di trasferimenti random in scrittura  praticamente
 s'inchiodassero pure quelle...questo rimanendo con lo standard
 USB 2.0. Percio' diciamo che puo' dipendere anche dal device
 oltre che dal controller/driver del chipset. :-)


 di danneggiarle
 
E' un rischio che non corro; come ti dicevo, crasha quasi subito.
 
Cristiano
 

 test "4K QD32" di CrystalDiskMark 3.0.3 x64.
 
Oh porca vacca!
http://crystalmark.info/?lang=en
:
"4K QD32 write test may conflict with Norton and Avira security 
software, so please stop real time scanner before running test 
temporarily.".
 
Disabilitata la scansione in tempo reale di avira, funziona tutto 
perfettamente! O_O
 
E' da un pezzo che sto pensando di buttare nel cesso 'sto cavolo di AV 
(che peggiora di versione in versione), forse questa � la volta buona.
 
Cristiano (incazzato come una bestia ferita per tutto il tempo perso a 
debuggare il programmino di test e a resettare il pc).

 o in posizioni casuali.
 
inizialmente hai scritto che hai problemi con CDM
perche' le scritture random si bloccavano (anche con IOMeter)
mentre con AS-SSD funzionano, e' corretto ?
 
questo puo' dipendere da molti fattori, pendrive "scadenti",
host controller, driver/OS, e accoppiata pendrive/host
oppure tutte le concause insieme
 
se vogliamo parlare di probabilita', tu hai provato
2 pendrive USB2 su 3 PC e hai avuto problemi,
mentre io non ne ho avuti (sempre 2 pendrive e 3 PC),
addirittura ho provato una OCZ Rally2 2GB (credo del 2006)
su s.madre Z87 Pro3 (simile alla tua)
 
ho appena letto il tuo post conclusivo (maledetto AV)
ma ormai avevo scritto tutto, lo lascio come promemoria
(anche se non risolutivo)
 
ciao
luca
 
 

 
 
lol


 confermata anche da test indipendenti.
 
Da utilizzatore di Avira non posso che confermare entrambi i dati.
 
E' un buon antivirus, ma e' molto peggiorato nell'ultimo anno.
E' diventato molto piu' presente (continui pop-up e richiami per
passare alla versione a pagamento) e meno minimalista, cosa che
invece apprezzavo molto.
Per ora continuo ad usarlo, ma  ho gia' deciso di eliminarlo al
prossimo cambiamento in peggio :)
 
ciao 
 
 

 
 
Vedremo cosa combineranno in futuro...:-) 


 (anche se non risolutivo)
 
Ma pur sempre utile. :-)
 
Cristiano
 

   confermata anche da test indipendenti.
 
I test indipendenti valutano solo l'efficacia nella rilevazione dei 
virus, ma non dicono niente sull'incasinamento (pi� o meno marcato) che 
un programma come un antivirus apporta inevitabilmente al SO (per 
bloccare le operazioni di un programma � obbligatorio che un altro 
programma come un antivirus, un HIPS o un firewall intercetti le 
funzioni di sistema).
 
Purtroppo, negli ultimi anni, gli autori di avira si sono spinti sempre 
di pi� nell'integrazione del loro AV con il SO. Gi� un paio d'anni fa 
hanno iniziato a rendere incompatibile l'AV con altri AV o HIPS (cosa 
mai successa prima d'allora), adesso sono arrivati ad impedire al SO di 
funzionare in certe circostanze; lasciami dire che hanno superato il limite!
 
Cristiano

 prossimo cambiamento in peggio :)
 
Su questo PC ho rimesso MSE. L'avevo abbandonato quando usavo il vecchio 
PC con XP perch� MSE causava rallentamenti troppo marcati nella 
visualizzazione dei file presenti nelle cartelle, ma con Win7 non noto 
niente di strano.
Preferisco un AV minimalista come MSE e come lo era avira fino a circa 3 
anni fa.
 
Cristiano

 del tutto indifferente, il programma s'inchiodava comunque.
 
il programma alloca lo spazio (o scrive un pattern)
e poi legge e scrive, ma se sovrascrive (molto probabile)
entra in gioco quanto scritto in precedenza
(spostamento con copia e scrittura ex novo)
 
e' vero che c'e' differenza tra i programmi (sync/async)
ma all'atto pratico, cioe' prestazioni ed usura delle celle,
il discorso non cambia, sono sempre scritture random
e non sequenziali, stiamo parlando di bench
perche' con applicazioni reali la differenza sync/async
puo' essere determinante per il loro corretto funzionamento
 
 
ciao
luca
 
 

 mai successa prima d'allora), 
 
Generalmente e' sconsigliato installare piu' AV nella stessa
 macchina...questo se vuoi ridurre al minimo eventuali
 incasinamenti.


 e non sequenziali, [...]
 
D'accordissimo.
 
Ciao
Cristiano

   incasinamenti.
 
Io ogni tanto lo faccio per fare prove; � comunque un buon test empirico 
per capire fino a che livello un av interferisce con il SO.
 
Cristiano

 Non pu� essere la cosa che t'interessa di pi�, pensaci bene. :-)
 
Va bene...allora meglio usare un AV che ha un efficacia
 nell'intercettare i malware del menga ma che in compenso possa
 girare anche su un 486. 
Il mondo e' bello perche' vario :-) 


   girare anche su un 486.
 
Non � quello che intendevo.
La cosa pi� importante � che l'av funzioni nel sistema in cui � previsto 
che funzioni. Avira deve funzionare anche su Win7 e invece non funziona. 
E' questa la cosa pi� importante!
L'efficacia rilevata dai test � scarsamente rappresentativa della 
realt�; molti av si equivalgono in quanto ad efficacia nel normale 
utilizzo, ma hanno un'interazione ampiamente differente sia con l'utente 
che con il sistema che li ospita.
 
Per avira � venuto fuori un bug reale, concreto e *critico* che corrompe 
*sistematicamente* qualunque file scritto in modo asincrono su chiavetta 
USB 2.0.
Non userai mai un programma che scrive in quel modo in una chiavetta 
USB2.0? Bene!
Ci sono altri bug critici? Boh! Forse s�, forse no; nessuno lo sa.
 
Ad ogni modo, io non devo convincere nessuno e qui siamo ampiamente OT.
Grazie a tutti per la partecipazione. :-)
 
Cristiano

 Grazie a tutti per la partecipazione. :-)
 
Di nulla...alla prossima :D
