前言
参考https://www.cnblogs.com/hjxiamen/p/17758112.html在Ubuntu20.04上安装DPDK20.11.9。
一、testpmd是什么?
在 DPDK(Data Plane Development Kit)中,testpmd
是一个用于测试和评估 DPDK 网络功能的命令行实用程序。testpmd
提供了一个交互式的环境,使用户能够配置、启动和监控 DPDK 应用程序,并执行一系列网络测试和性能评估。
testpmd主要用途包括:
1. 交互式测试环境: 提供一个命令行界面,允许用户通过命令进行交互式的配置和控制 DPDK 应用程序。这使得用户能够灵活地配置网络接口、设置流表、启动转发模式等。
2. 性能测试工具: testpmd
提供了一系列性能测试和评估功能,包括报告吞吐量、延迟和包转发率等指标。用户可以使用这些功能来评估 DPDK 应用程序的性能。
3. 虚拟化测试: testpmd
支持虚拟化环境中的测试,包括对 VFIO(Virtual Function I/O)和 Virtio 设备的支持。这使得用户能够在虚拟化环境中测试 DPDK 的性能和功能。
4. 流表配置: testpmd
允许用户配置流表,定义不同流的匹配规则,并测试流的转发和处理性能。
5. DPDK 应用程序功能测试: 作为 DPDK 官方发布的一部分,testpmd
还用于测试 DPDK 库和 API 的功能。用户可以使用 testpmd
来验证 DPDK 库的正确性和功能性。
二、如何使用testpmd?
1)绑定NIC到VFIO
1. 将 VFIO(Virtual Function I/O)绑定到网络接口卡(NIC)是为了支持设备的直通(Device Passthrough)。直通是虚拟化环境中一种将物理设备直接分配给虚拟机使用的技术。VFIO 是 Linux 内核提供的一个框架,允许用户空间应用程序(如虚拟机管理程序)以高性能和低延迟的方式直接管理设备。
2. 步骤如下:
2.1 前置条件:
ip a // 查看网络接口的详细信息
Linux 系统上用于显示和管理网络接口(network interfaces)的命令。这个命令提供了有关系统中所有网络接口的详细信息,包括接口的状态、IP 地址、MAC 地址等。-- 查看需要绑定的NIC状态是否为DOWN( sudo ifconfig xxx down ,该命令用于DOWN掉某个接口,其中xxx为NIC名称。)
sudo modprobe vfio-pci // 加载 VFIO PCI 模块,准备系统进行设备直通。
cat /sys/module/vfio/parameters/enable_unsafe_noiommu_mode // 查看 Linux 内核中 VFIO 模块的参数 enable_unsafe_noiommu_mode
的值
如果返回 Y
,表示该参数启用,说明 VFIO 模块允许在没有 IOMMU 支持的情况下运行(No-IOMMU 模式)。这可能是因为系统配置中没有启用 IOMMU,但用户选择继续使用 VFIO 模块。
如果返回 N
,表示该参数未启用,说明 VFIO 模块在不支持 IOMMU 的情况下不允许运行。
若是返回 N
,则使能该参数
sudo bash -c 'echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode' // 无root权限下使用该命令
2.2 绑定接口
首先查看接口绑定情况,可以发现接口的驱动程序绑定的是ixgbe,因此我们需要先解绑。
在解除绑定之后,我们将其与vfio-pci驱动程序绑定。
最后发现成功绑定。
2)配置Huge Pages
同样参考之前的博客,修改大页的数量,大小等(https://www.cnblogs.com/hjxiamen/p/17758112.html)
3)运行testpmd
3.1 遇到的问题
第一个问题:使用sudo执行命令,以超级用户的权限执行命令。
第二个问题:增加大页的数量。
其他问题暂时没碰到。
3.2 测试
该界面表示正常启用testpmd。后续关于命令行参数,如何使用的问题可参考Testpmd Application User Guide — Data Plane Development Kit 23.11.0 documentation (dpdk.org)
三、参考博客
DPDK文档(Testpmd Application User Guide — Data Plane Development Kit 23.11.0 documentation (dpdk.org))
标签:testpmd,VFIO,绑定,用户,测试,DPDK From: https://www.cnblogs.com/hjxiamen/p/17947295