Originariamente inviato da s12a
(Messaggio 42551556)
Esattamente; è comunque pensato per essere usato in maniera automatizzata, perché digitare a mano quello che serve per fare un singolo test diventa assai tedioso. Questo è quanto uso per un test in lettura random con blocchi da 4kB su un file da 25MB:
Codice:
fio --filename=DUMMYFILE --size=25M --bs=4k --iodepth=1 --numjobs=1 --rw=randread --ioengine=libaio --runtime=60 --direct=1 --prio=0 --startdelay=2 --group_reporting --name=seqtest --output-format=json
Quello che faccio mostrare sul programma non è che una minima parte di quello che permette di fare FIO. Ecco un esempio di output completo human-readable da riga di comando da parte di questo tool:
Codice:
seqtest: (g=0): rw=randread, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=1
fio-2.1.11
Starting 1 process
Jobs: 1 (f=1)
seqtest: (groupid=0, jobs=1): err= 0: pid=20522: Sat Jun 6 18:58:45 2015
read : io=25600KB, bw=22417KB/s, iops=5604, runt= 1142msec
slat (usec): min=5, max=147, avg=11.39, stdev= 6.69
clat (usec): min=1, max=1092, avg=163.72, stdev=29.55
lat (usec): min=33, max=1145, avg=175.45, stdev=31.18
clat percentiles (usec):
| 1.00th=[ 50], 5.00th=[ 137], 10.00th=[ 139], 20.00th=[ 139],
| 30.00th=[ 151], 40.00th=[ 157], 50.00th=[ 169], 60.00th=[ 171],
| 70.00th=[ 175], 80.00th=[ 185], 90.00th=[ 195], 95.00th=[ 201],
| 99.00th=[ 215], 99.50th=[ 223], 99.90th=[ 298], 99.95th=[ 402],
| 99.99th=[ 1096]
bw (KB /s): min=22248, max=22288, per=99.34%, avg=22268.00, stdev=28.28
lat (usec) : 2=0.02%, 50=0.97%, 100=0.78%, 250=98.06%, 500=0.14%
lat (usec) : 750=0.02%
lat (msec) : 2=0.02%
cpu : usr=4.91%, sys=9.47%, ctx=6418, majf=0, minf=7
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued : total=r=6400/w=0/d=0, short=r=0/w=0/d=0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
READ: io=25600KB, aggrb=22416KB/s, minb=22416KB/s, maxb=22416KB/s, mint=1142msec, maxt=1142msec
Disk stats (read/write):
sdb: ios=5003/0, merge=0/0, ticks=824/0, in_queue=820, util=82.16%
slat = latenza di invio, clat=latenza di elaborazione, lat = latenza totale (ossia il tempo di accesso)
in questo caso il valore medio era di 175.45 usec, ossia 0.175 ms. Con questo dato si potrebbe creare un "clone" di AS SSD facilmente.
E si possono anche creare workload misti in lettura/scrittura configurati in maniera molto specifica. Ma il mio scopo era avere qualcosa di semplificato e di facile/rapido utilizzo, simile ai tipici benchmark su Windows.
|