98300

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz

了解 InfiniBand 和 RDMA 技术

[复制链接]
发表于 2019-9-27 14:22:55 | 显示全部楼层 |阅读模式
InfiniBand 是指两种完全不同的东西。一个是 InfiniBand 网络的物理链接层协议,另一个是高级编程 API,名为 InfiniBand Verbs API。InfiniBand Verbs API 是一种远程直接内存访问(RDMA)技术的实施。
RDMA 通讯与一般 IP 通讯不同,原因是他们会绕过通讯过程中的内核干扰,并极大减少一般处理网络通讯所需的 CPU 消耗。在典型的 IP 数据传输中,机器 A 中的应用程序 X 会向机器 B 中的应用程序 Y 发送同样的数据。作为传输的一部分,机器 B 的内核必须首先接收数据,解码数据包标头,确定该数据属于应用程序 Y,然后唤醒应用程序 Y,等待应用程序 Y 在内核中执行读取 syscall,然后必须手动将该数据从内核的自主内部内存空间复制到应用程序 Y 提供的缓存中。这个过程意味着大多数网络流量都必须在系统的主内存总线间至少复制两次(一次是主机适配器使用 DMA 将该数据放到内核提供的内存缓存中,另一次是内核将该数据移动到应用程序的内存缓存中),同时也意味着计算机必须执行大量上下文切换,以便在内核上下文和应用程序 Y 上下文之间进行切换。这些操作都会在网络通讯处于极高频率时造成极高的系统 CPU 负载。
RDMA 协议可让机器中的主机适配器了解网络何时会有数据包,那个应用程序应该接收该数据包,以及该数据应进入该应用程序内存空间的那个部分。这样就不会向内核发送该数据包并进行处理,然后再复制到用户的应用程序内存,而是将该数据包直接放到应用程序的缓存中,没有任何进一步的干预。这样就可以极大减少高速网络通讯的负载。但大多数 IP 联网应用程序依赖的标准伯克利套接字 API 无法实现此功能,因此必须提供其自己的 API,即 InfiniBand Verbs API,同时必须在应用程序可直接使用 RDMA 技术前将其移植到这个 API。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


QQ|Archiver|手机版|小黑屋|番茄论坛

GMT+8, 2020-7-3 21:53 , Processed in 0.119231 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表