首页 > 其他分享 >DPDK测试testpmd

DPDK测试testpmd

时间:2024-01-05 16:37:59浏览次数:45  
标签:testpmd VFIO 绑定 用户 测试 DPDK

前言

  参考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

相关文章

  • Python+Requests+PyTest+Excel+Allure 接口自动化测试实战
    本文主要介绍了Python+Requess+PyTest+Excel+Allure接口自动化测试实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit......
  • TDSQL(PostgreSQL版本) benchmark性能测试
    一、准备软件包jdk:地址:https://pan.baidu.com/s/1sbgLPROfd9e_valSfv0YAQ提取码:4qpsbenchmark:地址:https://pan.baidu.com/s/1nAHER-BXpgG0LUnR8NbT7Q提取码:xcbu二、安装1、jdk安装:1.1解压安装到34机器的/data/tbase/jdk目录下1.2配置环境变量如下:[tbase@VM_0_37_cent......
  • 记一次某杀猪盘渗透测试
    最近偶然发现一个虚拟货币买涨跌的杀猪盘,遂进行了一波测试,前台长这样。为thinkphp5.0.5随用RCE进行打入,成功写入webshell。s=index|think\app/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=@file_put_contents(base64_decode(MTIzNDUucGhw),base64_dec......
  • 谈谈UI自动化测试
    随着软件行业的不断发展,建立一个完善的自动化测试体系变得至关重要。目前,自动化测试主要涵盖接口自动化测试和UI自动化测试两个主要领域。就目前而言,企业在UI自动化测试方面的覆盖率仍然相对较低。接口自动化测试可以模拟和执行应用程序接口的各种操作,以验证接口的功能、性能和稳定......
  • UI测试平台RunnerGo一键安装教程
    现在安装RunnerGo仅需要一条命令!目前支持系统:Centos、Debian、Ubuntu三种。下面给大家介绍一下RunnerGo安装使用流程:Step1:复制以下命令wgethttps://img.cdn.apipost.cn/running_go/img/wiki/runnergo.tar&&tarxfrunnergo.tar&&bashinstall.shStep2:选择安装系统输入命令......
  • 谈谈UI自动化测试
    随着软件行业的不断发展,建立一个完善的自动化测试体系变得至关重要。目前,自动化测试主要涵盖接口自动化测试和UI自动化测试两个主要领域。就目前而言,企业在UI自动化测试方面的覆盖率仍然相对较低。接口自动化测试可以模拟和执行应用程序接口的各种操作,以验证接口的功能、性能和稳......
  • UI测试平台RunnerGo一键安装教程
    现在安装RunnerGo仅需要一条命令!目前支持系统:Centos、Debian、Ubuntu三种。下面给大家介绍一下RunnerGo安装使用流程:Step1:复制以下命令wget https://img.cdn.apipost.cn/running_go/img/wiki/runnergo.tar&&tarxf runnergo.tar  &&bashinstall.shStep2:选择安装系统......
  • 网卡冗余性测试脚本
    #!/bin/bash#检查是否提供了足够的参数if["$#"-ne2];thenecho"Usage:$0<interface_name><gateway_address>"exit1fi#获取参数INTERFACE_NAME="$1"GATEWAY="$2"#检查网关的可达性echo"正在检查网关$GATEWAY的......
  • Jest之单元测试入门
    一,测试平台1,使用nodejs工程二,准备工作1,npminstalljestsave-dev2,package.json的配置三,开始编写测试代码1,sum.js:业务逻辑代码(被测试)module.exports.sum=function(a,b){returna+b;}2,sun.test.js:测试代码,用于测试sum.js2.1,注意:一定要使用test.jsconstsum......
  • 软件兼容性测试要考虑什么?
    《兼容性测试 兼容性测试报告 软件兼容性测试要考虑什么?》1、向前兼容和向后兼容。向前兼容是指可以使用软件的未来版本,向后兼容是指可以使用软件的以前版本。并非所有的软件都要求向前兼容和向后兼容,这是软件设计者需要决定的产品特性。2、不同版本之间的兼容。不同版本之间的......