Consistenza delle prestazioni
I moderni Ssd utilizzano meccanismo interni di wear leveling tali da mantenere le prestazioni costanti nel tempo. Questi algoritmi, se ben realizzati e messi in pratica da un controller sufficientemente potente, permettono al disco di mantenere valori di trasferimento costanti nel tempo, anche se, nel frattempo, intervengono meccanismi per preservarne la velocità (controller multitasking).
Per misurare ciò mettiamo a dura prova il disco effettuando un test continuo della durata di 20 minuti durante i quali, in maniera continua, leggiamo o scriviamo blocchi da 4 Kbyte con coda comandi 32. Il valore che ci interessa è il numero di IOps ottenibili, che deve risultare il più stabile possibile nel tempo. Un calo dopo lo spunto iniziale è normale; ma più esso è ridotto e meglio il disco si comporta nel tempo.
Scalabilità
Uno dei parametri più interessanti per l’analisi di un Ssd e del suo controller integrato è la scalabilità. Ovvero la capacità di incrementare le prestazioni al crescere delle richieste o delle dimensioni dei file. Nel nostro caso analizziamo in maniera approfondita la velocità di trasferimento sequenziale con coda 32 di dati con dimensione crescente da 1 a 2048 Kbyte.
In un modello ideale il grafico è piatto, ovvero offre le medesime prestazioni con qualunque dimensione file. Nella pratica è impossibile che, con dati da 1 Kbyte, si possano raggiungere velocità elevatissime, ma la ripidità della curva e quindi il tempo necessario al raggiungimento del massimo, è il parametro chiave nella valutazione della scalabilità.
Utilizzo misto
Ovviamente nessun disco viene utilizzato esclusivamente per leggere o scrivere dati. In ogni caso siamo sempre in presenza di un misto delle due attività.
Per valutare come il controller riesce a districarsi tra attività differenti effettuiamo un test in cui effettuiamo un trasferimento di 128 Kbyte con coda 32 con percentuali di lettura e scrittura variabili da 100/0 a 0/100 %.
I due estremi vanno asintoticamente ai valori di trasferimento sequenziali massimi visti in precedenza, mentre il grafico ottenuto presenta solitamente una concavità in cui la velocità media con transazioni miste è molto inferiore ai massimi. In un controller perfetto il grafico dovrebbe essere piatto; mentre nella realtà un indice di performance può essere ricavato dal rapporto tra il minimo e il massimo.
Utilizzo Server o Workstation
IOmeter può essere utilizzato anche per valutare un disco in un utilizzo più realistico, simulando le operazioni di IO tipiche di Web Server, File Server, Database o Workstation.
La nostra tabella tipica di utilizzo è la seguente:
Profili | Letture / Scritture | Random / Sequenziale | Dimensione blocchi |
---|---|---|---|
Database | 67% / 33% | 100% / 0% | 8 KB - 100% |
Fileserver | 80% / 20% | 100% / 0% | 512 Bytes – 10% |
1 KB – 5% | |||
2 KB – 5% | |||
4 KB – 60% | |||
8 KB – 2% | |||
16 KB – 4% | |||
32 KB – 4% | |||
64 KB – 10% | |||
Web server | 100% / 0% | 100% / 0% | 512 Bytes – 22% |
1 KB – 15% | |||
2 KB – 8% | |||
4 KB – 23% | |||
8 KB – 15% | |||
16 KB – 2% | |||
32 KB - 6% | |||
64 KB – 7% | |||
128 KB – 1% | |||
512 KB – 1% | |||
Workstation | 80% / 20% | 80% / 20% | 8 KB - 100% |
In questo caso siamo interessati sia alle IOps sia alla velocità di trasferimento. Essendo i profili differenti possiamo infatti ottenere “classifiche” molto diverse per ogni disco analizzato.
A titolo di confronto i dischi meccanici, nelle stesse condizioni, raramente superano i 10 Mbyte/s.