nsenter命令(no switchport命令)

nsenter命令(no switchport命令)Azure 中的数据平面开发工具包 DPDK 提供了更快速的用户空间包处理框架 适用于性能密集型应用程序 此框架绕过虚拟机的内核网络堆栈 在使用内核网络堆栈的典型包处理中 进程是由中断指令驱动 当网络接口收到传入的包时 不仅有内核中断指令会处理包 还有上下文切换会从内核空间切换到用户空间 DPDK 消除了上下文切换和中断指令驱动方法 而是实现用户空间 以使用轮询模式驱动程序来加速包处理 DPDK 由多组用户空间库构成 这些库提供对较低级别资源的访问权限 这些资源包括硬件



Azure 中的数据平面开发工具包 (DPDK) 提供了更快速的用户空间包处理框架,适用于性能密集型应用程序。 此框架绕过虚拟机的内核网络堆栈。

在使用内核网络堆栈的典型包处理中,进程是由中断指令驱动。 当网络接口收到传入的包时,不仅有内核中断指令会处理包,还有上下文切换会从内核空间切换到用户空间。 DPDK 消除了上下文切换和中断指令驱动方法,而是实现用户空间,以使用轮询模式驱动程序来加速包处理。

DPDK 由多组用户空间库构成,这些库提供对较低级别资源的访问权限。 这些资源包括硬件、逻辑核心、内存管理和网络接口卡的轮询模式驱动程序。

DPDK 可以在支持多个操作系统分发版的 Azure 虚拟机中运行。 DPDK 在驱动网络功能虚拟化实现方面提供与众不同的关键性能。 这些实现可采用网络虚拟设备 (NVA) 的形式,如虚拟路由器、防火墙、VPN、负载均衡器、演进包核心和拒绝服务 (DDoS) 应用程序。

此处提供了 MANA VM 上 DPDK 的设置说明列表:Linux 上的 Microsoft Azure 网络适配器 (MANA) 和 DPDK

提高每秒包数 (PPS) :绕过内核并控制用户空间中的包可消除上下文切换,从而减少周期计数。 同时,这还会提高 Azure Linux 虚拟机中每秒处理的包比率。

支持 Azure 市场中的以下分发版:

Linux OS 内核版本 Ubuntu 18.04 4.15.0-1014-azure+ SLES 15 SP1 4.12.14-8.19-azure+ RHEL 7.5 3.10.0-862.11.6.el7.x86_64+ Debian 10 4.19.0-1-cloud+

所记录的版本是最低要求。 还支持较新版本。

此处提供了 MANA VM 上 DPDK 的要求列表:Linux 上的 Microsoft Azure 网络适配器 (MANA) 和 DPDK

自定义内核支持

对于未列出的任何 Linux 内核版本,请参阅用于生成 Azure 优化 Linux 内核的修补程序。 有关详细信息,还可以联系 aznetdpdk@microsoft.com。

所有 Azure 区域都支持 DPDK。

必须在 Linux 虚拟机上启用加速网络。 虚拟机应至少有两个网络接口,其中一个接口用于管理。 不建议在管理界面上启用加速网络。 了解如何创建启用加速网络的 Linux 虚拟机。

此外,DPDK 会使用 RDMA 谓词在网络适配器上创建数据队列。 在 VM 中,确保加载正确的 RDMA 内核驱动程序。 它们可以为 mlx4_ib、mlx5_ib 或 mana_ib,具体取决于 VM 大小。

此处提供了适用于 MANA VM 的 DPDK 安装说明:Linux 上的 Microsoft Azure 网络适配器 (MANA) 和 DPDK

  1. 下载最新的 DPDK。 建议为 Azure 安装版本 22.11 LTS 或更高版本。

  2. 运行 生成默认配置。

  3. 使用 进行编译。

  4. 使用 进行安装。

