Install fio on a VM and run it with these options:
fio --description="Emulation of Intel IOmeter File Server Access Pattern" --name=iometer --bssplit=512/10:1k/5:2k/5:4k/60:8k/2:16k/4:32k/4:64k/10 --rw=randrw --rwmixread=80 --direct=1 --size=4g --ioengine=libaio --iodepth=64
Size should be at least the double of the VM's available memory.
I am running this now. The VM's disk that I am running this on resides on a LUN that is only backed by a 4 disk RAID10 using 2TB MDL 7.2K SAS disks, so I wouldn't expect mega performance.
Heres a write test with DD:
tom@oss-flt-web01:/dev$ sudo dd if=/dev/zero of=/home/tom/test.data bs=1M count=8024;
8024+0 records in
8024+0 records out
8413773824 bytes (8.4 GB) copied, 30.4132 s, 277 MB/s
Heres a read test with DD:
tom@oss-flt-web01:/dev$ dd if=/home/tom/test.data of=/dev/null bs=1M count=8024
8024+0 records in
8024+0 records out
8413773824 bytes (8.4 GB) copied, 40.5108 s, 208 MB/s
Looks about what id expect from the MDL SAS disks backing it, considering there are another 4 VM's on that same disk set.
And here is the output of fio:
tom@oss-flt-web01:~$ sudo fio --description="Emulation of Intel IOmeter File Server Access Pattern" --name=iometer --bssplit=512/10:1k/5:2k/5:4k/60:8k/2:16k/4:32k/4:64k/10 --rw=randrw --rwmixread=80 --direct=1 --size=8g --ioengine=libaio --iodepth=64
iometer: (g=0): rw=randrw, bs=512-64K/512-64K/512-64K, ioengine=libaio, iodepth=64
fio-2.1.3
Starting 1 process
Jobs: 1 (f=1): [m] [100.0% done] [4174KB/998KB/0KB /s] [999/246/0 iops] [eta 00m:00s]
iometer: (groupid=0, jobs=1): err= 0: pid=7592: Sat Aug 8 10:55:49 2015
Description : [Emulation of Intel IOmeter File Server Access Pattern]
read : io=6553.2MB, bw=5418.1KB/s, iops=888, runt=1238332msec
slat (usec): min=0, max=178562, avg=26.88, stdev=191.79
clat (usec): min=42, max=1657.2K, avg=70587.51, stdev=74903.31
lat (usec): min=299, max=1657.2K, avg=70615.09, stdev=74903.54
clat percentiles (usec):
| 1.00th=[ 1672], 5.00th=[ 5280], 10.00th=[ 8096], 20.00th=[13376],
| 30.00th=[19584], 40.00th=[27008], 50.00th=[37120], 60.00th=[53504],
| 70.00th=[84480], 80.00th=[136192], 90.00th=[185344], 95.00th=[220160],
| 99.00th=[305152], 99.50th=[342016], 99.90th=[428032], 99.95th=[464896],
| 99.99th=[552960]
bw (KB /s): min= 1656, max=14243, per=100.00%, avg=5424.19, stdev=1710.85
write: io=1638.1MB, bw=1355.3KB/s, iops=221, runt=1238332msec
slat (usec): min=0, max=102517, avg=33.28, stdev=303.03
clat (usec): min=44, max=1552.7K, avg=5732.59, stdev=9813.51
lat (usec): min=403, max=1552.7K, avg=5766.59, stdev=9817.28
clat percentiles (usec):
| 1.00th=[ 524], 5.00th=[ 588], 10.00th=[ 636], 20.00th=[ 716],
| 30.00th=[ 788], 40.00th=[ 908], 50.00th=[ 1896], 60.00th=[ 4080],
| 70.00th=[ 6624], 80.00th=[ 9920], 90.00th=[15168], 95.00th=[20352],
| 99.00th=[33024], 99.50th=[40704], 99.90th=[110080], 99.95th=[162816],
| 99.99th=[246784]
bw (KB /s): min= 317, max= 3609, per=100.00%, avg=1356.50, stdev=475.35
lat (usec) : 50=0.01%, 100=0.01%, 250=0.01%, 500=0.13%, 750=5.37%
lat (usec) : 1000=3.84%
lat (msec) : 2=1.63%, 4=3.37%, 10=12.80%, 20=16.44%, 50=23.05%
lat (msec) : 100=11.96%, 250=19.20%, 500=2.20%, 750=0.02%, 1000=0.01%
lat (msec) : 2000=0.01%
cpu : usr=2.46%, sys=7.40%, ctx=1196945, majf=0, minf=9
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
issued : total=r=1099710/w=274886/d=0, short=r=0/w=0/d=0
Run status group 0 (all jobs):
READ: io=6553.2MB, aggrb=5418KB/s, minb=5418KB/s, maxb=5418KB/s, mint=1238332msec, maxt=1238332msec
WRITE: io=1638.1MB, aggrb=1355KB/s, minb=1355KB/s, maxb=1355KB/s, mint=1238332msec, maxt=1238332msec
Disk stats (read/write):
vda: ios=1101349/277647, merge=0/90, ticks=77747728/1585156, in_queue=79338868, util=100.00%