NFS TCP/RDMA 帳ϴ.

dogbull   
   ȸ 5320   õ 0    

TCP프로토콜 NFS(ㄱ)와 RDMA프로토콜 NFS(ㄴ)를 비교하여 보았습니다.

작은 블록사이즈(1k)의 fio 명령 수행 결과(a)는 RDMA프로토콜(b)이 TCP프로토콜(c) 보다 약 2.3배의 속도로 측정되었습니다.
하지만,
큰 블록사이즈(128k)의 fio 명령 수행 결과(b)는 TCP프로토콜(f)이 RDMA프로토콜(e) 보다 약 1.25배의 속도로 측정되었습니다.

RDMA프로토콜이 항상 더 높은 속도를 낼 것이라 생각했는데,
TCP프토토콜이 더 높은 속도가 나온 것이 이상합니다.

RDMA프로토콜과 TCP프로토콜의 wsize와 rsize가 다른데 이것 때문일까요?
TCP프로토콜은 NFS wsize/rsize 최대값인 1MB로 되어 있는데,
RDMA프로토콜은 wsize/rsize 최대값이 변경이 안됩니다(ㄷ).

긴 글 읽어주셔서 감사합니다.


(ㄱ) TCP프로토콜 NFS 마운트.
mount -t nfs 10.2.43.1:/mnt/disk1/data1 /mnt/nfs/

(ㄴ) RDMA프로토콜 NFS마운트.
mount -t nfs -o proto=rdma,port=20049 10.2.43.1:/mnt/disk1/data2 /mnt/nfs/

(ㄷ) RDMA프로토콜 NFS마운트 및 rsize/wsize 값 변경 시도( 변경 안됨).
root@pxnode3:/mnt# mount -t nfs -o proto=rdma,port=20049,wsize=1048576,rsize=1048576 10.2.43.1:/mnt/disk1/data2 /mnt/nfs/
root@pxnode3:/mnt# mount | grep nfs
10.2.43.1:/mnt/disk1/data2 on /mnt/nfs type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=rdma,port=20049,timeo=600,retrans=2,sec=sys,clientaddr=10.2.43.2,local_lock=none,addr=10.2.43.1)

(a) 블록사이즈 1k
 fio -rw=randrw --bs=1k --numjobs=4 --iodepth=8 --runtime=30 --time_based --loops=1 --ioengine=libaio --direct=1 --invalidate=1 --fsync_on_close=1 --randrepeat=1 --norandommap --exitall --name task1 --filename=/mnt/nfs/fio-test.dat --size=10000000

(b) 명령어(a) 를 이용한, RDMA 결과. 약 68MB/s
Run status group 0 (all jobs):
   READ: io=2538.9MB, aggrb=86655KB/s, minb=21654KB/s, maxb=21682KB/s, mint=30001msec, maxt=30001msec
  WRITE: io=2539.7MB, aggrb=86683KB/s, minb=21653KB/s, maxb=21690KB/s, mint=30001msec, maxt=30001msec

(c) 명령어(a) 를 이용한, TCP 결과. 약 29MB/s
Run status group 0 (all jobs):                                            
   READ: io=870393KB, aggrb=29011KB/s, minb=7235KB/s, maxb=7267KB/s, mint=30001msec, maxt=30002msec
  WRITE: io=870814KB, aggrb=29025KB/s, minb=7241KB/s, maxb=7268KB/s, mint=30001msec, maxt=30002msec

r(d) 블록사이즈 128k
 fio -rw=randrw --bs=128k --numjobs=4 --iodepth=8 --runtime=30 --time_based --loops=1 --ioengine=libaio --direct=1 --invalidate=1 --fsync_on_close=1 --randrepeat=1 --norandommap --exitall --name task1 --filename=/mnt/nfs/fio-test.dat --size=10000000

(e) 명령어(d)를 이용한, RDMA 결과. 약 724MB/s
Run status group 0 (all jobs):
   READ: io=21226MB, aggrb=724457KB/s, minb=176717KB/s, maxb=184922KB/s, mint=30002msec, maxt=30002msec
  WRITE: io=21265MB, aggrb=725805KB/s, minb=178714KB/s, maxb=183019KB/s, mint=30002msec, maxt=30002msec

(f) 명령어(d)를 이용한, TCP 결과. 약 909MB/s
Run status group 0 (all jobs):
   READ: io=26648MB, aggrb=909489KB/s, minb=226267KB/s, maxb=229071KB/s, mint=30002msec, maxt=30003msec
  WRITE: io=26732MB, aggrb=912361KB/s, minb=226895KB/s, maxb=228943KB/s, mint=30002msec, maxt=30003msec


