PDA

View Full Version : Read caching???


gigino85
30-05-2005, 22:00
Su una mobo NF4 mi ritrovo, nelle impostazioni dei canali ide, oltre a "enable caching write" anche "enable read caching".
Se la disabilito ottengo il doppio delle prestazioni dell'HD.
Mi spiegate di preciso cosa è questa voce???

MM
30-05-2005, 22:09
Meglio nella sezione MB ;)

CRL
31-05-2005, 23:12
Il disco ha una sua cache sopra, cioè una memoria (i famosi 2MB, 8MB, 16MB); quando la testina legge un dato e lo trasmette, sotto di essa passano molti altri dati, che se la cache in lettura è attiva vengono salvati sulla cache, e quindi se servono sono presi da lì, senza riposizionare la testina, con notevole risparmio di tempo.
Dov'è la fregatura?
Prendiamo un disco 7200RPM, consideriamo che faccia un transfer di 40MB/sec di media, vuol dire che riempie una cache di 16MB in 0,4 secondi.
Questo vuol dire che se in questo tempo piccolissimo vengono richiesti dati presenti nella cache, l'operazione è molto più veloce, ma dopo questo tempo la cache viene aggiornata, e quindi si ri-inizia.
All'atto pratico in lettura sequenziale la cache è inutile, perchè il flusso dati è ininterrotto, e diventa utile solo in lettura casuale.
Considerando però un disco da 120GB, la cache rappresenta lo 0,01% dei dati sul disco, e quindi questa è la probabilità che il dato successivo da leggere sia nella cache, cioè ne viene letto dalla cache 1 ogni 10 mila. Anche supponendo quindi che la lettura dalla cache sia 100 volte più veloce di quella da disco, se ne ottiene un beneficio medio impercettibile, pari allo 0,001%.
Tutto questo considerando che la cache sia tutta per la lettura, mentre in realtà è anche per la scrittura, con discorso però un po' diverso.
Per questi motivi direi che l'incremento di prestazioni che rilevi sia dovuto ad altro, magari un settaggio che si modifica in dipendenza di questo. Da cosa vedi la differenza?
Spero di essere stato chiaro...

- CRL -

gigino85
01-06-2005, 17:39
Sei stato chiarissimo.
Il discorso è che quando è installato un solo HD le prestazioni sono nella norma, mentre con due HD in raid 0 il transfer si riduce della metà.
Con winbench, HDTACH, e anche lavorandoci, si vede benissimo che le prestazioni sono la metà di qunato dovrebbero essere.
Disabilitando quella voce torna tutto nella norma. :D

CRL
01-06-2005, 18:14
Questo è un altro problema.
Innanzitutto devi fare attenzione al programma che usi, e leggerti le istruzioni sulla dimensione del file che usano per misurare il transfer.
Ad esempio, se lo stripe size del raid0 è di 64kB, vuol dire che se un programma testa con file da 48kB, non avrà benefici dal raid, ed otterrai un andamento discontinuo. Questo però è un discorso generico, non legato a quel settaggio sul read cache.
Legato a quel problema potrebbe esserci un altro discorso, che ieri ho tralasciato per brevità, e cioè il fatto che la lettura da pci (in senso lato) è un'operazione burts, e la cache serve anche a mitigare questo effetto, per avere un comportamento sustained, cioè mediato nel tempo.
Nel raid0 si hanno spesso problemi di questo tipo (li ho anche io) con stripe size alti e cache attivata, perchè si satura la pci e la trasmissione crolla a valori intorno ai 50MB/sec, tipicamente.
Per schede madri su chipset VIA questo problema è stato corretto con una patch apposita, che si trova sul sito.
Per ctrl pci della silicon (credo il TX 2 e 4 canali) vale lo stesso discorso.
Se invece hai una mobo con chipset Intel, ed hai questo problema usando il ctrl integrato sulla mobo, puoi provare a cambiare la PCI Latency dal Bios, variandola da 32 a 248, fermandoti ad ogni valore e rifacendo il test, per trovare il valore ottimale.
In alternativa, se con la cache in lettura disabilitata non ti fa il problema, allora probabilmente è un problema software (firmware del ctrl integrato, o del disco, o risultante dalla loro interazione), e quindi lo lascierei disabilitato.

- CRL -

gigino85
03-06-2005, 16:14
Prima di tutto, grazie per l'aiuto.
Per quanto riguarda il discorso dei benchmark me ne accorgo anche lavorando con file di grosse dimensioni che il trasfer è basso.
Spostando file con la cache in lettura abilitata impiego il doppio del tempo.
La cosa strana è che se uso un solo disco questo non accade, cioè abilitando la cache in lettura, il transfer non varia.
Ho una lanparty nf4 sli -dr e il problema me lo da sia usando il controller sil3114 integrato, che il controller integrato nel chipset.
Se vario la PCI Latency dal Bios dovrei quindi ottenere miglioramenti???

CRL
03-06-2005, 16:20
Usando il cerca, in Periferiche di Memorizzazione c'è un thread che si chiama "Esperti Raid (...)" in cui è emerso questo problema dei transfer con configurazioni molto spinte. Anche a me un disco singolo non dà problemi, mentre due fanno stò giochetto.
Leggi lì, partendo dai post di quest'anno (la dicussione è vecchia ma ripresa nel 2005), in pratica dal mio primo post. Nelle pagine finali sono uscite cose interessanti per chiarire il problema, ed anche qualche abbozzo di soluzione.

- CRL -

gigino85
03-06-2005, 17:05
OK, trovato.
Grazie mille per l'aiuto.
Ciao.