View Single Post
Old 03-03-2012, 16:22   #1
Berent
Senior Member
 
L'Avatar di Berent
 
Iscritto dal: Apr 2007
Messaggi: 676
FancyCache, SuperCache e Ramdisk

Questi due giorni, complice forse l'acquisto di un ssd, mi sono deciso a provare anche alcune delle soluzioni software disponibili per migliorare le prestazioni del file system, in particolare:
RamDisk
FancyCache
SuperCache

Da qui è scattata tutta una serie di elucubrazioni sulle possibili applicazioni di questi software e vorrei usare questo post per tirare le somme sui vantaggi concreti che si possono trarre dal loro utilizzo…
Se anche voi vi siete scervellati un bel po a pensare a quale potrebbe essere il modo migliore per utilizzare questi strumenti e avete avuto la sensazione che "come fai ne manca un pezzo", continuate a leggere!

Come saprete già RamDisk consente di creare un'unità logica virtuale i cui dati risiedono sulla ram e possono quindi essere acceduti in tempi record, per di più senza contribuire all'usura fisica (effetti secondari a parte) delle componenti.
Fa da controaltare al vantaggio della velocità la volatilità dei dati inseriti nel ramdisk, che è quindi usato per le cartelle temporanee, contenenti tutti quei file che ci si può permettere di perdere in qualsiasi momento (anche se si dispone di un gruppo di continuità per i blackout si può sempre avere un crash del sistema…).
Anche se utilizzato solo per i file temporanei , se si rimappano le cartelle temporanee di sistema nel ramdisk si possono avere problemi con le istallazioni che prevedono la conclusione dell'istallazione successivamente al riavvio del sistema.
Una possibile soluzione sarebbe il salvataggio automatico delle immagini del ramdisk su disco fisico. Ma è una soluzione che aumenta molto i tempi di spegnimento e di boot e quindi non mi sembra pratica all'atto concreto…
Quindi sto valutando se tenere o meno le cartelle temporanee di sistema mappate sul ramdisk.
Per la cache di firefox l'unica controindicazione è che dopo il riavvio di sistema le pagine sono più lente a caricare, ma i vantaggi mi sembrano superiori agli svantaggi (soprattutto considerando che utilizzando un ssd per la cache si avrebbe un notevole contributo all'usura del disco).
Per tutti gli altri file temporanei non ho trovato grandi controindicazioni e soprattutto per comprimere/decomprimere gli archivi il ramdisk mi è risultato utilissimo.

SuperCache e FancyCache sono molto simili, però solo il secondo programma è gratuito, quindi ho usato quest'ultimo.
In pratica FancyCache intercetta le richieste di I/O sul disco e le gestisce appoggiandosi a una cache.
C'è una cache di I livello sulla ram e opzionalmente una cache di II livello su SSD.
L'operazione di cache può essere sia in lettura che in scrittura (ritardando di un tempo a piacimento le operazioni di scrittura su supporto fisico).
E' disponibile una versione "Disk" con cui si possono selezionare le unità fisiche a cui aggiungere la cache e una versione "Volume" con cui si possono selezionare le unità logiche.
Per l'idea che mi sono fatto gli scenari sono questi:

1)Solo cache di I livello in lettura:
In pratica si ha una cache che si aggiunge a qualla normalmente utilizzata dal sistema

+ possibilità di massimizzare l'uso della memoria fisica.
- lo spazio in ram è allocato "staticamente" per le operazioni di cache.

Considerazioni personali:
Applicazioni particolari escluse windows raramente arriva a utilizzare o superare 8GB di ram.
Se si dispone veramente di molta ram si potrebbero ottenere tassi di cache hit piuttosto buoni.
Io con 8GB di mem fisica ho potuto dedicare solo 1GB al disco C (usavo anche 2GB per ramdisk) ottenendo un cache hit del 10% , ma ho letto che con 4-8Gb di cache alcuni hanno ottenuto cache hit ratio intorno al 70% con alcuni giochi, riducendo drasticamente i microfreeze dovuti ai caricamenti.

2)Solo cache di I livello in lettura/scrittura:
Quando si attiva la cache anche in scrittura i file modificati vengono tenuti nella cache per un tempo stabilito dall'utente (10 sec. Default) allo scadere del quale si ha la scrittura dalla cache al disco.

+incremento di velocità notevole per i file temporanei che necessitano di accessi continui in lettura/scrittura
+possibilità di aumentare la vita degli SSD riducendo il numero di nand-write.
+migliora le routine di garbage collection normalmente eseguite dall'ssd.
-possibile corruzione dei dati non ancora trasferiti dalla cache al disco fisico in caso di crash o blackout.

Considerazioni personali:
Ho letto pareri contrastanti a riguardo. Molti (me compreso) hanno paura della possibile corruzione dei dati, ma c'è anche chi sostiene di aver ridotto di un fattore 1:15 l'usura del proprio ssd.
Utilizzata in questo modo la cache può anche sostituire ramdisk come cache per per firefox e per le cartelle temporanee (verrebbe usata automaticamente la cache). In più non si avrebbero problemi in caso di istallazioni con riavvio (fancycache fa un flush della cache in automatico allo spengimento).

3)Anche cache di II livello (su SSD):

+possibile migliorare le prestazioni dei dischi lenti con una ampia cache di II livello su SSD.
-diminuzione della vita dell'SSD che è usato come cache.

Considerazioni personali:
Alcuni dati tenuti su SSD invece che nell'archivio su HDD per velocizzarne la fruibilità potrebbero essere tenuti su HDD lasciando a fancycache il compito di copiare nell'SSD (nella cache) quelli effettivamente usati.
Potrebbe essere un modo più ottimizzato per sfruttare le potenzialità dell'SSD anche per i dati in archivio.
Però non mi convince totalmente: a ogni spegnimento del sistema la cache su SSD sarebbe svuotata (almeno credo), quindi si aumenterebbe abbastanza il numero di scritture su SSD. Ma questo dovrei verificarlo meglio…

Più o meno questi sono gli scenari d'uso di cui mi sono interessato.
Attualmente utilizzo Ramdisk per le cartelle temp di sistema, la cache di firefox e come cartella per pasticciare con i file compressi presenti in archivio.
FancyCache lo sto utilizzando per C: sola lettura, 1GB di I livello. Per l'archivio: solo lettura, 1GB di I livello e 5GB su SSD (ancora mai utilizzati).

Voi come li utilizzate (se li utilizzate)? Pareri?
Berent è offline   Rispondi citando il messaggio o parte di esso