ª ϼ ϰ.
2019-10
RDMA ΰ?....
     
ĴĴ 2019-10
nfs over rdma  .
          
2019-10
׷ϱ ޸ ̷Ʈ ̰ ̳Ĵ°.
TCP/UDP/ICMP/GRE/ Ÿ ̷ ̶ ϰ RDMA ɿ ϴ°ɷ ƴµ ̰ ̶ ԰ Īϴ װ °̴ϴ.
     
dogbull 2019-10
https://www.chelsio.com/wp-content/uploads/resources/T5-NFSoRDMA-vs-NIC-vs-IB-FDR.pdf
Overview "The Remote DMA (RDMA) protocol allows efficient....." ֳ׿.
epowergate 2019-10
Nfsordma ϴµ fio ioengine libaio. ϸ ʵ
manpage ø ֽϴ.
׸ rdma protocol ½ϴ.  Dma ε rdma ƴҸ . 
׷ ޸ ̷Ʈ. ?
     
2019-10
Ʈ̷Ʈ ҿ ׸ȰŰ Ű ãƺ ̶ ϰ ֽϴ. ̶ ̳ ̿ ǴƼó ܵ ؾ ˴ϴ. Ʈũ CPU ó ذǵ ɸ CPU ϸ ʰ ̷Ʈ ޸𸮱 ׼ ϰԲ ϴ°ǵ Եȴٴ° ȵ.
׷ rdma α׷ֵ ; ˴ϴ.
          
epowergate 2019-10
ذ ʴµ...
ϴ Protocol Network űԾุ ƴմϴ.  SATA Controller SATA DISK Ծ൵ Protocol Դϴ.  CPU Register <=> L1 Cache <=> L2 Cache ... Protocol Դϴ.

¦ ٲ㼭 ϸ TCP/IP ϴ Network α׷ġ TCP ϴ° () ϴ. ڽŵ κ α׷ 鶧 TCP/IP α׷ §ٰ µ TCP IP Ѵٱ ٴ Socket Programming ϴ°.  SOCKET TCP ϴ ű.
׳ ܼϰ TCP ׳ ״ ϱ Ʊ ׷̴ϴ.

RDMA Ծ ִµ ϱⰡ ϴ.  ̽󿤳ѵ tutorial ʾ.
𸣰ڴµ (2001~2003) VAPI CM RDMA Programming ߾ϴ.
Ŀ i-Warp (IBM ǥ ̴ϴ) RDMA ϴ API/SDK/Protocoḻ.
׳ InfiniBand r ؾϴµ α׷ ġ SDP IPoIB ؼ RDMA Ѵٰ ߴ (ȸ)鵵 ־ϴ.  (ݵ ֽϴ).
     
dogbull 2019-10
մϴ. manpage Ⱥ 帰 β׿. Ȯ ڽϴ.
          
epowergate 2019-10
FIO manpage Žñ մϴ.
ϴ ɼǵ ð ִµ ׷ ɼǵ ν.
õǻ 2019-10
п ˰ԵǾϴ. RDMA ̿غ߰ڽϴ.
RDMA(Remote Direct Memory Access) Ʈũ ޸ ۿ Դϴ. ü, RDMA CPU ʰ ޸𸮿/޸𸮷 ͸ ϴ մϴ. RDMA ġ ɵ ϹǷ 纻 CPU ۾ پϴ. RDMA ȣƮ CPU δ ƴ϶ ȣƮ ޸ I/O յ ٿ ݴϴ.
[ó] RDMA(Remote Direct Memory Access)|ۼ ϴþƷ
     
epowergate 2019-10
ǥ ¦ ƲȽϴ.
"RDMA(Remote Direct Memory Access) Ʈũ ޸ ۿ "
ƴ϶
"޸𸮰 Ʈũ " ½ϴ.


QnA
Page 3232/5752
2015-12   1892965   ް
2014-05   5378728   1
2012-02   5273   oȿo
2015-07   5273   oȿo
2015-11   5273  
2008-10   5273  
2016-06   5273   NeOpLE
2017-08   5273   Ķ
2016-12   5273   B
2005-11   5273  
2017-12   5273   ޸𸮴
2015-03   5273  
2007-03   5273  
2015-09   5272   ̹
2012-12   5272   ǿ
2014-08   5272   ǿ
2016-11   5272   ǹ̡
2013-07   5272   ̴
2014-08   5272   Ÿȣ
2023-03   5272   õ
2016-04   5272   ǹַο
2021-04   5271   ó