Database Reference
In-Depth Information
ioengine=libaio
iodepth=8
direct=1
invalidate=1
ioscheduler=noop
Let's compare the two—some information has been removed in an effort not to clutter the output.
First, the synchronous benchmark:
[oracle@server1 fio-2.1]$ ./fio rand-read-sync.fio
random-read-sync: (g=0): rw=randread, bs=8K-8K/8K-8K/8K-8K, ioengine=sync, iodepth=8
fio-2.1
Starting 1 process
Jobs: 1 (f=1): [r] [100.0% done] [39240KB/0KB/0KB /s] [4905/0/0 iops] [eta 00m:00s]
random-read-sync: (groupid=0, jobs=1): err= 0: pid=4206: Mon May 27 23:03:22 2013
read : io=1024.0MB, bw=39012KB/s, iops=4876, runt= 26878msec
clat (usec): min=71, max=218779, avg=203.77, stdev=605.20
lat (usec): min=71, max=218780, avg=203.85, stdev=605.20
clat percentiles (usec):
| 1.00th=[ 189], 5.00th=[ 191], 10.00th=[ 191], 20.00th=[ 193],
| 30.00th=[ 195], 40.00th=[ 197], 50.00th=[ 205], 60.00th=[ 207],
| 70.00th=[ 209], 80.00th=[ 211], 90.00th=[ 213], 95.00th=[ 215],
| 99.00th=[ 225], 99.50th=[ 233], 99.90th=[ 294], 99.95th=[ 318],
| 99.99th=[ 382]
bw (KB /s): min=20944, max=39520, per=100.00%, avg=39034.87, stdev=2538.87
lat (usec) : 100=0.08%, 250=99.63%, 500=0.29%, 750=0.01%, 1000=0.01%
lat (msec) : 4=0.01%, 20=0.01%, 250=0.01%
cpu : usr=0.71%, sys=6.17%, ctx=131107, majf=0, minf=27
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=131072/w=0/d=0, short=r=0/w=0/d=0
Run status group 0 (all jobs):
READ: io=1024.0MB, aggrb=39012KB/s, minb=39012KB/s, maxb=39012KB/s,
mint=26878msec, maxt=26878msec
Disk stats (read/write):
sda: ios=130050/20, merge=0/4, ticks=25188/12, in_queue=25175, util=94.12%
The important information here is that the test itself took 26,878 milliseconds to complete, and the storage device
completed an average of 4,876 I/O operations per second for an average bandwidth of 39,012KB/s. Latencies are
broken down into scheduling latency (not applicable for synchronous I/O— you will see it in the below output) and
completion latency. The last number, recorded as “lat” in the output above, is the complete latency and should be the
sum of scheduling plus completion latency.
Other important information is that out CPU has not been terribly busy when it executed the benchmark, but
this is an average over all cores. The IO depths row shows the IO depth over the duration of the benchmark execution.
As you can see, the use of synchronous I/O mandates an I/O depth of 1. The “issued” row lists how many reads and
Search WWH ::




Custom Search