美文网首页
RDMA Vs DPDK

RDMA Vs DPDK

作者: 异客z | 来源:发表于2017-10-25 21:15 被阅读0次

    DPDK

    DPDK网络层:

    硬件中断->放弃中断流程;

    用户层通过设备映射取包->进入用户层协议栈->逻辑层->业务层;


    核心技术:

    1)将协议栈上移到用户态,利用UIO技术直接将设备数据映射拷贝到用户态

    2)利用大页技术,降低TLB cache miss,提高TLB访问命中率

    3)通过CPU亲和性,绑定网卡和线程到固定的core,减少cpu任务切换

    4)通过无锁队列,减少资源的竞争


    优势:

    1)减少中断次数;

    2)减少内存拷贝次数

    3)绕过linux的协议栈,用户获得协议栈的控制权,能够定制化协议栈以降低复杂度;


    劣势:

    1)内核栈转移至用户层增加了开发成本

    2)低负荷服务器不实用,会造成cpu空转


    RDMA

    网卡硬件收发包并进行协议栈封装/解析,然后将数据存放到指定内存地址,而不需要CPU干预。


    核心技术:

    协议栈硬件offload


    优势:

    1)协议栈offload,解放cpu

    2)减少了中断和内存拷贝,降低时延

    3)高带宽


    劣势:

    1)特定网卡才支持,成本开销相对较大;

    2)RDMA提供了完全不同于传统网络编程的API,一般需要对现有APP进行改造,引入额外开发成本


    总结

    相同点:

    1)两者均为kernel bypass技术,可以减少中断次数,消除内核态到用户态的内存拷贝;

    相异点:

    1)DPDK是将协议栈上移到用户态,而RDMA是将协议栈下沉到网卡硬件,DPDK仍然会消耗CPU资源;

    2)DPDK的并发度取决于CPU核数,而RDMA的收包速率完全取决于网卡的硬件转发能力

    3)DPDK在低负荷场景下会造成CPU的无谓空转,RDMA不存在此问题

    4)DPDK用户可获得协议栈的控制权,可自主定制协议栈;RDMA则无法定制协议栈

    相关文章

      网友评论

          本文标题:RDMA Vs DPDK

          本文链接:https://www.haomeiwen.com/subject/wxpcpxtx.html