Misurare la velocità generale di un'unità di archiviazione non è complicato. Con una copia di CrystalDiskMark, la vecchia build gratuita di HD Tune o altro software simile è sufficiente. Tuttavia, ci sono utenti là fuori che devono valutare il proprio hardware in condizioni più specifiche, con carichi di lavoro molto ben definiti. È qui che entra in gioco lo strumento FIO. Non ha interfaccia, la sua documentazione non è la migliore del mondo, e non ti insegna nulla lungo il percorso, ma se sei uno di questi utenti, hai bisogno di una copia.
Un punto criticato di frequente tra i benchmark più popolari è il loro profilo sintetico. Da un certo punto di vista, usare un benchmark fisso, ripetitivo e invariabile è utile perché ci permette di estendere lo stesso «pacchetto di regole» su più configurazioni hardware, ma ci sono occasioni in cui quel vantaggio crolla. Ad esempio, non è la stessa cosa un disco rigido che lavora in un sistema desktop, che in un server con carichi di lavoro completamente diversi.
Ciò significa che con programmi come CrystalDiskMark o il classico HD Tune, ciò che riceviamo in realtà sono «opinioni molto educate» sulle prestazioni di un disco o di un SSD, mentre in secondo piano possono esserci colli di bottiglia, bug dei driver e altri errori di configurazione pronti a rovinare tutto. Come si individuano? Con un benchmark super-flessibile, avanzato e in grado di riprodurre quasi qualsiasi carico di lavoro: FIO.
Allora… se è così valido, perché non è più famoso? La risposta è semplice: non è un benchmark pensato per l'utente comune. Non ha un'interfaccia grafica, né un assistente che spieghi ciascuno dei suoi parametri. Con FIO devi sapere esattamente cosa vuoi valutare, e non aspettarti aiuto per raggiungerlo. FIO si comporta come un simulatore/tuttofare, un «coltellino svizzero» che ha evitato al suo sviluppatore il mal di testa di creare un benchmark individuale per ogni carico di lavoro. Ma tale flessibilità si riflette nei modificatori necessari per la sua esecuzione. Per esempio:
fio --name=random-write --ioengine=windowsaio --rw=randwrite --bs=4k --numjobs=1 --size=4g --iodepth=1 --runtime=60 --time_based --end_fsync=1
- «Name» è il nome che porterà il file generato durante il benchmark.
- «IOEngine» definisce la modalità con cui FIO interagisce con il file system (su Windows è «windowsaio», per il resto è «posixaio»).
- «--rw=randwrite» indica che vogliamo valutare operazioni casuali di scrittura.
- «--bs=4k» è la dimensione del blocco, 4K, una vera tortura per molti supporti di archiviazione.
- «--size=4g» imposta la dimensione del file, 4 gigabyte.
- «--numjobs=1» ordina la creazione di un solo file e di un solo processo all'interno di quel file.
- «--iodepth=1» è la profondità per impilare comandi nella coda del sistema operativo (equivale a un'operazione alla volta).
- «--runtime=60» è il tempo di esecuzione, 60 secondi.
- «--end_fsync=1» mantiene il contatore attivo finché tutte le operazioni non siano state completate.
Il risultato finale appare sotto la dicitura «Run Status Group»: nel mio caso, FIO ha impiegato 87.230 millisecondi per scrivere un totale di 6.307 «mebibyte» (cioè base 1.024), il che si traduce in circa 72,3 «mebibyte» al secondo, qualcosa tra basso e normale per un SSD comune.
Vuoi saperne di più su FIO? Se sì, la gente di Ars Technica ha pubblicato un'ottima guida, ma la raccomandazione numero uno rimane leggere la documentazione ufficiale. Ricorda: FIO funziona molto bene, ma non insegna né spiega. Per dominarlo, dovrai sporcarti le mani.
Sito ufficiale e download: Clicca qui
Fonte: Ars Technica