Nel precedente articolo, ho illustrato la soluzione di server-side caching Sandisk FlashSoft 3.1 per vSphere, le sue caratteristiche e come può essere installata e configurata in un ambiente vSphere. In questo articolo vedremo invece alcuni risultati dei test che ho effettuato.
L’ambiente di test
Ho utilizzato per i miei tests il mio SkunkWorks Lab. Su due dei tre server ESXi ho installato due schede Fusion-IO ioDrive da 320 Gb, e in seguito il software FlashSoft, nella sua versione 3.1.3. Tutti i test sono stati realizzati ripetendo le prove descritte nel mio precedente articolo “La mia nuova “I/O Test Virtual Machine”, nel quale avevo ottenuto i valori prestazionali del mio laboratorio in versione “base”.
Un avviso importante sui risultati: il mio laboratorio utilizza alcuni server HP Proliant G5. Il bus PCIe di queste macchine non è molto performante (per essere gentili), ragion per cui le schede Fusion-IO che possiedo non sono in grado di rendere quello che potrebbero, ma tipicamente non vanno mai oltre i 23-30k IOPS; su sistemi differenti potrebbero tranquillamente superare i 60-70k, nonostante siano modelli di prima generazione.
Prendete quindi questi numeri come un raffronto con le prestazioni dello stesso laboratorio senza accelerazione e di come quindi FlashSoft può incrementare le prestazioni, ma non come numeri assoluti. Per avere valori indicativi bisognerebbe avere un laboratorio molto più aggiornato, cosa che ad oggi non possiedo.
Risultati
FIO Max Bandwidth: 100% read, 100% sequential, Block size 1M, IO depth 32, 16 jobs
Labs: 194 IOPS, 199,57 MBs, 2593 ms latency
Labs + FlashSoft: 741 IOPS, 759,62 MBs, 684,40 ms latency
FIO Max Real I/O: 100% read, 100% sequential, Block Size 8k, IO depth 32, 16 jobs
Labs: 12717 IOPS, 101,73 MBs, 4016 ms latency
Labs + FlashSoft: 30278 IOPS, 242,23 MBs, 16,9 ms latency
FIO Real Life Test: 80% read, 100% random, Block Size 8k, IO depth 32, 16 jobs
Labs: 2800 IOPS, 22,40 MBs, 181 ms latency
Labs + FlashSoft: 15303 IOPS, 122,43 MBs, 34,16 ms latency
JetStress: 2 hr run performance test
Labs: 1013,57 IOPS
Labs + FlashSoft: 1533,07 IOPS
Questo risultato richiede una spiegazione. Il risultato a prima vista pare solo di poco migliore del valore di base, ma dovete pensare che la cache di una soluzione come FlashFoft migliora col tempo, in quanto ha necessità di identificare e ottimizzare i blocchi letti più frequentemente, ed agire di conseguenza. I test di JetStress che ho eseguito durano 2 ore, e la prima esecuzione aveva dato un risultato di 1060 IOPS. Già la seconda esecuzione, che ho riportato, ha dato un valore del 50% più elevato rispetto al Laboratorio non accelerato. Sicuramente esecuzioni più lunghe daranno risultati ancora migliori, così come quando ad essere accelerato è un sistema di produzione che è in esecuzione continua. Ricordatevi inoltre che FlashSoft ad oggi non accelera le scritture, quindi una parte delle attività di JetStress non subisce miglioramenti.
HammerDB:
Labs: 17790 TPM e 7845 NOPM
Labs + FlashSoft: 31536 TPM e 12128 NOPM
Note Finali
Sono rimasto molto ben impressionato dalle prestazioni di FlashSoft. In ambienti virtualizzati, dove la maggior parte delle attività di I/O sono di tipo read, questo prodotto può essere una valida soluzione per incrementare l’I/O senza dover aggiornare lo storage posseduto. Oltre ad un ovvio e atteso incremento degli IOPS, sono rimasto favorevolmente impressionato dalla drastica diminuzione della latenza: sicuramente la scheda Fusion-IO ha i suoi meriti, avendo proprio nella bassissima latenza uno dei suoi punti di forza, ma FlashSoft ne ha fatto un ottimo uso. Segno di un software molto ottimizzato e performante.
Attendo con fiducia una prossima versione del software, magari in grado di accelerare anche le scritture, per poter osservare ulteriori incrementi, specialmente in test come JetStress e HammerDB, dove il rapporto letture/scritture è 50:50.