Re: rdma ioengine

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

 



Thanks, Jens. That works. I did a little more code alignment for more
comfortable reading, and it's attached. (Yahoo mail replaced the
previous patch some white spaces :-)

Here is some sample test result. RDMA memory semantic is one side
operation which means the remote side doesn't know what's the
throughput without extra notification. Now, the client only send the
finish message to the server side after transfer completion, so the
server side statistics for memory semantic are empty.


Memory semantic: RDMA_WRITE

---
Client job file:
# Example rdma client job

[global]
ioengine=rdma
filename=192.168.2.4/18301/RDMA_WRITE
bs=1m
size=100g

[sender]
rw=write
iodepth=1
iodepth_batch_complete=1


$ ./fio examples/rdmaio-client

sender: (g=0): rw=write, bs=1M-1M/1M-1M, ioengine=rdma, iodepth=1
fio 1.57
Starting 1 process
Jobs: 1 (f=1): [W] [100.0% done] [0K/2984M /s] [0 /2914  iops] [eta 00m:00s]
sender: (groupid=0, jobs=1): err= 0: pid=16035
  write: io=102400MB, bw=3016.5MB/s, iops=3016 , runt= 33947msec
    slat (usec): min=0 , max=9 , avg= 0.65, stdev= 0.50
    clat (usec): min=313 , max=36473 , avg=328.97, stdev=533.22
     lat (usec): min=316 , max=36474 , avg=329.83, stdev=533.22
    bw (KB/s) : min=2693120, max=3190784, per=100.00%, avg=3088837.25,
stdev=122970.35
  cpu          : usr=1.41%, sys=0.38%, ctx=102435, majf=0, minf=11
  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 r/w/d: total=0/102400/0, short=0/0/0
     lat (usec): 500=99.96%, 750=0.01%
     lat (msec): 4=0.01%, 10=0.01%, 20=0.01%, 50=0.03%

Run status group 0 (all jobs):
  WRITE: io=102400MB, aggrb=3016.5MB/s, minb=3088.9MB/s,
maxb=3088.9MB/s, mint=33947msec, maxt=33947msec


Server job file:# Example rdma server job

[global]
ioengine=rdma
filename=192.168.2.4/18301
bs=1m
size=100g

[receiver]
rw=read
iodepth=16

$ ./fio examples/rdmaio-server
receiver: (g=0): rw=read, bs=1M-1M/1M-1M, ioengine=rdma, iodepth=16
fio 1.57
Starting 1 process
Jobs: 1 (f=1): [R] [477.8% done] [0K/0K /s] [0 /0  iops] [eta
1158050441d:06h:59m:42s]
receiver: (groupid=0, jobs=1): err= 0: pid=4852
  cpu          : usr=0.00%, sys=0.00%, ctx=0, majf=0, minf=0
  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=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued r/w/d: total=1/0/0, short=0/0/0



Run status group 0 (all jobs):



Memory semantic: RDMA_READ

---
Client job file:

# Example rdma client job

[global]
ioengine=rdma
filename=192.168.2.4/18301/RDMA_READ
bs=1m
size=100g

[sender]
rw=write
iodepth=1
iodepth_batch_complete=1


$ ./fio examples/rdmaio-client
sender: (g=0): rw=write, bs=1M-1M/1M-1M, ioengine=rdma, iodepth=1
fio 1.57
Starting 1 process
Jobs: 1 (f=1): [W] [100.0% done] [0K/3049M /s] [0 /2977  iops] [eta 00m:00s]
sender: (groupid=0, jobs=1): err= 0: pid=28516
  write: io=102400MB, bw=2968.2MB/s, iops=2968 , runt= 34500msec
    slat (usec): min=0 , max=8 , avg= 0.68, stdev= 0.49
    clat (usec): min=314 , max=37021 , avg=334.32, stdev=123.70
     lat (usec): min=315 , max=37028 , avg=335.20, stdev=123.72
    bw (KB/s) : min=2738176, max=3049472, per=100.03%, avg=3040225.88,
stdev=38989.13
  cpu          : usr=1.15%, sys=0.43%, ctx=102437, majf=0, minf=11
  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 r/w/d: total=0/102400/0, short=0/0/0
     lat (usec): 500=99.98%, 750=0.01%, 1000=0.01%
     lat (msec): 2=0.01%, 10=0.01%, 20=0.01%, 50=0.01%

Run status group 0 (all jobs):
  WRITE: io=102400MB, aggrb=2968.2MB/s, minb=3039.4MB/s,
maxb=3039.4MB/s, mint=34500msec, maxt=34500msec



Server job file is the same as RDMA_WRITE.
$ ./fio examples/rdmaio-server
receiver: (g=0): rw=read, bs=1M-1M/1M-1M, ioengine=rdma, iodepth=16
fio 1.57
Starting 1 process
Jobs: 1 (f=1): [R] [683.3% done] [0K/0K /s] [0 /0  iops] [eta
1158050441d:06h:59m:41s]
receiver: (groupid=0, jobs=1): err= 0: pid=6036
  cpu          : usr=0.00%, sys=0.00%, ctx=0, majf=0, minf=0
  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=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued r/w/d: total=1/0/0, short=0/0/0