重启后,运行下面的命令一次:

  1. 巨页

    • 针对每个 numa 节点运行以下命令一次,以配置巨页:
    
    
    • 使用 创建用于装载的目录。

    • 使用 装载巨页。

    • 运行 检查巨页是否已保留。

    • 以上示例适用于 2M 大页面。 也可以使用 1G 大页面。

  2. MAC 和 IP 地址:使用 查看网络接口的 MAC 和 IP 地址。 VF 网络接口和 NETVSC 网络接口具有相同的 MAC 地址,但只有 NETVSC 网络接口具有 IP 地址。 VF 接口以 NETVSC 接口的从属接口形式运行 。

  3. PCI 地址

    • 运行 确定对 VF 使用哪个 PCI 地址。

    • 如果 eth0 已启用加速网络,请确保 testpmd 不会意外接管 eth0 的 VF PCI 设备 。 如果 DPDK 应用程序意外接管管理网络接口,并导致 SSH 连接断开,请使用串行控制台来停止 DPDK 应用程序。 串行控制台还可用于停止或启动虚拟机。

  4. 每次重新启动后,使用 加载 ibuverbs。 (仅适用于 SLES 15)另外,使用 加载 mlx4_ib

DPDK 应用程序必须通过在 Azure 中公开的主 PMD 运行。 如果应用程序直接通过 VF PMD 运行,它不会收到发往 VM 的所有包,因为一些包通过综合接口显示。 DPDK 支持两种类型的主 PMD:NetVSC PMD 和故障安全 PMD。 主 PMD 可保证应用程序接收以其为目标的所有数据包。 此外,还可确保应用程序继续在 DPDK 模式下运行,即使在为主机提供服务时撤销了 VF 也不例外。

NetVSC 是建议在 Azure 中作为主 PMD 运行的 PMD。 它会保证应用程序接收以其为目标的所有数据包。 此外,还能确保应用程序继续以 DPDK 模式运行,即使在为主机提供服务时撤销了 VF,也不例外。 有关如何使用和配置 NetVSC PMD 的详细信息,请参阅(https://doc.dpdk.org/guides/nics/netvsc.html)。

注意:不建议在 Azure 中通过防故障 PMD 运行。 如果 DPDK 版本为 22.11 LTS 或更高版本,则建议使用 NetVSC PMD。

作为替代方法,可以通过防故障 PMD 运行 DPDK 应用程序。 若要详细了解防故障 PMD,请参阅防故障轮询模式驱动程序库。

若要在根模式下运行 testpmd,请在 testpmd 命令前面使用 。

  1. 运行以下命令启动单端口 testpmd 应用程序:

    
    
  2. 运行以下命令启动双端口 testpmd 应用程序:

    
    

启动后,运行 检查端口信息。 应会看到一个或两个值为 net_netvsc 的 DPDK 端口。

  1. 使用 启动流量。

上面的命令在交互模式下启动 testpmd,这是建议用于试用 testpmd 命令的模式。

以下命令定期列显每秒数据包数的统计信息:

  1. 在 TX 端运行以下命令:

    
    
  2. 在 RX 端运行以下命令:

    
    

若要在虚拟机上运行上面的命令,请先将 中的 IP_SRC_ADDR 和 IP_DST_ADDR 更改为与虚拟机的实际 IP 地址一致,再进行编译。 否则,数据包在抵达接收端之前将被丢弃。

以下命令定期列显每秒数据包数的统计信息:

  1. 在 TX 端运行以下命令:

    
    
  2. 在 FWD 端运行以下命令:

    
    

若要在虚拟机上运行上面的命令,请先将 中的 IP_SRC_ADDR 和 IP_DST_ADDR 更改为与虚拟机的实际 IP 地址一致,再进行编译。 否则,数据包在抵达转发端之前将被丢弃。 你无法使用第三台计算机来接收转发的流量,因为除非做出一些代码更改,否则 testpmd 转发器不会修改第 3 层地址。

  • EAL 选项

  • Testpmd 命令

  • 数据包转储命令

编程小号
上一篇 2025-02-19 20:51
下一篇 2025-02-20 13:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/36688.html