Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

软件接收端扩展

概述

现代 NIC 支持多个接收和传送描述符队列(多队列)。接收时,NIC可以将不同的数据包发送到不同的队列,以在 CPU 之间分配处理。该NIC将过滤器应用于将数据包分配至少量逻辑流的每个数据包,以分配数据包。每个流的数据包均引导至单独的接收队列,进而由单独的 CPU 处理。此机制通常称为 接收端扩展 (RSS)。RSS 技术的目标是统一提高性能。当担心延迟时,或者每当收到中断处理形成瓶颈时,将启用 RSS。在 CPU 之间传播负载可减少队列长度。对于低延迟网络,最佳设置是分配与系统中存在 CPU 数量一样多的队列(或最大NIC(如果较低)。高效的高速配置可能是接收队列数量最小的配置,其中不会因 CPU 饱和而出现接收队列溢流。您可以通过接收端扩展提高桥接吞吐量。

根据流线程关联架构,来自专用接收队列的数据包的每个流线程 (FLT) 轮询NIC并处理数据包直到运行完成。因此,流式线程绑定到NIC接收 (RX) 和传输 (TX) 队列进行数据包处理,以避免任何不一致。因此,NIC必须具有与多个数据平面 CPU 相同的 RX 和 TX 队列vSRX,以支持多核vSRX方式。软件 RSS (SWRSS) 消除了对 NIC HW 队列的限制,通过跨各种 FLT 线程实施基于软件的数据包分发vSRX以多核形式运行。

软件 RSS 将各个流的处理分载到多个内核之一,因此从应用程序接收数据包的流NIC可以处理更多数据包。与 RSS 类似,使用 SWRSS 时的网络吞吐量改进与 CPU 利用率具有线性关联。

在 SWRSS 中,NIC端口与 I/O 线程相同或更少数量的硬件 RX/TX 队列初始化。I/O 线程根据总数据路径 CPU 和 NIC 接口中最小 NIC 队列vSRX。例如,如果 I/O 线程计算为 4,则每个端口的 HW 队列数NIC小于或等于 4 个队列。

如果 NIC 在支持的实例中没有足够数量的队列作为 FLT 线程vSRX,则流数据路径将启用 Software RSS (SWRSS)。从接收的队列获取数据包之后,SWRSS 跨 FLT 实施数据包NIC模型。通过移除NIC W 队列限制,SWRSS 支持各种虚拟实例类型,vSRX V CPU。

在 I/O 操作期间,从接收数据包的端口的队列NIC数据包,然后执行数据包分类。之后,将数据包分布到 FLT 线程虚拟队列。这些虚拟队列通过 DPDK 环线队列实施。在传输路径中,SWRSS 从 FLT 线程的虚拟传输队列获取数据包,并将这些数据包推送NIC传输队列进行传输。

根据 CPU 总数量和 vSRX 实例中发现的 NIC队列数量,选择 SWRSS I/O 线程数。不支持使用 HWRSS 和 SWRSS 混合操作模式。

了解软件接收端扩展配置

本主题提供软件接收端扩展 (SWRSS) 类型及其配置的详细信息。

SWRSS 支持两种操作模式,并且根据所需的数据路径 CPU 数量启用 SWRSS。这些模式是共享 IO 模式和专用 IO 模式。这些模式根据所需的数据路径 CPU 数量启用。vSRX vSRX3.0 仅支持专用 I/O 模式。

在专用 I/O 模式流处理中,创建用于 I/O 操作专用的 I/O 线程。根据服务器所需的 I/O 线程数vSRX,I/O 线程与专用安全端口NIC。NIC分配方法将接收和传输队列的端口连接至每个 I/O 线程,实现统一分布并避免 I/O 线程锁。每个专用 I/O 线程在突发模式下从接收队列NIC数据包,然后分布到 FLT 线程,反之亦然,用于传输数据包的 TX 路径。

SWRSS 根据 v CPU 数量启用。如果NIC没有足够数量的队列作为流线程 (FLT), vSRX则流化进程将启用 Software RSS (SWRSS)。

以下情况下未启用 SWRSS:

  • 如果NIC有足够的硬件 RX 或 TX 队列,用于所需的 PFE 数据路径 CPU。

  • 当 vSRX(基于 vCPU 数)和 NIC将导致可用硬件 RSS (HWRSS) 模式下所获取的 FLT CPU 数量减少。在这种情况下,HWRSS 模式vSRX支持该模式,从而产生比 SWRSS 模式更多的 FLT CPU,从而提供更好的数据包处理吞吐量。

  • 对于支持更少vSRX IO 线程所需的 NIC队列数的专用 NIC类型,建议使用 SWRSS。在这种情况下,将启用 SWRSS,但将额外 CPU 连接到 FLT CPU,直至完全利用 I/O CPU。

如果未启用 SWRSS,请使用 命令 set security forwarding-options receive-side-scaling software-rss mode enable 启用 SWRSS。运行此命令时,无论使用何种 NIC RSS 或 v CPU 数量,都会通过强制启用 SWRSS。如果不使用默认配置来启用 SWRSS CLI则根据 FLT: IO ( 4:1) 的默认比率决定自动启用 SWRSS。

要配置所需的 IO 线程数,请使用 set security forwarding-options receive-side-scaling software-rss io-thread-number <1-8> 命令。要查看分配给 IO 流线程的实际 v CPU 数,请使用 show security forwarding-options resource-manager 命令。

您可以决定自动启用 SWRSS,也可以根据 IO 线程和工作人员线程的架构和概念通过强制来决定。启用 SWRSS 会影响性能,因此建议仅在需要时更改 IO 线程数量,直到达到性能影响瓶颈点。