Performance testing? Sì, ma fatto bene!

Riccardo Facciotti, Tech Sales Director South EMEA, INFINIDAT

In INFINIDAT spesso andiamo a trovare prospect che stanno pensando di sostituire gli storage array esistenti con soluzioni nuove per beneficiare di maggiore flessibilità, facilità d’uso e riduzione dei costi. Queste aziende vogliono essere sicure che le performance del nuovo storage siano pari o superiori a quello in essere al fine di supportare la crescita, velocizzare le applicazioni di business e soddisfare gli utenti. Per questo motivo le aziende testano, anche frequentemente, le soluzioni storage per diversi casi d’uso. Ma poiché il performance testing non è una pratica usuale per molti team IT, alcuni suggerimenti possono essere molto utili.
Riteniamo che il modo migliore per verificare le prestazioni sia quello di far girare applicazioni reali. A volte è possibile grazie a funzionalità dell’infrastruttura (virtualizzatori di SAN, hypervisor, volume manager, ambienti di test esistenti). Questo approccio consente di comprendere esattamente come lo storage si comporterebbe in situazioni reali che non possono essere simulate. Pensiamo ad esempio al fatto che le applicazioni single threaded non generano grandi quantità di IO, ma se le emuliamo con diversi thread otterremmo risultati molto migliori rispetto a quelli reali. Per questo genere di applicazioni, per ottenere il massimo da un sistema di multicontroller attive, è necessario aggiungere il parallelismo a livello di database o applicativo.
Purtroppo si tratta di un’opzione spesso non percorribile per via di approcci no-risk, l’incapacità di installare soluzioni onsite, policy di sicurezza, mancanza di tempo, ecc. Un’altra opzione è quella di utilizzare applicazioni reali con workload simulati. E’ una buona alternativa, soprattutto se l’applicazione è caratterizzata da schemi noti e specifici, tipicamente i batch job. Questi hanno tempi di svolgimento predefiniti ed è facile confrontarli in ambienti diversi. I limiti? E’ comunque necessario disporre degli apparati onsite o fornire al vendor dati reali, dedicare del tempo da parte degli specialisti e pensare a un metodo per simulare le interazioni utente o acquistare un software che lo faccia. Le aziende con notevoli budget IT, come le telco e le banche, possono farlo, ma per la maggior parte delle imprese è impossibile.
Quindi, oggi, il modo più semplice per verificare le performance dello storage è quello di fare test sintetici con tool quali Vdbench e iorate in ambiente controllato. Il problema principale è come questi risultati si possono confrontare con quanto si otterrà in realtà sul campo.
Per fare la correlazione è possibile, per esempio, raccogliere le metriche sulle performance dagli array esistenti e cercare di simularli su storage nuovo. E’ un metodo efficace, ma non tutte le metriche che contano possono essere inserite come per esempio i diversi livelli di storage, una distribuzione corretta dei workload, workload in base all’IO, e anche i cache hit. Una volta compreso ciò che accade in collaborazione con i professionisti INFINIDAT, è possibile scrivere dei profili da emulare in un test box. Di solito i picchi di workload vengono emulati ma non è sempre una buona idea. Spesso infatti si differenziano in modo sostanziale da workload usuali in termini di cache hit, read percentage, IO size ecc. E’ quindi consigliabile emulare due tipologie di workload – tipico e peak, separatamente.
Quindi, dopo aver fatto test sintetici e aver capito che non è possibile emulare al 100% correttamente, cosa si può fare per migliorare l’accuratezza? Si possono fare test su storage di vendor diversi e capire come si relazionano, o far girare gli stessi test sui vostri array e vedere come le performance si relazionano con qualcosa che conoscete, e questi dati sono più vicini alla realtà.
Per fare chiarezza, INFINIDAT ha condotto una serie di test estesi e dettagliati, confrontando i propri Infinibox con sistemi all-Flash, in un ambiente il più possibile reale. Gli esperimenti sono stati condotti su volumi di dati importanti, nell’ordine dei 200TB, perché ai workload attuali viene spesso richiesta un’ampia scala, oltre ad affidabilità e performance. Il risultato è stato molto chiaro, con i sistemi software-defined ibridi che hanno raggiunto prestazioni decisamente superiori rispetti agli AFA con cui sono stati comparati – per la cronaca, firmati da EMC e Pure Storage.
Se utilizzati come soluzione target per migliorare workload individuali, i supporti media possono offrire un valore notevole ai data center moderni, ma tale valore viene sprecato se non è accompagnato da innovazioni a livello di architettura di sistema. Ed è questo il caso degli attuali AFA, che semplicemente si limitano a posizionare media più veloci (flash) dietro ad architetture di front-end datate come mezzo per incrementare le prestazioni. Riconoscendo che qualunque soluzione storage media-reliant non riuscirebbe a soddisfare i requisiti di prestazioni real-time delle aziende moderne, è fondamentale poter contare su un’architettura storage software innovativa dotata dell’adattabilità e la flessibilità necessarie per ottimizzare le prestazioni di qualunque tipologia di workload – presente e futura.
In generale, possiamo concludere che è difficile emulare – vi potrebbero proporre di usare una dimensione di cache 10 volte quella attuale ma se il test sintetico viene effettuato con un cache hit set uguale a quello del box esistente, probabilmente non vedrete alcuna differenza nei risultati tra 16GB e 1TB. In questo senso, il suggerimento è uno solo: non fidarsi dei test condotti in laboratorio ma eseguire i propri o fare riferimento a quelli condotti da terze parti, ma in ambienti reali.