Run status group 0 (all jobs):



Channel Semantic: SEND/RECV

----

Client job file:

# Example rdma client job

[global]
ioengine=rdma
filename=192.168.2.4/18301/SEND
bs=1m
size=100g

[sender]
rw=write
iodepth=1
iodepth_batch_complete=1
$ ./fio examples/rdmaio-client
sender: (g=0): rw=write, bs=1M-1M/1M-1M, ioengine=rdma, iodepth=1
fio 1.57
Starting 1 process
Jobs: 1 (f=1): [W] [100.0% done] [0K/3099M /s] [0 /3025  iops] [eta 00m:00s]
sender: (groupid=0, jobs=1): err= 0: pid=29015
  write: io=102400MB, bw=2995.7MB/s, iops=2995 , runt= 34183msec
    slat (usec): min=0 , max=6 , avg= 0.54, stdev= 0.51
    clat (usec): min=313 , max=36231 , avg=331.38, stdev=573.03
     lat (usec): min=317 , max=36232 , avg=332.13, stdev=573.04
    bw (KB/s) : min=2536864, max=3178496, per=100.02%, avg=3068169.09,
stdev=146953.37
  cpu          : usr=1.40%, sys=0.46%, ctx=102446, majf=0, minf=10
  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 r/w/d: total=0/102400/0, short=0/0/0
     lat (usec): 500=99.95%, 750=0.01%, 1000=0.01%
     lat (msec): 2=0.01%, 20=0.01%, 50=0.04%

Run status group 0 (all jobs):
  WRITE: io=102400MB, aggrb=2995.7MB/s, minb=3067.6MB/s,
maxb=3067.6MB/s, mint=34183msec, maxt=34183msec


Server job file is the same as RDMA_WRITE.
$ ./fio examples/rdmaio-server
receiver: (g=0): rw=read, bs=1M-1M/1M-1M, ioengine=rdma, iodepth=16
fio 1.57
Starting 1 process
Jobs: 1 (f=1): [R] [100.0% done] [3012M/0K /s] [2941 /0  iops] [eta 00m:00s]
receiver: (groupid=0, jobs=1): err= 0: pid=6065
  read : io=102400MB, bw=2996.9MB/s, iops=2996 , runt= 34178msec
    slat (usec): min=0 , max=6 , avg= 0.42, stdev= 0.50
    clat (usec): min=346 , max=72370 , avg=5337.87, stdev=2383.69
     lat (usec): min=354 , max=72370 , avg=5338.50, stdev=2383.69
    bw (KB/s) : min=2534552, max=3178496, per=100.02%, avg=3068616.97,
stdev=146695.33
  cpu          : usr=0.99%, sys=0.39%, ctx=102428, majf=0, minf=11
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=100.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.1%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued r/w/d: total=102400/0/0, short=0/0/0
     lat (usec): 500=0.01%, 750=0.01%
     lat (msec): 2=0.01%, 4=0.01%, 10=99.36%, 50=0.61%, 100=0.02%

Run status group 0 (all jobs):
   READ: io=102400MB, aggrb=2996.9MB/s, minb=3067.2MB/s,
maxb=3067.2MB/s, mint=34178msec, maxt=34178msec


Yufei
.

----- Original Message -----
From: Jens Axboe <jaxboe@xxxxxxxxxxxx>
To: ren yufei <renyufei83@xxxxxxxxxxxx>
Cc: "fio@xxxxxxxxxxxxxxx" <fio@xxxxxxxxxxxxxxx>
Sent: Monday, August 1, 2011 4:03 AM
Subject: Re: rdma ioengine

On 2011-08-01 09:35, Jens Axboe wrote:
> On 2011-08-01 03:47, ren yufei wrote:
>> Hi Jens,
>>
>> I have hacked an rdma ioengine based on OFED for fio which could test both rdma memory semantic (rdma_write/rdma_read) and channel semantic (send/recv). Would you like to merge this engine into fio?
>>
>> notes
>> 1) RDMA engine works in IB, iWarp and RoCE.
>> 2) RDMA engine is disable by default. To enable it, execute the following before compile:
>> $ export EXTFLAGS="-DFIO_HAVE_RDMA"
>> $ export EXTLIBS="-libverbs -lrdmacm"
>
> Exciting! I'd love to apply this, but somewhere along the way the patch
> has been white space damaged. Can you resend this patch gzip'ed or
> something like that, to ensure that it doesn't get modified along the
> way? Bonus points if you re-indent, fio uses real tabs and not 4 spaces.
> Not a huge problem, I'll just lindent it as-is if need be.
>
> It'd be great to have a small job file included as well for testing, and
> an example of a result using that job file.

And you already did include example job files, excellent. I applied your
patch, the mangling wasn't too bad. I also re-indented it with indent,
so it conforms to the fio coding style. Please double check the result!
Thanks.

-- 
Jens Axboe

Attachment: rdma-indent.patch.tar.gz
Description: GNU Zip compressed data


[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