fio results show sequential reads and writes better for network block device than local block device?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi 
I am trying to compare the performance of locally attached block device (SSD) with a network attached block device SSD)and I am seeing results for sequential reads and writes using that I cannot explain. The other results (random reads, writes etc) are as expected, i.e. local is better than remote.

Here is my setup
- Two machines connected back-to-back by a 10G link
- Running RHEL 6.4 (Santiago), 2.6.32-358.6.1.el6.x86_64
- Running nbd v2.9.20 (http://nbd.sourceforge.net/)
- Running fio v2.1.2
- Using identical SSD on both machines - Samsung 840 PRO, 128G
- all 128G exported as rw volume

I have my fio commands and output (only relevant portions) below. I cannot understand how the network device can have high throughput than local device. I see that when I use smaller block sizes to measure iops, the numbers are as expected (local > remote). 
Has anyone tried fio on nbd? does fio measure a transaction done when it sees the block-io request handed off to the virtual device and assume TCP will take care of completing the transaction? I can see that it might do so for posted operations such as writes, but reads?

Any clues?
thx,
Kishore


-------------------------------------------------------------------------------------------------------------

# Sequential Write Bandwidth test: Locally attached SSD
fio --name=writebw --filename=/dev/sdb --direct=1 --rw=write --bs=1m --numjobs=4 --iodepth=32 --direct=1 --iodepth_batch=16 --iodepth_batch_complete=16 --runtime=300 --ramp_time=5 --norandommap --time_based --ioengine=libaio --group_reporting > sdb_seqwrite_bw.out

---- output----
writebw: (g=0): rw=write, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=32
...
writebw: (groupid=0, jobs=4): err= 0: pid=18689: Tue Nov 19 10:27:08 2013
  write: io=73932MB, bw=252024KB/s, iops=245, runt=300393msec
    slat (msec): min=1, max=262, avg=96.57, stdev=62.94
    clat (msec): min=74, max=808, avg=423.21, stdev=90.93
     lat (msec): min=194, max=912, avg=519.78, stdev=68.03
...
#### Sequential Write Bandwidth test: Network attached SSD (nbd0 is exposed as a NetworkBlockDevice)
fio --name=writebw --filename=/dev/nbd0 --direct=1 --rw=write --bs=1m --numjobs=4 --iodepth=32 --direct=1 --iodepth_batch=16 --iodepth_batch_complete=16 --runtime=300 --ramp_time=5 --norandommap --time_based --ioengine=libaio --group_reporting > ndb0_seqwrite_bw.out

---- output----
writebw: (g=0): rw=write, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=32
...
writebw: (groupid=0, jobs=4): err= 0: pid=8570: Mon Nov 18 18:18:34 2013
  write: io=142764MB, bw=487036KB/s, iops=475, runt=300163msec
    slat (msec): min=1, max=865, avg=134.08, stdev=70.20
    clat (msec): min=35, max=865, avg=134.61, stdev=70.20
     lat (msec): min=148, max=1029, avg=268.65, stdev=103.63
...
#-----------------------------------------------------------------------------
#### Sequential Read Bandwidth test: Locally attached SSD

fio --name=readbw --filename=/dev/sdb --direct=1 --rw=read --bs=1m --numjobs=4 --iodepth=32 --direct=1 --iodepth_batch=16 --iodepth_batch_complete=16 --runtime=300 --ramp_time=5 --norandommap --time_based --ioengine=libaio --group_reporting > sdb_seqread_bw.out

---- output----
readbw: (g=0): rw=read, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=32
...
readbw: (groupid=0, jobs=4): err= 0: pid=18943: Tue Nov 19 10:47:32 2013
  read : io=81596MB, bw=278285KB/s, iops=271, runt=300247msec
    slat (msec): min=2, max=181, avg=96.16, stdev=48.97
    clat (msec): min=58, max=1161, avg=375.17, stdev=192.42
     lat (msec): min=223, max=1335, avg=471.37, stdev=197.63
...
#### Sequential Read Bandwidth test: Network attached SSD (nbd0 is exposed as a NetworkBlockDevice)

fio --name=readbw --filename=/dev/ndb0 --direct=1 --rw=read --bs=1m --numjobs=4 --iodepth=32 --direct=1 --iodepth_batch=16 --iodepth_batch_complete=16 --runtime=300 --ramp_time=5 --norandommap --time_based --ioengine=libaio --group_reporting > ndb0_seqread_bw.out

---- output----
readbw: (g=0): rw=read, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=32
...
readbw: (groupid=0, jobs=4): err= 0: pid=8781: Mon Nov 18 18:38:56 2013
  read : io=115692MB, bw=394691KB/s, iops=385, runt=300155msec
    slat (msec): min=77, max=405, avg=165.67, stdev=25.84
    clat (msec): min=39, max=405, avg=166.11, stdev=25.58
     lat (msec): min=168, max=621, avg=332.26, stdev=28.49
...
#-----------------------------------------------------------------------------
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux