前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于智能网卡, 您需要了解的相关的技术-DPU相关技术

关于智能网卡, 您需要了解的相关的技术-DPU相关技术

原创
作者头像
ssbandjl
发布2024-02-11 16:56:33
1870
发布2024-02-11 16:56:33
举报
文章被收录于专栏:DPUDPU

概述

论文首次上线:2021 年 3 月 30 日

网络接口卡 (NIC) 是现代高速网络系统的基本组件,支持 100 Gbps 的速度并提高可编程性。 将计算从服务器的 CPU 卸载到 NIC 可以释放大量服务器的 CPU 资源,这使得 NIC 成为提供有竞争力的云服务的关键。 因此,了解将网络应用程序卸载到 NIC 的性能优势和局限性至关重要。 在本文中,我们测量了来自全球最大 NIC 供应商之一的四种不同 NIC 的性能,支持 100 Gbps 和 200 Gbps。 我们表明,虽然当今的 NIC 可以轻松支持数百千兆位的吞吐量,但频繁执行 NIC 数据包分类器的更新操作(如网络地址转换器 (NAT) 和负载均衡器对每个传入连接所做的操作)会导致吞吐量急剧下降,高达 70 Gbps 或完全拒绝服务。 我们的结论是,所有测试的 NIC 都无法支持需要跟踪大量频繁到达的传入连接的高速网络应用程序。 此外,我们还展示了各种反直觉的性能假象,包括使用多个表对数据包流进行分类的性能影响

关键词:网络接口卡·硬件分类器·卸载·规则操作·性能·基准测试·100 GbE

简介

随着网络接口卡 (NIC) 速度的急剧增长,优化 I/O 操作对于支持现代应用程序至关重要。 最近的工作证明,处理 40 Gbps 的传输控制协议 (TCP) 流量需要通用服务器上大约 20%-60% 的 CPU 资源 [10,31,48]。 这些通信开销消耗了原本可用于运行客户应用程序的 CPU 周期,最终导致网络运营商的部署成本高昂。这是我们在 PAM’21 上发表的论文的预印本版本。 最终的经过身份验证的版本可在线获取:https://doi.org/10.1007/978-3-030-72582-2_19

将网络操作卸载到 NIC 是一种实用的方法,可以部分减轻 CPU 的管理负担(部分) 网络相关状态。 此类卸载的示例包括 TCP 优化,例如大型接收卸载 (LRO) 和 TCP 分段卸载 (TSO) [1]。 NIC 越来越多地配备内置现场可编程门阵列 (FPGA) 或网络处理器内核,可用于将计算从主机 CPU 直接卸载到 NIC 中。 此类 NIC 称为 SmartNIC。 对 SmartNIC 技术的多项初步调查表明,对于卸载网络堆栈 [2,10,30,31,32]、网络功能 [3,18,25,43,4]、键值存储 [7,26,28] 具有潜在的好处 ]、数据包调度器 [44]、神经网络 [42] 以及其他 [21,38]。 尽管(智能)NIC 在当今系统中的相关性越来越大,但很少有研究关注剖析 SmartNIC 的性能、将其与前代产品进行比较,并为部署 NIC 卸载应用程序(重点关注数据包分类)提供指南

我们的目标

在这项工作中,我们研究了广泛部署的数据包分类操作的(智能)NIC 的性能。 数据包分类的一个关键挑战是分类器能够快速(i)将传入数据包与其数据包处理操作相匹配,以及(ii)调整数据包分类器的状态,例如通过插入新规则或更新现有规则。 例如,考虑一个云负载均衡器 (LB),它跟踪传入连接与处理这些连接的后端服务器之间的映射。 LB 可以利用 NIC 的数据包分类器将传入连接标识符的 TCP/IP 5 元组映射到其相应的服务器。 由于大型数据中心中的单个集群每秒可能接收超过 1000 万个新连接[29],因此支持数据包分类器的快速更新至关重要,从而实现高吞吐量和低可预测延迟。 我们对数据包分类器的研究揭示了当今(智能)NIC 中意想不到的性能瓶颈,并为希望将动态数据包分类器卸载到(智能)NIC 的研究人员和从业者提供了指导

发现

我们分析了速度在 100 Gbps 到 200 Gbps 范围内的四种不同 NIC 的性能。 我们的主要发现总结在表 1 中。简而言之,我们表明,当 i) 转发平面更新和 ii) 数据包与 NIC 中的多个转发表匹配时,测试的 NIC 的转发吞吐量急剧下降。 此外,我们设计了一种有效的内存更新机制,可以减轻更新规则对转发吞吐量的影响。 重现本文实验的代码以及显示所有四个受测 NIC 的实验评估的补充图表均已公开可用 [17]

表1: 本文的主要发现(Finding)及影响(Implication)

发现

影响

NIC 表层次结构的某些部分无法产生预期的转发性能(第 3.1 节)

吞吐量从 100 Gbps 下降到 20 Mbps,延迟增加数倍(图 2a 和图 2c)

在 NIC 表链中统一分布规则会导致性能损失(第 3.1 节)

使用 16 个表时,吞吐量从 100 Gbps 下降到 13 Gbps,延迟增加 10 倍(图 2b 和图 2d)

在处理流量时批量更新 NIC 分类器会导致 NIC 暂时不可用(第 3.1 节)

随着安装规则数量的增加,100% 数据包丢失长达数秒(图 3)

在处理流量时频繁更新 NIC 分类器会导致性能大幅下降(第 3.1 节)

吞吐量从 100 Gbps 下降到 30 Gbps,延迟增加约 2 倍(图 4)

从单独的核心更新 NIC 分类器不会降低 NIC 性能 (§3)

在核心 0 上处理流量并从核心 1 更新规则时不会影响性能(图 3 和图 4)

Internet 协议选择(即 IPv4 与 IPv6)会影响 NIC 规则安装率 (§3.2.1)

IPv6 规则插入速率比相应的 IPv4 速率快 5-181 倍或慢 12%,具体取决于所应用的 NIC 表层次结构的部分(图 5a-5b)

网络切片协议选择影响NIC规则安装率(第3.2.1节)

安装基于 VLAN 的规则比安装基于隧道的规则快 50%(图 5c)

NIC 规则更新操作是非原子的,并且依赖于顺序添加和删除(第 3.2.2 节)

对于需要大量更新的应用程序来说太慢了。 我们专用的更新 API 的执行速度提高了 80%(图 6)

测量方法

本节概述了用于进行实验的测试平台以及我们提取结果的方法

实验配置

测试床

本文描述的所有实验均使用图 1 所示的测试台。两台背对背互连的服务器,每台服务器均配有双路 16 核 Intel Xeonr Gold 6134 (SkyLake) CPU,主频为 3.2 GHz,内存为 256 GiB DDR4 随机存取存储器 (RAM),主频为 2666 MHz。 每个核心具有 2×32 KiB L1(指令和数据缓存)和 1 MiB L2 缓存,而每个插槽中的核心之间共享一个 25 MiB 末级缓存 (LLC)。 按照当今的最佳实践,所有服务器上都禁用超线程 [47],操作系统 (OS) 是带有 Linux 内核 v4.15 的 Ubuntu 18.04.5 发行版。 一台服务器充当流量生成器和接收器,而另一台服务器则充当被测设备 (DUT)

测试网卡

我们的研究重点是迄今为止商用现成 (COTS) 硬件中最广泛使用的 NIC 之一,如表 2 所示。此类 NIC 由 NVIDIA Mellanox 制造,以 100 Gbps 链路速度(或更高)运行 ,同时提供先进的处理能力。 我们还考虑了现有的 Intel NIC,例如 10 GbE 82599 [12] 和 40 GbE XL710 [13],但是这些 NIC 的运行链路速度要低得多,并且仅限于 8 K 流规则。 即将推出的 100 GbE Intel E810 系列网络适配器 [14] 提供基于三态内容可寻址内存 (TCAM) 的 16 K(屏蔽)过滤器,这距离使用 NVIDIA Mellanox NIC 测试的数百万条流规则的范围还很远。 此外,Intel NIC 的硬件限制是已知的,Intel 发布了相关的硬件数据表 [12,13,14]。 NVIDIA Mellanox 尚未披露此类信息; 因此,我们的研究揭示了这些流行 NIC 的未知方面,同时有助于了解同一系列 NIC 的性能如何演变

表2: 本文实验所用网卡的特性

除 NVIDIA Mellanox ConnectX-6 之外的所有 NIC 均使用 PCIe 3.0 x16 总线与服务器的 CPU 连接。 ConnectX-6 适配器使用两个 PCIe 3.0 x16 插槽。 BlueField NIC 是一款基于 ConnectX-5 适配器的 SmartNIC,还配备了 16 核 ARM 处理器,用于额外的 NIC 内流量处理。 我们简要描述 NVIDIA Mellanox NIC 的总体架构和差异。 所有 NIC 都有第一个表,称为表 0 或“根”表,可容纳 65 536 个规则条目。 除 ConnectX-4 之外的所有 NIC 都提供额外的高性能精确匹配表序列(支持可操作掩码),可用于将数据包分类从 CPU 大规模卸载到 NIC。 请注意,这些 NIC 不支持最长前缀匹配 (LPM); 相反,用户应该使用具有不同掩码的多个表的组合来实现 LPM。 这些表的容量仅受主机可用内存的限制,因此,考虑到现代服务器中有充足的 RAM,它们可以容纳更多数量的规则。 我们将这些额外表中的第一个表称为表 1,并注意任何后续表(即表 2,3 等)似乎都具有与表 1 相似的属性

图1: 测试台设置和测量方法

流量特点: 基于数据平面开发套件(DPDK)v20.11 [46]的多核流量生成器和接收器部署在测量服务器上,如图1所示。流量生成器分配了四个核心,它们注入 10K UDP 流以 100 Gbps 的轨迹。 每个流由 MTU 大小(即 1500 字节)的数据包组成。 该流量首先穿过 DUT,如果没有被丢弃,则返回到测量服务器,这次到达流量生成器的同一 CPU 插槽上的四个不同核心。 请注意,对于所有实验,测量服务器都使用相同的 100 GbE ConnectX-5 NIC 将流量注入 DUT。 这确保了在所有实验中只有 DUT 的 NIC 硬件可能会有所不同,因此实验结果之间的潜在差异仅取决于 DUT 中底层 NIC 的性能

测试: 每个实验执行5次; 除非另有说明,否则使用误差条或箱线图绘制收集到的测量值,其中可视化这 5 次迭代中获得的第 1 个、第 25 个、第 50 个(即中值)、第 75 个和第 99 个值。 测量服务器的流量接收器报告与测量服务器和 DUT 处的端到端吞吐量、延迟方差百分位数、每队列数据包和字节计数器、数据包丢失以及每个实验的持续时间相关的测量结果。 在报告延迟时,我们以 5Mpps (∼60 Gbps) 重复实验,避免链路速度成为 DUT 和流量生成器的瓶颈,从而确保延迟变化是由于 NIC 而不是队列中缓冲的数据包造成的

流表分析

本节对选定的 NIC 进行基准测试,重点关注与数据包分类器相关的三个不同方面。 首先,我们通过以下方式量化 NIC 硬件分类器的性能影响:(i) 规则数量不断增加,(ii) 托管这些规则的表数量不断增加,以及 (iii) 控件安装的更新越来越大或更频繁 平面(参见§3.1)。 其次,我们根据规则插入的延迟和吞吐量分析流规则插入/删除操作的性能(参见第 3.2.1 节)。 最后,在发现这些 NIC 不支持流规则修改后,我们评估了一种不同的策略,以在分析的 NIC 的数据包分类器中实现快速和原子规则更新(参见§3.2.2)

硬件分类性能

概述, 在本节中,我们将测量现代 NIC 在各种条件下的数据包分类性能。 首先,我们表明,当内存利用率超过 ∼85% 时,这些 NIC 的第一个表会丢弃几乎所有流量。 我们还表明,在这种情况下,所分析的 NIC 的数据包处理延迟表现出长尾(高达 120 毫秒)。 此外,将越来越多的规则分散到这些 NIC 中的四个或更多表中会导致吞吐量大幅下降(使用 4-16 个表时为 23-88%)。 最后,我们表明运行时对数据包分类器规则的修改会对 NIC 的吞吐量产生不利影响:我们观察到吞吐量减少了 70 Gbps(100 Gbps)

设想, 在以下实验中,DUT 使用第 2.1 节中描述的测试台运行单核转发网络功能 (NF)。 DUT 的 NIC 根据 NIC 中安装的流规则将输入帧调度到该 NF。 这些规则存储在 NIC 的默认“根”流表(即表 0)或非根表(即表 1-16)中。 我们区分这两个表类别,因为 NVIDIA Mellanox 明确提到表 0 具有有限数量的受支持流条目(即 216 个规则),而后者支持基于 NIC 和在用户级别运行的驱动程序之间的共享内存的更快 API。 我们仅显示 ConnectX-5 NIC 的结果,因为我们观察到所有其他 NIC 的定性相似趋势。 本节的其余部分提供实验证据来解决以下问题

问题1: 规则和/或表的数量是否会影响 NIC 的性能?

图 2 显示了 NVIDIA Mellanox ConnectX-5 NIC 的所有类型表的数据包分类器的性能,其中规则数量不断增加(x 轴)。 我们用表1-X表示我们在前X个非根表上统一安装转发规则的情况,即表1, ... 表 X. NIC 中安装的规则是简单精确匹配,生成的流量与一个完全匹配

图2: 表 0(左)和表 1-16(右)中具有不同数量的预装规则的基于硬件的 100 GbE NVIDIA Mellanox ConnectX-5 NIC 分类器的吞吐量和延迟(以对数刻度)

NIC 中安装的默认规则。 我们向 DUT 生成 8Mpps 的 1.5KB 数据包,相当于 100 Gbps。 图 2a 和 2c 显示,一旦表 0 的占用率超过 85%,其性能(即吞吐量和数据包处理延迟)就会急剧下降,因此最后 15% 的内存实际上不可用。 具体来说,吞吐量从100 Gbps下降到20 Mbps,而延迟则增加了几个数量级,从几十微秒增加到一百多毫秒。 我们观察到小数据包(即 64B)的吞吐量也有类似的下降,即使输入负载为 3.5 Gbps,这比测试中 NIC 的最大可达到吞吐量低 30 倍。 这证实了性能下降问题不是输入负载过多的结果,而是根表的设计

图 2b 和 2d 显示非根表(即表 1-16)比根表快得多。 具体来说,即使使用表 1 中的 2M 条目,NIC 使用非根表也能实现线速吞吐量和低可预测延迟。但是,将规则分布在越来越多的非根表中会导致性能大幅下降。 如图 2b 所示,对于大多数测试的规则集大小,当使用 16 个表时,NIC 无法实现超过 20 Gbps 的吞吐量,而访问这些表的相应延迟与单表情况相比增加了十倍,如下所示 如图2d所示

问题2: 分类器的更新是否会影响 NIC 的性能?

本实验的目的是了解数据包分类器规则集的运行时修改如何影响转发流量的吞吐量。 我们设想由两种不同用例驱动的两种类型的实验。 在第一个实验中,我们生成一批要安装到 NIC 中的规则插入。 这让人想起网络突然对触发许多规则更新的故障事件做出反应的场景。 例如,互联网链路故障可能会为从相邻网络接收到的数千个 IP 前缀(可能是数十个或数百个)生成 BGP 更新突发 [11]。 在第二个实验中,我们以给定的频率在数据包分类器中生成周期性规则插入。 此设置让人想起云数据中心第 4 层负载均衡器 (LB),其中每次新连接到达时,LB 都会将新规则插入到数据包分类器中。 我们注意到,根据云数据中心工作负载的实际连接大小分布,要安装的新规则数量范围为“Hadoop”工作负载的每秒 4K 到“缓存跟随器”和“Web 服务器”的每秒 36K 和 338K 工作负载,分别[41]。 在这两个实验中,我们生成数据包大小为 1.5 KB 的工作负载。 为了避免系统 CPU 的外部偏差,我们为每个实验测量两种不同的情况:在第一种情况(下面标记为“相同核心”)中,我们使用执行流量转发的相同 CPU 核心在 NIC 中安装规则。 在第二种情况(下面标记为“不同核心”)中,我们使用一个 CPU 核心进行流量转发,另一个 CPU 核心进行规则安装。 所有流量都与分类器中的单个规则匹配。 与之前的实验一样,我们对所有 NIC 都获得了类似的定性结果,并且仅显示 NVIDIA ConnectX-5 的结果

基于批量的更新会对性能产生不利影响

图 3 显示了表 0 和表 1 中 NIC 数据包分类器随时间(x 轴)实现的数据包处理吞吐量(y 轴),而 NIC 同时 (i) 接收 100 Gbps 的 1500 B 数据包工作负载,并且( ii) 插入一系列 1 到 100 K 之间的新规则(参见图例)

图 3:批量更新对 100 GbE NVIDIA Mellanox ConnectX-5 NIC 分类器性能的影响

如图 3a 所示,即使使用一批 1K 规则(参见绿色圆圈),NIC 在大约 300 毫秒内无法处理任何流量。 对于具有 MTU 大小的帧的 100 Gbps 链路,这意味着大约 2.5 M 帧的数据包丢失,而具有 64 B 帧的 100 Gbps 链路可能会丢失超过 40 M 帧。 将规则的批量大小增加到 10K 会导致大约 2 秒的较长故障(参见红色方块),而在 100K 规则(蓝色三角形)的情况下,NIC 即使在 6 秒后也不会恢复。 表 1 的停机时间为 500 ms,但问题仅在 100 K 规则的情况下才显现出来,如图 3b 所示。 另一方面,从专用核心安装批量更新不会影响 NF 的转发性能,如图 3c 和 3d 所示。 我们认为,这些结果对(i)网络功能的安全性(因为基于批量的更新可能成为拒绝服务攻击的载体)和(ii)高反应性网络控制器的设计产生深远的影响 ,例如,启用大型数据平面更新以实现快速故障转移恢复[6]

基于速率的更新会降低 NIC 转发能力。 从同一核心定期安装批量规则是 NAT 和第 4 层负载均衡器的典型操作,它们需要被动地安装与新传入连接匹配的规则。 从不同的核心安装规则使我们能够剖析由于 NIC 数据平面干扰而导致的性能下降。 图 4a 和 4b 显示了当我们以特定速率同时将规则插入 NIC 分类器时转发 NF 的吞吐量。 表 0 的插入速率范围为每秒 1 K 到 10 K 规则,表 1 的插入速率范围为每秒 10 K 到 500 K 规则。插入的规则不是响应新的传入连接而生成的,而是预先计算和插入的,无论 当新连接到达时。 结果表明,当从不同的核心插入规则时,吞吐量和平均延迟(另请参见图 4c 和 4d)基本上不受并行插入的影响。 然而,当插入是从运行转发 NF 的同一核心生成时,我们观察到性能显着下降。 具体来说,图 4a 和图 4b 显示,表 0 和表 1 中每秒插入 10K 和 500K 条规则时,吞吐量分别下降约 70 Gbps。 如图4c和4d所示,表0的延迟增加高达2倍以上,表1的延迟增加高达82%。这个结果表明,更新操作的瓶颈是NIC供应商提供的用于更新的标准API 转发表(需要较长时间,长时间中断正常转发)。 我们注意到,从不同的核心安装规则并不是万能的。 需要昂贵的核心间通信来安装规则,并保留额外的 CPU 资源来处理规则安装。 例如,安装 500K 条规则会消耗 100% 的 CPU 核心并持续数百毫秒

图 4:基于速率的更新对 100 GbE NVIDIA Mellanox ConnectX-5 NIC 分类器性能的影响

总结: 我们的结果表明,通过使用执行流量处理的相同 CPU 核心更新分类器的规则,可以向被测 NIC 的数据包分类器引入拒绝服务攻击,或将其吞吐量大幅降低高达 70 Gbps。 这种技术通常由分片高速数据平面 [4] 使用,就像每个连接 NF 的情况一样。 我们注意到,实际的数据中心工作负载每秒生成 4K-400K 个新连接。 我们的结果表明,将具有高度动态表的应用程序(例如云 NAT 和负载均衡器)卸载到所分析的 NIC 不会获得任何好处。 此外,所有接受测试的 NIC 在本节中的所有实验中都实现了相似的性能; 唯一的区别是 NVIDIA ConnectX-6 NIC,它的吞吐量下降比图 2a 和 2b 所示实验中的其他 NIC 略低 [17]。 在下一小节中,我们将研究如何执行规则修改并探讨这些规则修改的性能限制。 针对这一问题,我们提供了替代解决方法来缓解本节中描述的一些问题

规则操作分析

我们现在只关注规则更新操作的性能(即插入、删除和修改的完成时间)。 显然,更新完成时间越短,转发流量的性能中断就越低。 我们的分析揭示了三个主要发现。 首先,虽然现代 NIC 每秒处理近 500K 插入,但根据数据包分类器匹配的字段类型和数量,以及数据包分类器应用的操作类型和数量,存在显着且有时违反直觉的性能差异。 一条规则。 令人惊讶的是,安装与表 0 中的 IPv4 匹配的规则比安装 IPv6 规则的过程要慢得多。 我们的第二个发现是,安装基于 VLAN 的网络切片规则的成本大大低于安装基于 GRE/VXLAN/GENEVE 的规则的相应成本。 我们的第三个也是最后一个发现涉及以下事实:所分析的 NIC 不自动支持规则修改操作:必须删除旧规则并插入新规则。 我们的分析表明,通过直接修改网卡内存中精确匹配表的内容,与厂商标准API支持的插入/删除操作相比,规则修改时间可以减少80%

规则的插入/删除 我们现在计算表 0 和表 1 中 NVIDIA Mellanox ConnectX-5 NIC 支持的规则插入率。我们使用单个 CPU 内核插入 1 到 65536 之间的多个规则并测量时间 插入它们所需的时间。 根据该值,我们计算规则插入率。 图5a显示了匹配不同字段组合(例如以太网、IPv4、IPv6和TCP)的五种类型规则的表0的规则插入率。 单个操作将应用于匹配任何这些规则的数据包。 令人惊讶的是,我们的测量显示 IPv4 和 IPv6 之间存在显着差异。 具体来说,与 IPv6 规则相比,插入匹配 IPv4 的规则会导致插入速率急剧下降,而 IPv6 规则在只有 16K 条目的情况下就已经慢了 5 倍。 我们对这两种操作进行了分析,以揭示这种性能差异的原因,并发现 IPv4 规则由内核使用固件 API 直接安装在硬件中,而 IPv6 规则由用户级 DPDK 驱动程序管理,类似于非 root 的规则 表。 相反,图 5b 显示了表 1 的相同实验。我们注意到,在这种情况下,与 IPv6 相比,IPv4 上的匹配导致插入率高出 12%,这与我们在表 0 中观察到的情况相反。这是因为表 1 由软件管理,因此 IPv4 和 IPv6 均由各自的 DPDK 驱动程序管理。 然后,我们研究广泛采用的不同网络切片协议如何影响 NIC 最高性能表 1 的插入速率。我们考虑 VLAN、GRE、VXLAN 和 GENEVE 虚拟化标头,这些标头广泛用于数据中心和广域网部署。 图 5c 显示,与依赖其他虚拟化方案的规则相比,匹配 VLAN 标记的规则的安装速度最多可提高 50%。 我们现在验证与规则相关的操作是否会影响规则的插入率。 图 5d 显示增加对数据包执行的操作数量可能会导致插入速率降低 32%。 我们相信这些结果符合更复杂操作的较慢插入的自然直觉。我们最终重复之前的所有实验,但在这种情况下,我们从 NIC 的数据包分类器中删除条目。 令我们最惊讶的是,当我们在表 0 中的一组规则上添加 TCP 匹配时,删除速度比没有 TCP 标头时要快。 这个反直觉的结果再次证明表 0 上的任何部署都应该伴随着对分类器结构的全面测试,以避免意外的性能下降

图 5:基于硬件的 100 GbE NVIDIA Mellanox ConnectX-5 NIC 分类器的规则插入性能(以 kRules/秒为单位),其中 [1, 65536] 中的各种规则集存储在两个不同的表中

规则修改, 我们现在研究在所分析的 NIC 上更新一组规则的问题。 我们首先观察到,所评估的 NIC 均不支持通过其 API 进行直接流量修改。 必须先删除然后再插入条目,这会导致两个主要问题:(i)有时网络配置不正确;(ii)正如上一小节所观察到的,规则修改对于需要的速度非常慢。 真实的平台。 因此,我们展示了如何仔细设计简单的五元组匹配规则的流修改,以加速 NIC 中的规则修改。 我们将我们的技术称为增强型内存更新。 我们的技术不依赖DPDK中NIC供应商提供的标准API和rdma-core库来修改规则,而是直接访问管道中精确匹配阶段的内存,并以破坏性较小的方式对其进行修改。 我们将在本节稍后部分让读者了解有关我们改进的更新技术的更多详细信息

增强型内存更新速度提高了 80%, 我们使用 DPDK 的 flow-perf 工具来测量 NIC 更新率,使用标准的顺序删除和插入过程。 然后,我们修改了此工具,以使用内存更新来更新所有已安装的规则。 图 6 显示了通过 (i) 标准 API 删除/插入(黑色方块)和 (ii) 我们的增强型内存更新方案(蓝色星星)实现的更新率(以 krules/秒为单位),数量不断增加 NIC 分类器中的规则数(x 轴)

图6:增强型内存更新机制的评估

我们注意到,标准 API 平均每秒实现 300K TCP/IP 流更新*,可能会中断所有转发的流量,如第 2 季度第 3.1 节所示。 我们增强的 NIC 分类器内存更新将 TCP/IP 规则的插入率提高了 80%。 我们在实验过程中观察到CPU停顿,等待NIC完成内存同步命令,从而达到NIC直接内存访问(DMA)引擎的极限。 我们将可能与 NVIDIA Mellanox 合作的问题留给了使更新机制更加通用的问题,作为未来的工作

解释了增强的内存更新。 现在,我们更详细地解释如何在所分析的 NIC 上实现更快的规则插入/删除/修改。 虽然 NIC 供应商提供了自己的用于规则修改的标准 API,但我们在 DPDK 中添加了自己的用于规则更新的 API,并在 mlx5 驱动程序中实现了对该 API 的支持(支持 ConnectX-4 和更高版本的 NVIDIA Mellanox NIC)以及支持 rdma-core 处理 NIC 驱动程序和 NIC 本身之间的消息传递的库。 我们的新 API 不是插入然后删除规则,而是基于高效的内存更新,以避免驱动程序中尽可能多的内存分配,同时重用数据结构并仅更改匹配/操作字段值。 在 ConnectX-5 及更高版本的 NIC 中,非根表中的规则是使用一系列精确匹配哈希表来实现的。 每个哈希表仅支持唯一的掩码,即留给用户实现诸如元组空间搜索之类的技术,以通过使用一系列各种精确匹配掩码前缀来实现高效的LPM策略。 在标准 TCP 5 元组的情况下,需要两个哈希表。 第一个表匹配 IP 版本,第二个表匹配 5 元组本身。 据我们对这种未记录机制的逆向工程所知,将标头字段分离到多个哈希表中是由固件决定的,固件支持每个哈希表的特定字段组。 这两个哈希表中的每一个都作用于这组字段中的一个,最终被屏蔽。 从应用层添加更多字段或不同的隧道类型(VXLAN、GRE 等)将在链中添加更多哈希表。 我们注意到 NIC 使用每个存储桶的冲突条目链表来处理哈希表冲突。 当插入新的 TCP/IP 5 元组时,标准 API 将对 IP 版本的条目进行原子引用,并将条目插入到 5 元组哈希表中,然后从两个哈希表中删除旧规则。 表。 我们的更新机制尝试通过遵循现有规则来最小化修改次数,当存储桶不更改时将其保留在同一位置,不更改原子引用(就像 IP 版本哈希表的情况一样),并且 然后,如果存储桶索引(即屏蔽字段值的 CRC32 哈希值)没有改变,我们要么就地重写哈希表的存储桶(这很可能是因为所有哈希表都以非常小的大小开始并增长) 根据需要),或者如果索引发生变化,则将指向的存储桶中的条目移动到新的存储桶中。 通过仅选择性地更新已更改字段的内存区域以及限制内存访问次数,还可以避免多次调用 DMA 引擎来插入和删除规则。 就一致性而言,我们的方法试图保证 NIC 中更新的原子性。 在移动存储桶条目时,在旧条目被标记为无效之前,存在一小段时间,旧条目和新条目共存。 我们相信这种共存不会造成安全漏洞,因为两个条目都是有效的。 如果这是一个问题,运营商应该退回到标准 API。 目前,我们仅支持匹配操作值的更新; 实现操作操作的值更新,例如将数据包重定向到不同的队列,将非常相似。 这特别适合连接跟踪,例如 NAT 和负载均衡器。 更新规则的掩码是我们目前不支持的另一个复杂操作。 这是具有挑战性的,因为不同的哈希表实现不同的屏蔽元素,可能会抵消重用某些预安装元素的好处

*采用的DPDK v20.11流API是单线程的。 使用 DPDK v21.02 [15] 中添加的多线程规则插入/删除可以实现更高的性能

相关工作

衡量新兴网络技术的性能为我们了解当今已部署的网络系统中的关键瓶颈所在提供了巨大的帮助。 Neugebauer 等人 [33] 研究了将现代 NIC 与 CPU 和内存互连的 PCIe 设备的性能,结果显示小数据包的性能低得惊人。 法尔辛等人。 (i) 量化了英特尔处理器中直接缓存访问的影响 [9] 和 (ii) 提出了软件堆栈优化以实现每核百吉位网络 [8]。 Kuzniar 等人 [23,24] 揭示了最初基于 OpenFlow 的交换机的各种问题,例如更新期间缺乏一致性。 相比之下,我们关注的是网卡性能。 刘等人。 [28]分析了五种不同SmartNIC的内存特性、转发一定流量所需的核心数量以及远程直接内存访问(RDMA)能力。 在我们的工作中,我们重点关注网卡的数据包分类器组件以及内存占用和运行时修改对其性能的影响。 人们已经做出了各种努力来解决网络中调度更新的正交问题[16,19,20,22,27,40,39]或在数据平面级别设计更快的数据结构以适应快速修改[ 5,6,45]

