RDMA

RDMA_第1张图片
image.png

1. 什么是RDMA

RDMA(Remote Direct Memory Access)是一种硬件IO技术,通过该技术可以直接访问网络中另一台计算机内存中的数据。将传输协议固化于硬件,同时使用内核旁路(kernel bypass)的零拷贝技术来达到最小化系统开销,极大的降低了延迟时间,并且使CPU的负载几乎为零
关键技术:
kernel pass、zero copy、硬件IO
优点:

  1. 延迟很低
  2. 高吞吐、高效率
  3. 使用cpu资源很少

2. 缺点:

  1. rdma设计本身是为了高性能低延时,这个目标使得rdma对网络有苛刻的要求,就是网络不丢包,否则性能下降会很大,这对底层网络硬件提出更大的挑战,同时也限制了rdma的网络规模;相比而言,tcp对于网络丢包抖动的tolerance就大很多。可以认为,如果应用需要追求一定规模内的极限性能,则考虑rdma,如果应用追求的是更好的连接保证和丢包容忍,那tcp更合适。
  2. RDMA是通过硬件实现高带宽低时延,对CPU的负载很小。代价是硬件的使用和管理较为复杂,应用接口是全新的。不能说某个场景不适合使用,只能说收益可能没有那么大。而对时延敏感,还有CPU重负载的应用都会有很好的收益,比如传输量大的TCP应用,交互性的问答式连接。

3. 其他

  1. 内核旁路
    内核旁路是当你管理自己,在用户空间,网络堆栈和硬件的东西。简单理解就是摆脱了内核控制,在用户空间可以直接操作硬件。

你可能感兴趣的:(RDMA)