Nei precedenti articoli, ho illustrato la tecnologia Fusion-IO e come installare una delle loro schede in un server ESXi. Ora, come tutti si aspettavano dai primi articoli, è giunto il momento di eseguire qualche test di prestazioni e illustrarne i risultati.
Per realizzare i miei tests, ho sfruttato il VMware I/O Analyzer, una appliance già pronta all’uso per effettuare benchmark. Si installa in pochi minuti in un server ESXi, e consente di eseguire veloci test sull’I/O dello storage su cui viene installata.
Note preliminari sulla mia WhiteBox, e il fatto che non è un server vero…
Le schede Fusion-IO raggiungono elevatissimi valori di IOPS e latenza grazie al bypass completo del canale scsi/sata, in favore dell’uso diretto del bus pci-e, oltre ad altri elementi altrettanto fondamentali come i loro drivers e il modo in cui intercettano le chiamate del file system ospitato. Per poter sfruttare appieno queste schede tuttavia è necessario che anche le altre componentistiche del sistema siano di buon livello; giusto per dirne una, il chipset montato sulla motherboard. Questo è il motivo per il quale il mio whitebox casalingo non ha raggiunto i valori nominali dichiarati dal produttore.
Un altro elemento da considerare, per avere prestazioni adeguate, è la RAM. Secondo delle tabelle presenti nei manuali Fusion-IO, per poter sfruttare la scheda la System RAM deve essere proporzionale alla dimensione della scheda Fusion-IO. Usando in media blocchi da 4k, il driver utilizza 425 MB ogni 80 GB di spazio. Con la IoDrive 640 in mio possesso, questo vuol dire 3.32 Gb di System RAM.
Tenetelo ben presente quando andate a dimensionare un server all’interno del quale installerete una Fusion-IO: in questo uso particolare, ESXi smette completamente di essere un OS che richiede poca ram per essere eseguito…
Ho utilizzato i test già presenti nell’appliance VMware, e ognuno di essi è stato eseguito per 60 secondi. Nessun’altra Virtual Machine era in esecuzione al momento dei tests.
I tests con I/O Analyzer sulla WhiteBox
Questo primo test utilizza pacchetti da 512byte, 100% di letture e 0% di randomicità. Era volto ad ottenere il massimo numero di IOPS, e la scheda Fusion-IO non si è fatta pregare: 58716 IOPS praticamente costanti, e con una latenza di 0.10 millisecondi, ovvero 103 microsecondi!
In questo secondo test ho incrementato la dimensione dei pacchetti a 4k, mantenendo inalterari i restanti parametri. Si può notare come siano calati gli IOPS (praticamente dimezzati, ma sempre su cifre considerevoli) e la latenza sia salita fino ai 433 microsecondi; stiamo comunque parlando di tempi di molto inferiori al millisecondo.
In questo terzo e ultimo test, ho utilizzato sempre pacchetti da 4k, ma con un bilanciamento 50-50 tra letture e scritture con accesso completamente randomico ai dati. I numeri relativi agli IOPS sono sempre su livelli altissimi, ma quello che sorprende nonostante il valore 100% random è la latenza di accesso, che si attesta su un valore medio di 513 microsecondi.
Conclusioni
Fusion-IO indica da sempre la latenza come elemento caratterizzante delle proprie soluzioni, prima ancora del numero di IOPS che una loro scheda è in grado di erogare. I numeri che ho ottenuto nei miei test lo confermano in pieno.