结论

受网络速度不断提高和卸载趋势的推动,本文研究了当今 NIC 数据包分类器的性能瓶颈。 我们重点关注全球最大 NIC 供应商之一的几个不断发展的模型,显示了各种关键性能限制,具体取决于内存占用、管道长度、运行时规则修改和规则修改速度。 我们探索了直接在 NIC 中执行逐步更新的想法,改善了已发现的瓶颈以及构建更高效和通用 API 的许多障碍

致谢

我们要感谢我们的牧人迭戈·佩里诺博士和匿名审稿人对本文提出的富有洞察力的评论。 这项工作已获得欧洲研究理事会 (ERC) 根据欧盟 Horizon 2020 研究和创新计划提供的资助(资助协议编号:770889)。 这项工作还得到了瑞典战略研究基金会 (SSF) 和 KTH Digital Futures 的资助

参考

论文: https://dejankosticgithub.github.io/documents/publications/nicbench-pam21.pdf

  1. Antichi, G., Callegari, C., Giordano, S.: Implementation of TCP large receive offload on open hardware platform. In: Proceedings of the 2013 ACM Workshop on High Performance and Programmable Networking. pp. 15–22 (2013). Antichi, G. Callegari, C.、Giordano, S.:在开放硬件平台上实现 TCP 大型接收卸载。 见:2013 年 ACM 高性能和可编程网络研讨会论文集。 第 15–22 页 (2013) https://doi.org/10.1145/2465839.2465842
  2. Arashloo, M.T., Lavrov, A., Ghobadi, M., Rexford, J., Walker, D., Wentzlaff, D.: Enabling Programmable Transport Protocols in High-Speed NICs. In: 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI 20). pp. 93–109. USENIX Association, Santa Clara, CA (Feb 2020), Arashloo, M.T.、Lavrov, A.、Ghobadi, M.、Rexford, J.、Walker, D.、Wentzlaff, D.:在高速 NIC 中启用可编程传输协议。 见:第 17 届 USENIX 网络系统设计与实现研讨会 (NSDI 20)。 第 93–109 页。 USENIX 协会,加利福尼亚州圣克拉拉(2020 年 2 月) https://www.usenix.org/conference/nsdi20/presentation/arashloo
  3. Ballani, H., Costa, P., Gkantsidis, C., Grosvenor, M.P., Karagiannis, T., Koromilas, L., O’Shea, G.: Enabling End-Host Network Functions. In: Proceedings of the 2015 ACM Conference on Special Interest Group on Data Communication. p. 493–507. SIGCOMM ’15, Association for Computing Machinery, New York, NY, USA (2015) 启用终端主机网络功能。 见:2015 年 ACM 数据通信特别兴趣小组会议记录。 p493–507 SIGCOMM '15,计算机协会,美国纽约州纽约市 (2015) https://doi.org/10.1145/2785956.2787493
  4. Barbette, T., Katsikas, G.P., Maguire, Jr., G.Q., Kosti´c, D.: RSS++: load and state-aware receive side scaling. In: Proceedings of the 15th International Conference on Emerging Networking Experiments And Technologies. pp. 318–333. CoNEXT ’19, ACM, New York, NY, USA (2019). Barbette, T.、Katsikas, G.P.、Maguire, Jr.、G.Q.、Kosti´c, D.:RSS++:负载和状态感知接收侧缩放。 见:第 15 届新兴网络实验和技术国际会议论文集。 第 318–333 页。 CoNEXT ’19,ACM,美国纽约州纽约市 (2019) https://doi.org/10.1145/3359989.3365412
  5. Bonaventure, O., Filsfils, C., Francois, P.: Achieving sub-50 milliseconds recovery upon bgp peering link failures. IEEE/ACM Trans. Netw. 15(5), 1123–1135 (Oct 2007). Bonaventure, O.、Filsfils, C.、Francois, P.:在 bgp 对等链路故障时实现 50 毫秒内的恢复。 IEEE/ACM 传输。 网络。 15(5), 1123–1135(2007 年 10 月) https://doi.org/10.1109/TNET.2007.906045
  6. Chiesa, M., Sedar, R., Antichi, G., Borokhovich, M., Kamisi´nski, A., Nikolaidis, G., Schmid, S.: PURR: A Primitive for Reconfigurable Fast Reroute: Hope for the Best and Program for the Worst. In: Proceedings of the 15th International Conference on Emerging Networking Experiments And Technologies. p. 1–14. CoNEXT ’19, Association for Computing Machinery, New York, NY, USA (2019) Chiesa, M., Sedar, R., Antichi, G., Borokhovich, M., Kamisi´nski, A., Nikolaidis, G., Schmid, S.:PURR:可重新配置快速重新路由的原语:最好的希望 和最坏情况计划。 见:第 15 届新兴网络实验和技术国际会议论文集。 p。 1-14。 CoNEXT ’19,计算机协会,美国纽约州纽约市 (2019) https://doi.org/10.1145/3359989.3365410
  7. Eran, H., Zeno, L., Tork, M., Malka, G., Silberstein, M.: NICA: An Infrastructure for Inline Acceleration of Network Applications. In: Proceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference. p. 345–361. USENIX ATC ’19, USENIX Association, USA (2019), Eran, H.、Zeno, L.、Tork, M.、Malka, G.、Silberstein, M.:NICA:网络应用内联加速基础设施。 见:2019 USENIX Conference 关于 Usenix 年度技术会议的会议记录。 p345–361 USENIX ATC ’19,USENIX 协会,美国 (2019) https://www.usenix.org/system/files/atc19-eran.pdf
  8. Farshin, A., Barbette, T., Roozbeh, A., Maguire Jr., G.Q., Kosti´c, D.: PacketMill: Toward per-core 100-Gbps Networking. In: Proceedings of the Twenty-Sixth International Conference on Architectural Support for Programming Languages and Operating Systems. ASPLOS ’21, Association for Computing Machinery, New York, NY, USA (2021), Farshin, A.、Barbette, T.、Roozbeh, A.、Maguire Jr.、G.Q.、Kosti´c, D.:PacketMill:迈向每核 100 Gbps 网络。 见:第二十六届编程语言和操作系统架构支持国际会议论文集。 ASPLOS ’21,计算机协会,美国纽约州纽约市 (2021), https://doi.org/10.1145/3445814.3446724
  9. Farshin, A., Roozbeh, A., Maguire Jr., G.Q., Kosti´c, D.: Reexamining Direct Cache Access to Optimize I/O Intensive Applications for Multi-hundred-gigabit Networks. In: 2020 USENIX Annual Technical Conference (USENIX ATC 20). pp. 673–689. USENIX Association (Jul 2020), Farshin, A.、Roozbeh, A.、Maguire Jr.、G.Q.、Kosti´c, D.:重新检查直接缓存访问以优化数百千兆位网络的 I/O 密集型应用程序。 见:2020 USENIX 年度技术会议(USENIX ATC 20)。 第 673–689 页。 USENIX 协会(2020 年 7 月) https://www.usenix.org/conference/atc20/presentation/farshin
  10. Firestone, D., Putnam, A., Mundkur, S., Chiou, D., Dabagh, A., Andrewartha, M., Angepat, H., Bhanu, V., Caulfield, A., Chung, E., Chandrappa, H.K., Chaturmohta, S., Humphrey, M., Lavier, J., Lam, N., Liu, F., Ovtcharov, K., Padhye, J., Popuri, G., Raindel, S., Sapre, T., Shaw, M., Silva, G., Sivakumar, M., Srivastava, N., Verma, A., Zuhair, Q., Bansal, D., Burger, D., Vaid, K., Maltz, D.A., Greenberg, A.: Azure Accelerated Networking: SmartNICs in the Public Cloud. In: 15th USENIX Symposium on Networked Systems Design and Implementation (NSDI 18). pp. 51–66. USENIX Association, Renton, WA (2018) Firestone, D.、Putnam, A.、Mundkur, S.、Chiou, D.、Dabagh, A.、Andrewartha, M.、Angepat, H.、Bhanu, V.、Caulfield, A.、Chung, E.、 Chandrappa, H.K.、Chaturmohta, S.、Humphrey, M.、Lavier, J.、Lam, N.、Liu, F.、Ovtcharov, K.、Padhye, J.、Popuri, G.、Raindel, S.、Sapre 、T.、Shaw, M.、Silva, G.、Sivakumar, M.、Srivastava, N.、Verma, A.、Zuhair, Q.、Bansal, D.、Burger, D.、Vaid, K.、Maltz , D.A., Greenberg, A.:Azure 加速网络:公共云中的 SmartNIC。 见:第 15 届 USENIX 网络系统设计与实现研讨会 (NSDI 18)。 第 51–66 页。 USENIX 协会,华盛顿州伦顿 (2018) https://www.usenix.org/system/files/conference/nsdi18/nsdi18-firestone.pdf
  11. Holterbach, T., Vissicchio, S., Dainotti, A., Vanbever, L.: SWIFT: Predictive Fast Reroute. In: Proceedings of the Conference of the ACM Special Interest Group on Data Communication. pp. 460–473 (2017). Holterbach, T.、Vissicchio, S.、Dainotti, A.、Vanbever, L.:SWIFT:预测性快速重新路由。 见:ACM 数据通信特别兴趣小组会议记录。 第 460–473 页(2017 年) https://doi.org/10.1145/3098822.3098856
  12. Intel: 82599 10 GbE Controller Datasheet (2016), 英特尔:82599 10 GbE 控制器数据表 (2016) http://www.intel.com/content/www/us/en/embedded/products/networking/82599-10-gbe-controller-datasheet.html
  13. Intel: Ethernet Converged Network Adapter XL710 10/40 GbE (2016), 英特尔:以太网聚合网络适配器 XL710 10/40 GbE (2016) https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ethernet-xl710-brief.pdf
  14. Intel: Ethernet Controller E810 (2021) Intel E810以太控制器, https://www.intel.com/content/www/us/en/design/products-and-solutions/networking-and-io/ethernet-controller-e810/technical-library.html
  15. Jaddo Wisam: app/flow-perf: add multi threaded support (Jan 2021) Jaddo Wisam:app/flow-perf:添加多线程支持(2021 年 1 月), https://inbox.dpdk.org/dev/20201126111543.16928-4-wisamm@nvidia.com/T/
  16. Jin, X., Liu, H.H., Gandhi, R., Kandula, S., Mahajan, R., Zhang, M., Rexford, J., Wattenhofer, R.: Dynamic Scheduling of Network Updates. In: Proceedings of the 2014 ACM Conference on SIGCOMM. pp. 539–550. SIGCOMM ’14, ACM, New York, NY, USA (2014) Jin, X.、Liu, H.H.、Gandhi, R.、Kandula, S.、Mahajan, R.、Zhang, M.、Rexford, J.、Wattenhofer, R.:网络更新的动态调度。 见:SIGCOMM 2014 年 ACM 会议记录。 第 539–550 页。 SIGCOMM ’14,ACM,美国纽约州纽约市 (2014) https://doi.org/10.1145/2619239.2626307
  17. Katsikas, G.P., Barbette, T.: GitHub repository hosting the NIC benchmarks and collected data Katsikas, G.P.、Barbette, T.:托管 NIC 基准测试和收集数据的 GitHub 存储库, https://github.com/nic-bench
  18. Katsikas, G.P., Barbette, T., Kosti´c, D., Steinert, R., Maguire Jr., G.Q.: Metron: NFV Service Chains at the True Speed of the Underlying Hardware. In: 15th USENIX Conference on Networked Systems Design and Implementation. pp. 171– 186. NSDI’18, USENIX Association, Renton, WA (2018), Katsikas, G.P.、Barbette, T.、Kosti´c, D.、Steinert, R.、Maguire Jr.、G.Q.:Metron:以底层硬件的真实速度运行的 NFV 服务链。 见:第 15 届 USENIX 网络系统设计与实现会议。 第 171–186 页。NSDI’18,USENIX 协会,华盛顿州伦顿 (2018) https://www.usenix.org/system/files/conference/nsdi18/nsdi18-katsikas.pdf
  19. Katta, N., Hira, M., Kim, C., Sivaraman, A., Rexford, J.: HULA: Scalable Load Balancing Using Programmable Data Planes. In: Proceedings of the Symposium on SDN Research. pp. 10:1–10:12. SOSR ’16, ACM, New York, NY, USA (2016). Katta, N.、Hira, M.、Kim, C.、Sivaraman, A.、Rexford, J.:HULA:使用可编程数据平面的可扩展负载平衡。 见:SDN 研究研讨会论文集。 页 10:1–10:12。 SOSR ’16,ACM,美国纽约州纽约市 (2016), https://doi.org/10.1145/2890955.2890968
  20. Katta, N.P., Rexford, J., Walker, D.: Incremental Consistent Updates. In: Proceedings of the 2nd ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking. pp. 49–54. HotSDN ’13, ACM, New York, NY, USA (2013). Katta, N.P.、Rexford, J.、Walker, D.:增量一致更新。 见:第二届 ACM SIGCOMM 软件定义网络热门主题研讨会论文集。 第 49-54 页。 HotSDN ’13,ACM,美国纽约州纽约市 (2013)。 https://doi.org/10.1145/2491185.2491191
  21. Kim, D., Memaripour, A., Badam, A., Zhu, Y., Liu, H.H., Padhye, J., Raindel, S., Swanson, S., Sekar, V., Seshan, S.: Hyperloop: group-based NIC-offloading to accelerate replicated transactions in multi-tenant storage systems. In: Proceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication. pp. 297–312 (2018) Kim, D.、Memaripour, A.、Badam, A.、Zhu, Y.、Liu, H.H.、Padhye, J.、Raindel, S.、Swanson, S.、Sekar, V.、Seshan, S.:超级高铁 :基于组的 NIC 卸载,可加速多租户存储系统中的复制事务。 见:2018 年 ACM 数据通信特别兴趣小组会议记录。 第 297–312 页 (2018) https://doi.org/10.1145/3230543.3230572
  22. Ku´zniar, M., Pereˇs´ıni, P., Kosti´c, D.: Providing Reliable FIB Update Acknowledgments in SDN. In: Proceedings of the 10th International Conference on Emerging Networking Experiments and Technologies. pp. 415–422. CoNEXT ’14, ACM, New York, NY, USA (2014), Ku´zniar, M.、Pereˇs´ıni, P.、Kosti´c, D.:在 SDN 中提供可靠的 FIB 更新确认。 见:第十届新兴网络实验和技术国际会议论文集。 第 415–422 页。 CoNEXT ’14,ACM,美国纽约州纽约市 (2014). https://doi.org/10.1145/2674005.2675006
  23. Ku´zniar, M., Pereˇs´ıni, P., Kosti´c, D.: What You Need to Know About SDN Flow Tables. In: Passive and Active Measurement (PAM). Lecture Notes in Computer Science, vol. 8995, pp. 347–359 (2015), Ku´zniar, M.、Pereˇs´ıni, P.、Kosti´c, D.:关于 SDN 流表您需要了解的内容。 在:无源和有源测量 (PAM)。 计算机科学讲义,卷。 8995,第 347–359 页(2015 年). https://doi.org/10.1007/978-3-319-15509- 8 26
  24. Ku´zniar, M., Pereˇs´ıni, P., Kosti´c, D., Canini, M.: Methodology, Measurement and Analysis of Flow Table Update Characteristics in Hardware OpenFlow Switches. Computer Networks: The International Journal of Computer and Telecommunications Networking, Elsevier, vol. 26 (2018), Ku´zniar, M.、Pereˇs´ıni, P.、Kosti´c, D.、Canini, M.:硬件 OpenFlow 交换机中流表更新特性的方法、测量和分析。 计算机网络:国际计算机和电信网络杂志,Elsevier,卷。 26 (2018) https://doi.org/https://doi.org/10.1016/j.comnet.2018.02.014
  25. Le, Y., Chang, H., Mukherjee, S., Wang, L., Akella, A., Swift, M.M., Lakshman, T.: Uno: uniflying host and smart NIC offload for flexible packet processing. In: Proceedings of the 2017 Symposium on Cloud Computing. pp. 506–519 (2017), Le, Y.、Chang, H.、Mukherjee, S.、Wang, L.、Akella, A.、Swift, M.M.、Lakshman, T.:Uno:统一主机和智能 NIC 卸载,用于灵活的数据包处理。 见:2017 年云计算研讨会论文集。 第 506–519 页 (2017) https://doi.org/10.1145/3127479.3132252
  26. Li, B., Ruan, Z., Xiao, W., Lu, Y., Xiong, Y., Putnam, A., Chen, E., Zhang, L.: Kvdirect: High-performance in-memory key-value store with programmable MIC. In: Proceedings of the 26th Symposium on Operating Systems Principles. pp. 137–152 (2017), Li, B.、Ruan, Z.、Xiao, W.、Lu, Y.、Xiong, Y.、Putnam, A.、Chen, E.、Zhang, L.:Kvdirect:高性能内存中密钥 带有可编程 MIC 的值存储。 见:第 26 届操作系统原理研讨会论文集。 第 137–152 页(2017 年), https://doi.org/10.1145/3132747.3132756
  27. Liu, H.H., Wu, X., Zhang, M., Yuan, L., Wattenhofer, R., Maltz, D.: zUpdate: Updating Data Center Networks with Zero Loss. In: Proceedings of the ACM SIGCOMM 2013 Conference on SIGCOMM. pp. 411–422. SIGCOMM ’13, ACM, New York, NY, USA (2013), Liu, H.H.、Wu, X.、Zhang, M.、Yuan, L.、Wattenhofer, R.、Maltz, D.:zUpdate:零丢失更新数据中心网络。 见:ACM SIGCOMM 2013 SIGCOMM 会议记录。 第 411–422 页。 SIGCOMM ’13,ACM,美国纽约州纽约市 (2013). https://doi.org/10.1145/2486001.2486005
  28. Liu, M., Cui, T., Schuh, H., Krishnamurthy, A., Peter, S., Gupta, K.: Offloading distributed applications onto smartNICs using iPipe. In: Proceedings of the ACM Special Interest Group on Data Communication, pp. 318–333. Association for Computing Machinery (2019), Liu, M., Cui, T., Schuh, H., Krishnamurthy, A., Peter, S., Gupta, K.:使用 iPipe 将分布式应用程序卸载到 smartNIC 上。 见:ACM 数据通信特别兴趣小组会议记录,第 318-333 页。 计算机协会 (2019). https://doi.org/10.1145/3341302.3342079
  29. Miao, R., Zeng, H., Kim, C., Lee, J., Yu, M.: Silkroad: Making stateful layer-4 load balancing fast and cheap using switching ASICs. In: Proceedings of the Conference of the ACM Special Interest Group on Data Communication. pp. 15–28 (2017). Miao, R.、Zeng, H.、Kim, C.、Lee, J.、Yu, M.:Silkroad:使用交换 ASIC 实现快速且廉价的有状态第 4 层负载平衡。 见:ACM 数据通信特别兴趣小组会议记录。 第 15-28 页(2017 年) https://doi.org/10.1145/3098822.3098824
  30. Mittal, R., Shpiner, A., Panda, A., Zahavi, E., Krishnamurthy, A., Ratnasamy, S., Shenker, S.: Revisiting network support for RDMA. In: Proceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication. pp. 313–326 (2018), Mittal, R.、Shpiner, A.、Panda, A.、Zahavi, E.、Krishnamurthy, A.、Ratnasamy, S.、Shenker, S.:重新审视 RDMA 的网络支持。 见:2018 年 ACM 数据通信特别兴趣小组会议记录。 第 313–326 页 (2018). https://doi.org/10.1145/3230543.3230557
  31. Moon, Y., Lee, S., Jamshed, M.A., Park, K.: AccelTCP: Accelerating Network Applications with Stateful TCP Offloading. In: 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI 20). pp. 77–92. USENIX Association, Santa Clara, CA (Feb 2020), Moon, Y.、Lee, S.、Jamshed, M.A.、Park, K.:AccelTCP:通过状态 TCP 卸载加速网络应用程序。 见:第 17 届 USENIX 网络系统设计与实现研讨会 (NSDI 20)。 第 77-92 页。 USENIX 协会,加利福尼亚州圣克拉拉(2020 年 2 月), https://www.usenix.org/conference/nsdi20/presentation/moon
  32. Narayan, A., Cangialosi, F., Raghavan, D., Goyal, P., Narayana, S., Mittal, R., Alizadeh, M., Balakrishnan, H.: Restructuring endpoint congestion control. In: Proceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication. pp. 30–43 (2018), Narayan, A.、Cangialosi, F.、Raghavan, D.、Goyal, P.、Narayana, S.、Mittal, R.、Alizadeh, M.、Balakrishnan, H.:重构端点拥塞控制。 见:2018 年 ACM 数据通信特别兴趣小组会议记录。 第 30-43 页(2018 年) https://doi.org/10.1145/3230543.3230553
  33. Neugebauer, R., Antichi, G., Zazo, J.F., Audzevich, Y., L´opez-Buedo, S., Moore, A.W.: Understanding PCIe performance for end host networking. In: Proceedingsof the 2018 Conference of the ACM Special Interest Group on Data Communication, SIGCOMM 2018, Budapest, Hungary, August 20-25, 2018. pp. 327–341. ACM (2018), Neugebauer, R.、Anchi, G.、Zazo, J.F.、Audzevich, Y.、L´opez-Buedo, S.、Moore, A.W.:了解终端主机网络的 PCIe 性能。 见:2018 年 ACM 数据通信特别兴趣小组会议记录,SIGCOMM 2018,匈牙利布达佩斯,2018 年 8 月 20-25 日。第 327-341 页。 美国CM (2018), https://doi.org/10.1145/3230543.3230560
  34. NVIDIA Mellanox: BlueField® SmartNIC for Ethernet (2019), https://www.mellanox.com/related-docs/prod_adapter_cards/PB_BlueField_Smart_NIC.pdf
  35. NVIDIA Mellanox: ConnectX®-4 EN Card 100Gb/s Ethernet Adapter Card (2020), http://www.mellanox.com/related-docs/prod_adapter_cards/PB_ConnectX-4_EN_Card.pdf
  36. NVIDIA Mellanox: ConnectX®-5 EN Card 100Gb/s Ethernet Adapter Card (2020), http://www.mellanox.com/related-docs/prod_adapter_cards/PB_ConnectX-5_EN_Card.pdf
  37. NVIDIA Mellanox: ConnectX®-6 EN IC 200GbE Ethernet Adapter IC (2020), https://www.mellanox.com/related-docs/prod_silicon/PB_ConnectX-6_EN_IC.pdf
  38. Palkar, S., Abuzaid, F., Bailis, P., Zaharia, M.: Filter before you parse: Faster analytics on raw data with sparser. Proceedings of the VLDB Endowment 11(11), 1576–1589 (2018), Palkar, S.、Abuzaid, F.、Bailis, P.、Zaharia, M.:解析前过滤:使用稀疏器更快地分析原始数据。 VLDB 捐赠基金会议记录 11(11), 1576–1589 (2018). https://doi.org/10.14778/3236187.3236207
  39. Pereˇs´ıni, P., Ku´zniar, M., Canini, M., Kosti´c, D.: ESPRES: Transparent SDN Update Scheduling. In: Proceedings of the 3rd Workshop on Hot Topics in Software Defined Networking. pp. 73–78. HotSDN ’14, ACM, New York, NY, USA (2014). Pereˇs´ıni, P.、Ku´zniar, M.、Canini, M.、Kosti´c, D.:ESPRES:透明 SDN 更新调度。 见:第三届软件定义网络热点研讨会论文集。 第 73–78 页。 HotSDN ’14,ACM,美国纽约州纽约市 (2014), https://doi.org/10.1145/2620728.2620747
  40. Reitblatt, M., Foster, N., Rexford, J., Schlesinger, C., Walker, D.: Abstractions for Network Update. In: Proceedings of the ACM SIGCOMM 2012 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication. pp. 323–334. SIGCOMM ’12, ACM, New York, NY, USA (2012). Reitblatt, M.、Foster, N.、Rexford, J.、Schlesinger, C.、Walker, D.:网络更新的抽象。 见:ACM SIGCOMM 2012 年计算机通信应用程序、技术、架构和协议会议论文集。 第 323–334 页。 SIGCOMM ’12,ACM,美国纽约州纽约市 (2012) https://doi.org/10.1145/2342356.2342427
  41. Roy, A., Zeng, H., Bagga, J., Porter, G., Snoeren, A.C.: Inside the social network’s (datacenter) network. In: Proceedings of the 2015 ACM Conference on Special Interest Group on Data Communication. pp. 123–137 (2015), Roy, A.、Zeng, H.、Bagga, J.、Porter, G.、Snoeren, A.C.:社交网络(数据中心)网络内部。 见:2015 年 ACM 数据通信特别兴趣小组会议记录。 第 123–137 页(2015 年) https://doi.org/10.1145/2785956.2787472
  42. Siracusano, G., Galea, S., Sanvito, D., Malekzadeh, M., Haddadi, H., Antichi, G., Bifulco, R.: Running neural networks on the NIC (2020), Siracusano, G., Galea, S., Sanvito, D., Malekzadeh, M., Haddadi, H., Antichi, G., Bifulco, R.:在 NIC 上运行神经网络 (2020), https://arxiv.org/abs/2009.0235
  43. Spaziani Brunella, M., Belocchi, G., Bonola, M., Pontarelli, S., Siracusano, G., Bianchi, G., Cammarano, A., Palumbo, A., Petrucci, L., Bifulco, R.: hXDP: Efficient Software Packet Processing on FPGA NICs. In: 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20). USENIX Association, Banff, Alberta (Nov 2020), Spaziani Brunella, M.、Belocchi, G.、Bonola, M.、Pontarelli, S.、Siracusano, G.、Bianchi, G.、Cammarano, A.、Palumbo, A.、Petrucci, L.、Bifulco, R. :hXDP:FPGA NIC 上的高效软件包处理。 见:第 14 届 USENIX 操作系统设计与实现研讨会 (OSDI 20)。 USENIX 协会,艾伯塔省班夫(2020 年 11 月), https://www.usenix.org/conference/osdi20/presentation/brunella
  44. Stephens, B., Akella, A., Swift, M.: Loom: Flexible and Efficient NIC Packet Scheduling. In: 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI 19). pp. 33–46. USENIX Association, Boston, MA (Feb 2019), Stephens, B.、Akella, A.、Swift, M.:Loom:灵活高效的 NIC 数据包调度。 见:第 16 届 USENIX 网络系统设计与实现研讨会 (NSDI 19)。 第 33-46 页。 USENIX 协会,马萨诸塞州波士顿(2019 年 2 月), https://www.usenix.org/conference/nsdi19/presentation/stephens
  45. Stephens, B., Cox, A.L., Rixner, S.: Scalable Multi-Failure Fast Failover via Forwarding Table Compression. In: Proceedings of the Symposium on SDN Research, SOSR 2016, Santa Clara, CA, USA, March 14 - 15, 2016. p. 9. ACM (2016), Stephens, B.、Cox, A.L.、Rixner, S.:通过转发表压缩实现可扩展的多故障快速故障转移。 载于:SDN 研究研讨会论文集,SOSR 2016,美国加利福尼亚州圣克拉拉,2016 年 3 月 14 日至 15 日。 9.ACM(2016), https://doi.org/10.1145/2890955.2890957
  46. The Linux Foundation: Data Plane Development Kit (DPDK), Linux 基金会:数据平面开发套件 (DPDK), http://dpdk.org
  47. Zhang, T., Linguaglossa, L., Gallo, M., Giaccone, P., Iannone, L., Roberts, J.: Comparing the performance of state-of-the-art software switches for NFV. In: Proceedings of the 15th International Conference on Emerging Networking Experiments And Technologies. pp. 68–81 (2019), 张,T.,Linguaglossa,L.,Gallo,M.,Giaccone,P.,Iannone,L.,Roberts,J.:比较最先进的 NFV 软件交换机的性能。 见:第 15 届新兴网络实验和技术国际会议论文集。 第 68–81 页 (2019). https://doi.org/10.1145/3359989.3365415
  48. Zhu, Y., Eran, H., Firestone, D., Guo, C., Lipshteyn, M., Liron, Y., Padhye, J., Raindel, S., Yahia, M.H., Zhang, M.: Congestion control for large-scale RDMA deployments. ACM SIGCOMM Computer Communication Review 45(4), 523–536 (2015), Zhu, Y.、Eran, H.、Firestone, D.、Guo, C.、Lipshteyn, M.、Liron, Y.、Padye, J.、Raindel, S.、Yahia, M.H.、Zhang, M.:大规模 RDMA 部署的拥塞控制, ACM SIGCOMM 计算机通信评论 45(4), 523–536 (2015). https://doi.org/10.1145/2785956.2787484

晓兵(ssbandjl)

博客: https://cloud.tencent.com/developer/user/5060293/articles | https://logread.cn | https://blog.csdn.net/ssbandjl | https://www.zhihu.com/people/ssbandjl/posts

DPU专栏

https://cloud.tencent.com/developer/column/101987

欢迎对DPU/智能网卡/卸载/网络,存储加速/安全隔离等技术感兴趣的朋友加入DPU技术交流群

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
    • 关键词:网络接口卡·硬件分类器·卸载·规则操作·性能·基准测试·100 GbE
    • 简介
      • 我们的目标
        • 发现
        • 测量方法
          • 实验配置
          • 流表分析
            • 硬件分类性能
              • 规则操作分析
              • 相关工作
              • 结论
              • 致谢
              • 参考
              • 晓兵(ssbandjl)
                • DPU专栏
                相关产品与服务
                负载均衡
                负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档