CN117354190A - 网卡测试方法、装置、设备及存储介质 - Google Patents

网卡测试方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117354190A
CN117354190A CN202311477568.8A CN202311477568A CN117354190A CN 117354190 A CN117354190 A CN 117354190A CN 202311477568 A CN202311477568 A CN 202311477568A CN 117354190 A CN117354190 A CN 117354190A
Authority
CN
China
Prior art keywords
network card
virtual
test
unit
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311477568.8A
Other languages
English (en)
Inventor
朱敏
王晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Muchuang Integrated Circuit Design Co ltd
Original Assignee
Wuxi Muchuang Integrated Circuit Design Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Muchuang Integrated Circuit Design Co ltd filed Critical Wuxi Muchuang Integrated Circuit Design Co ltd
Priority to CN202311477568.8A priority Critical patent/CN117354190A/zh
Publication of CN117354190A publication Critical patent/CN117354190A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了一种网卡测试方法、装置、设备及存储介质,可以应用于网络设备技术领域和网卡测试技术领域。该方法应用于服务端,服务端安装有M个网卡,服务端设置在Kubemetes服务集群中,网卡测试方法包括:在M个网卡中的第一目标网卡与第二目标网卡,分别创建至少一个第一虚拟功能网卡和至少一个第二虚拟功能网卡;将第一虚拟功能网卡挂载至服务端的第一基础调度单元,得到第一虚拟测试单元;将第二虚拟功能网卡挂载至服务端的第二基础调度单元,得到第二虚拟测试单元;以及根据第一虚拟测试单元和第二虚拟测试单元中的至少一个,对第一目标网卡和第二目标网卡进行测试,得到测试结果。

Description

网卡测试方法、装置、设备及存储介质
技术领域
本公开涉及网络设备技术领域和网卡测试技术领域,尤其涉及一种网卡测试方法、装置、设备、介质和程序产品。
背景技术
在云计算和大数据技术快速发展的情况下,网卡等网络设备需要具有较强的性能来支持大规模的数据交互。这就需要对网卡性能进行测试,以保障其满足实际的网络性能要求。而现有技术中针对网卡测试的方法存在测试效率较低的情况,难以满足实际需求。
发明内容
鉴于上述问题,本公开提供了网卡测试方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种网卡测试方法,应用于服务端,上述服务端安装有M个网卡,M为大于1的整数,上述服务端设置在Kubernetes服务集群中,上述网卡测试方法包括:在M个上述网卡中的第一目标网卡与第二目标网卡,分别创建至少一个第一虚拟功能网卡和至少一个第二虚拟功能网卡;将上述第一虚拟功能网卡挂载至上述服务端的第一基础调度单元,得到第一虚拟测试单元;将上述第二虚拟功能网卡挂载至上述服务端的第二基础调度单元,得到第二虚拟测试单元;以及根据上述第一虚拟测试单元和上述第二虚拟测试单元中的至少一个,对上述第一目标网卡和上述第二目标网卡进行测试,得到测试结果。
本公开的第二方面提供了一种网卡测试装置,应用于服务端,上述服务端安装有M个网卡,M为大于1的整数,上述服务端设置在Kubernetes服务集群中,上述网卡测试方法包括:创建模块,用于在M个上述网卡中的第一目标网卡与第二目标网卡,分别创建至少一个第一虚拟功能网卡和至少一个第二虚拟功能网卡;第一虚拟测试单元获得模块,用于将上述第一虚拟功能网卡挂载至上述服务端的第一基础调度单元,得到第一虚拟测试单元;第二虚拟测试单元获得模块,用于将上述第二虚拟功能网卡挂载至上述服务端的第二基础调度单元,得到第二虚拟测试单元;以及测试模块,用于根据上述第一虚拟测试单元和上述第二虚拟测试单元中的至少一个,对上述第一目标网卡和上述第二目标网卡进行测试,得到测试结果。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法。
根据本公开提供的网卡测试方法、装置、设备、介质和程序产品,通过将第一虚拟功能网卡挂载至第一基础调度单元,以及将第二虚拟功能网卡挂载至第二基础调度单元,可以实现通过Kubemetes服务集群的基础调度单元来构建不同的虚拟测试端,节省创建虚拟机产生的耗时,避免因创建虚拟机造成的计算资源和存储资源占用问题,提升网络设备测试的整体效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的网卡测试方法、装置的应用场景图;
图2示意性示出了根据本公开实施例的网卡测试方法的流程图;
图3示意性示出了根据本公开实施例的将第一虚拟功能网卡挂载至服务端的第一基础调度单元的流程图;
图4A示意性示出了根据本公开实施例的网卡测试方法的应用场景图;
图4B示意性示出了根据本公开另一实施例的网卡测试方法的流程图;
图5示意性示出了根据本公开实施例的网卡测试装置的结构框图;
图6示意性示出了根据本公开实施例的适于实现网卡测试方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本公开的技术方案中,所涉及的数据(如包括但不限于用户个人信息)的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
为解释说明本公开实施例,本公开实施例中涉及的英文缩写可以参考以下内容,本公开的实施例对此不再赘述。
Hyper-v:Hyper-V是一种系统管理程序的虚拟化技术,能够实现桌面虚拟化。Hyper-V设计的目的是为广泛的用户提供更为熟悉以及成本效益更高的虚拟化基础设施软件,这样可以降低运作成本、提高硬件利用率、优化基础设施并提高服务器的可用性。
SR-IOV:SR-IOV(Single Root I/O Virtualization)可允许Windows操作系统和Hyper-V或ESXi等hypervisor对服务器的磁盘I/O设备,如现在SR-IOV对网卡设备一样进行封装,管理甚至共享。SR-IOV技术正如传统虚拟化技术能提高CPU和内存的利用率和灵活性一样,SR-IOV技术也能极大地提高I/O设备的利用率。
Kubernetes:简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
PF:Physical Function,用于支持SR-IOV功能的PCI功能模块,可以根据SR-IOV规范中定义。PF包含SR-IOV功能结构,用于管理SR-IOV功能。PF是全功能的PCIe功能,可以像其他任何PCIe设备一样进行发现、管理和处理。PF拥有完全配置资源,可以用于配置或控制PCIe设备。
VF:Virtual Function,与物理功能关联的一种功能。VF是一种轻量级PCIe功能模块,可以与物理功能以及与同一物理功能关联的其他VF共享一个或多个物理资源。VF仅允许拥有用于其自身行为的配置资源。
pod:在Kubernetes集群中,pod是所有业务类型的基础,也是K8S管理的最小单位级,它是一个或多个容器的组合。这些容器共享存储、网络和命名空间,以及如何运行的规范。在pod中,所有容器都被统一安排和调度,并运行在共享的上下文中。对于具体应用而言,pod是它们的逻辑主机,pod包含业务相关的多个应用容器。
容器:容器是一种沙盒技术,主要目的是为了将应用运行在其中,与外界隔离;及方便这个沙盒可以被转移到其它宿主机器。
发明人发现,相关技术中针对网卡的测试方法均需要基于构建好的虚拟机来完成,例如基于Hyper-V或者KVM虚拟机场景下的测试。其核心的工作原理是,通过安装支持虚拟化的系统,开通虚拟机,实现网卡虚拟功能的测试。而虚拟机测试环境的构建需要耗费较多时间,导致测试效率较低。
本公开的实施例提供了一种网卡测试方法,应用于服务端,服务端安装有M个网卡,M为大于1的整数,服务端设置在Kubernetes服务集群中,网卡测试方法包括:在M个网卡中的第一目标网卡与第二目标网卡,分别创建至少一个第一虚拟功能网卡和至少一个第二虚拟功能网卡;将第一虚拟功能网卡挂载至服务端的第一基础调度单元,得到第一虚拟测试单元;将第二虚拟功能网卡挂载至服务端的第二基础调度单元,得到第二虚拟测试单元;以及根据第一虚拟测试单元和第二虚拟测试单元中的至少一个,对第一目标网卡和第二目标网卡进行测试,得到测试结果。
根据本公开的实施例,通过将第一虚拟功能网卡挂载至第一基础调度单元,以及将第二虚拟功能网卡挂载至第二基础调度单元,可以实现通过Kubernetes服务集群的基础调度单元来构建不同的虚拟测试端,节省创建虚拟机产生的耗时,避免因创建虚拟机造成的计算资源和存储资源占用问题,提升网络设备测试的整体效率。
图1示意性示出了根据本公开实施例的网卡测试方法、装置的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括第一终端设备101、第二终端设备102、第三终端设备103、网络104和服务器105。网络104用以在第一终端设备101、第二终端设备102、第三终端设备103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用第一终端设备101、第二终端设备102、第三终端设备103中的至少一个通过网络104与服务器105交互,以接收或发送消息等。第一终端设备101、第二终端设备102、第三终端设备103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
第一终端设备101、第二终端设备102、第三终端设备103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用第一终端设备101、第二终端设备102、第三终端设备103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的网卡测试方法一般可以由服务器105执行。相应地,本公开实施例所提供的网卡测试装置一般可以设置于服务器105中。本公开实施例所提供的网卡测试方法也可以由不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的网卡测试装置也可以设置于不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图4B对公开实施例的网卡测试方法进行详细描述。
图2示意性示出了根据本公开实施例的网卡测试方法的流程图。
如图2所示,该实施例的网卡测试方法应用于服务端,服务端安装有M个网卡,M为大于1的整数,服务端设置在Kubernetes服务集群中,网卡测试方法可以包括操作S210~操作S240。
在操作S210,在M个网卡中的第一目标网卡与第二目标网卡,分别创建至少一个第一虚拟功能网卡和至少一个第二虚拟功能网卡。
在操作S220,将第一虚拟功能网卡挂载至服务端的第一基础调度单元,得到第一虚拟测试单元。
在操作S230,将第二虚拟功能网卡挂载至服务端的第二基础调度单元,得到第二虚拟测试单元。
在操作S240,根据第一虚拟测试单元和第二虚拟测试单元中的至少一个,对第一目标网卡和第二目标网卡进行测试,得到测试结果。
根据本公开的实施例,服务端可以包括网卡插槽,网卡可以通过插入网卡插槽的方式安装在服务端上。
根据本公开的实施例,可以基于SRIOV技术在第一目标网卡与第二目标网卡,分别创建至少一个第一虚拟功能网卡和至少一个第二虚拟功能网卡,第一虚拟功能网卡和第二虚拟功能网卡可以是具有VF(Virtual Function,虚拟功能)的虚拟网卡,第一虚拟功能网卡和第二虚拟功能网卡可以包含数据I/O(Input/Output)功能。
根据本公开的实施例,第一基础调度单元和第二基础调度单元可以包括Kubernetes服务集群中包含的不同的基础服务单元(或称pod),第一基础调度单元和第二基础调度单元可以设置在Kubernetes服务集群的同一个服务器中,或者也可以设置在Kubernetes服务集群的不同的服务器中。
根据本公开的实施例,将第一虚拟功能网卡挂载至服务端的第一基础调度单元,可以是通过将第一虚拟功能网卡的配置信息存储在与第一基础调度单元相关的网卡查询路径中,以便于通过第一基础调度单元来查询并调用第一虚拟功能网卡。第一虚拟测试单元可以指示包含第一虚拟功能网卡和第一基础调度单元的虚拟测试端单元。
根据本公开的实施例,可以通过将第一虚拟测试单元和第二虚拟测试单元分别设置为虚拟测试客户端和虚拟测试服务端,这样可以根据测试执行脚本,来完成针对第一目标网卡和第二目标网卡的网络性能的测试,得到测试结果。
根据本公开的实施例,M个网卡安装在同一个服务器中。
根据本公开的实施例,在M个网卡安装在同一个服务器中的情况下,第一目标网卡与第二目标网卡同样安装在同一服务器中,这样可以通过同一个服务器来构建得到虚拟测试客户端和虚拟测试服务端,减少测试网卡性能所需的硬件设备数量,减少硬件设备在测试过程中的计算开销。
根据本公开的实施例,网卡包括高速外围设备互联网卡。高速外围设备互联网卡,也称PCIe(Peripheral Component Interconnect Express)网卡,可以是允许在同一时刻,同时进行发送和接收数据的高速网络设备。
图3示意性示出了根据本公开实施例的将第一虚拟功能网卡挂载至服务端的第一基础调度单元的流程图。
如图3所示,操作S220中,将第一虚拟功能网卡挂载至服务端的第一基础调度单元可以包括操作S310~S320。
在操作S310,建立第一基础调度单元中的至少一个第一容器与第一虚拟功能网卡之间的第一映射关系。
在操作S320,根据第一映射关系,以及与第一基础调度单元相关联的网络地址,更新第一虚拟功能网卡的接口配置信息,得到第一虚拟测试单元。
根据本公开的实施例,第一基础调度单元可以设置有网络地址(例如IP地址、端口地址),通过将与第一基础调度单元相关联的网络地址来对第一虚拟功能网卡的接口配置信息进行更新,可以使第一虚拟功能网卡通过与第一基础调度单元相关联的网络地址来实现数据交互,进而使包含第一基础调度单元和第一虚拟功能网卡的第一虚拟测试单元能够作为虚拟测试端完成网卡功能测试。
根据本公开的实施例,通过更新第一虚拟功能网卡的接口配置信息来得到第一虚拟测试单元,可以避免因创建或消除虚拟机产生的耗时,提升网卡测试的整体效率。
根据本公开的实施例,根据第一虚拟测试单元和第二虚拟测试单元对第一目标网卡和第二目标网卡进行测试,得到测试结果可以包括如下操作。
在第一虚拟测试单元和第二虚拟测试单元,执行网络带宽监控任务,得到带宽监控结果;以及在带宽监控结果表征异常的情况下,根据带宽监控结果,生成第一告警信息,第一告警信息与第一虚拟功能网卡和第二虚拟功能网卡中的至少一个相关联,测试结果包括第一告警信息。
根据本公开的实施例,可以通过控制第一虚拟测试单元和第二虚拟测试单元中的至少一个来执行网络带宽监控任务,从而实现第一虚拟测试单元和第二虚拟测试单元进行数据包交互,通过检测第一虚拟功能网卡和第二虚拟功能网卡的流量带宽数据,并将检测到的流量带宽数据与预设的带宽阈值进行比较,将小于预设的带宽阈值的流量带宽数据确定为异常流量带宽数据,从而可以根据异常流量带宽数据生成的异常时刻,以及异常流量带宽数据对应的虚拟功能网卡来确定第一虚拟功能网卡和第二虚拟功能网卡的异常情况,并根据异常流量带宽数据生成第一告警信息,可以将第一告警信息作为测试结果,以便于及时排除与异常网络带宽相关的故障。
在本公开的一个实施例中,可以在第一基础调度单元和第二基础调度单元运行sar(System Activity Reporter系统活动情况报告)工具,从而定时检测第一虚拟功能网卡和第二虚拟功能网卡的流量带宽,当监控到第一虚拟功能网卡或第二虚拟功能网卡的带宽性能小于预设的阈值时,将该带宽性能数据及时间点记录到日志文件中,通过查看日志文件来及时分析异常情况。
图4A示意性示出了根据本公开实施例的网卡测试方法的应用场景图。
如图4A所示,该应用场景400中可以包括服务器410、网卡421和422。网卡421和422安装在服务器410上。服务器410可以设置在Kubernetes服务集群中。
搭建硬件测试环境,在服务器410上的PCIe插槽上插入支持虚拟化功能的两张网卡421和422,并且把两张网卡421和422通过光纤或者网线相连。
开启待测服务器CPU的IOMMU(Input/Output Memory Management Unit,输入输出的内存管理单元)功能和VT-d功能,在服务器的系统中打开SR-IOV-Support选项和VT-d选项,保存配置后重启服务器生效。
安装网卡驱动,使系统可以正常识别两张网卡421和422。
网卡421和422启用SR-IOV虚拟化功能,分别在2张网卡421和422上,生成多个VF,分别给待测pod使用。每个网卡支持vf的数量与网卡本身规格有关。
创建完成后可以在服务器410上面查看到新构建得到的VF,即第一虚拟功能网卡VF1和第二虚拟功能网卡VF2。
搭建软件测试环境,使用部署工具,在待测服务器410上安装部署kubernets容器集群系统。把服务器410的网卡通过sriov-device-plugin发布到集群中,这样网卡421和422,以及第一虚拟功能网卡VF1和第二虚拟功能网卡VF2就可以作为虚拟网络设备(即第一虚拟测试单元和第二虚拟测试单元)在容器集群中显示,以此来被第一基础调度单元pod1和第二基础调度单元pod2挂载使用。
创建2个测试用基础调度单元,即第一基础调度单元pod1和第二基础调度单元pod2,通过sriov-cni插件,给第一基础调度单元pod1和第二基础调度单元pod2各自挂载一个VF设备,即将第一虚拟功能网卡VF1和第二虚拟功能网卡VF2分别挂载至第一基础调度单元pod1和第二基础调度单元pod2,并且配置上ip地址和子网掩码,测试pod1地址为10.xx.10.10,掩码为255.255.XXX.0,测试pod2地址为10.xx.10.20,掩码为255.255.XXX.0,得到第一虚拟测试单元和第二虚拟测试单元。
第一基础调度单元pod1和第二基础调度单元pod2可以使用centos、ubuntu或者redhat等系统,通过拉取相应的镜像生成pod。第一基础调度单元pod1和第二基础调度单元pod2之间可以通过icmp数据包进行网络连通性测试。
第一基础调度单元pod1和第二基础调度单元pod2可以分别作为网络测试的客户端和服务端,安装测试工具,进行数据转发测试。测试工具可以使用iperf3、netperf或者qperf等。
例如可以将pod1作为测试服务端,使用iperf工具,启用测试命令iperf3-s。将pod2作为测试客户端,使用iperf工具,启用测试命令iperf3-c 10.84.10.100-t 100-i 2,客户端通过TCP连接到服务端,进行流量发包测试。因为网卡使用了SRIOV技术,通过基础调度单元挂载虚拟功能网卡的TCP转发性能接近物理网卡的性能。
根据本公开的实施例,根据第一虚拟测试单元和第二虚拟测试单元对第一目标网卡和第二目标网卡进行测试,得到测试结果还可以包括如下操作。
在第一虚拟测试单元和第二虚拟测试单元中的至少一个,执行数据包丢失测试任务,得到数据包丢失测试结果;以及在数据包丢失测试结果表征异常的情况下,根据数据包丢失测试结果,生成第二告警信息,第二告警信息与第一虚拟功能网卡和第二虚拟功能网卡中的至少一个相关联,测试结果包括第二告警信息。
根据本公开的实施例,可以通过控制第一虚拟测试单元和第二虚拟测试单元中的至少一个来执行数据包丢失测试任务,从而实现第一虚拟测试单元和第二虚拟测试单元之间进行数据包交互,通过检测第一虚拟功能网卡和第二虚拟功能网卡各自的数据包丢失率数据,并将检测到的数据包丢失率与预设的数据包丢失率阈值进行比较,将小于预设的数据包丢失率阈值的数据包丢失率数据确定为异常数据包丢失率数据,从而可以根据异常数据包丢失率数据生成的异常时刻,以及异常数据包丢失率数据对应的虚拟功能网卡来确定第一虚拟功能网卡和第二虚拟功能网卡的异常情况,并根据异常数据包丢失率数据生成第二告警信息,可以将第二告警信息作为测试结果,以便于及时排除与异常网络带宽相关的故障。
根据本公开的实施例,根据第一虚拟测试单元和第二虚拟测试单元对第一目标网卡和第二目标网卡进行测试,得到测试结果还可以包括如下操作。
在第一虚拟测试单元和第二虚拟测试单元中的至少一个,执行数据包延迟测试任务,得到数据包延迟测试结果;以及在数据包延迟测试结果表征异常的情况下,根据数据包延迟测试结果,生成第三告警信息,第三告警信息与第一虚拟功能网卡和第二虚拟功能网卡中的至少一个相关联,测试结果包括第三告警信息。
根据本公开的实施例,可以通过控制第一虚拟测试单元和第二虚拟测试单元中的至少一个来执行数据包延迟测试任务,从而实现第一虚拟测试单元和第二虚拟测试单元之间进行数据包交互,通过检测第一虚拟功能网卡和第二虚拟功能网卡各自的数据包延迟时长,并将检测到的数据包延迟时长与预设的延迟时长阈值进行比较,将小于预设的延迟时长阈值的数据包延迟时长确定为异常数据包延迟时长,从而可以根据异常数据包延迟时长生成的异常时刻,以及异常数据包延迟时长对应的虚拟功能网卡来确定第一虚拟功能网卡和第二虚拟功能网卡的异常情况,并根据异常数据包延迟时长生成第三告警信息,可以将第三告警信息作为测试结果,以便于及时排除与异常网络带宽相关的故障。
根据本公开的实施例提供的网卡测试方法,可以通过kubernets容器集群作为网卡测试载体,相对于基于虚拟机来进行网卡测试的方法,具有启动速度快,占用计算资源少,方便测试设备的构建与销毁的优点,能够实现秒级启动,且不需要测试人员具有专业的虚拟机构建基础,能够在底层操作系统不支持虚拟化的情况下完成网卡测试,提升测试方案的适用性与泛化能力。
根据本公开的实施例,还可以基于本公开实施例提供的网卡测试方法模拟网络业务测试。例如如图4A所示的pod1中部署http服务,第二基础调度单元pod2通过第一虚拟功能网卡VF1和第二虚拟功能网卡VF2上传大文件到第一基础调度单元pod1的http home目录中,同时也做下载测试,第二基础调度单元pod2通过第一虚拟功能网卡VF1和第二虚拟功能网卡VF2下载第一基础调度单元pod1的http home目录中的文件,通过文件的上传和下载来验证基于k8s的容器的场景下的虚拟功能网卡在网络应用中的测试。
根据本公开的实施例,本公开实施例提供的网卡测试方法还可以提供多种虚拟功能网卡网络通道测试,在第一基础调度单元pod1和第二基础调度单元pod2各自同时可以挂载3个虚拟功能网卡vf,每个虚拟功能网卡vf和对端配置相同的子网地址,确保第一基础调度单元pod1和第二基础调度单元pod2各自的3个虚拟功能网卡vf互相可以连通,第二基础调度单元pod2的3个虚拟功能网卡vf作为iperf3的服务端,第一基础调度单元pod1的3个虚拟功能网卡vf作为iperf3的客户端,3个客户端分别连接3个服务端进行发包测试,验证基于k8s pod场景下多vf网络通道测试。
根据本公开的实施例,本公开实施例提供的网卡测试方法还可以提供网络时延测试,在第一基础调度单元pod1和第二基础调度单元pod2的环境中分别安装qperf测试工具,第二基础调度单元pod2作为qperf的服务端,第一基础调度单元pod1作为qperf的客户端,测试不同数据包长度的情况下,基于k8s容器场景下vftcp及udp的网络延时。
根据本公开的实施例,还可以基于本公开实施例提供的网卡测试方法,将测试中收集到的测试数据进行处理和分析,以便生成有意义的测试结果。测试结果可以包括计算平均值、标准差、百分位数等统计指标,还可以包括绘制图表、图形等可视化数据。还可以使用Python、Markdown、HTML或其他适合的工具或语言编写模板来生成与测试结果相关的测试报告。在测试报告中,可以包括测试概要、详细结果、图表、性能评估等信息。
图4B示意性示出了根据本公开另一实施例的网卡测试方法的流程图。
如图4B所示,可以基于该流程执行本公开实施例提供的网卡测试方法。例如可以在步骤S401,在服务器开启IOMMU功能和VT-d虚拟化功能。在步骤S402,在网卡启用SR-IOV虚拟化功能,生成虚拟功能网卡。在步骤S403,在服务器上部署kubernets容器集群系统。在步骤S404,创建基础调度单元,并将基础调度单元分配至虚拟功能网卡。在步骤S405,对虚拟功能网卡分配ip地址,测试网络连通性。在步骤S406,安装测试工具进行测试。在步骤S407,监控异常测试数据并输出到日志系统。在步骤S408,通过虚拟功能网卡网络进行业务功能测试。在步骤S409,根据自定义模板生成测试报告。
基于上述网卡测试方法,本公开还提供了一种网卡测试装置。以下将结合图5对该装置进行详细描述。
图5示意性示出了根据本公开实施例的网卡测试装置的结构框图。
如图5所示,应用于服务端,服务端安装有M个网卡,M为大于1的整数,服务端设置在Kubernetes服务集群中,网络设备测试装置500应用于服务端,服务端安装有M个网卡,M为大于1的整数,服务端设置在Kubernetes服务集群中。网卡测试装置500包括创建模块510、第一虚拟测试单元获得模块520、第二虚拟测试单元获得模块530和测试模块540。
创建模块510用于在M个网卡中的第一目标网卡与第二目标网卡,分别创建至少一个第一虚拟功能网卡和至少一个第二虚拟功能网卡;
第一虚拟测试单元获得模块520用于将第一虚拟功能网卡挂载至服务端的第一基础调度单元,得到第一虚拟测试单元;
第二虚拟测试单元获得模块530用于将第二虚拟功能网卡挂载至服务端的第二基础调度单元,得到第二虚拟测试单元;以及
测试模块540用于根据第一虚拟测试单元和第二虚拟测试单元中的至少一个,对第一目标网卡和第二目标网卡进行测试,得到测试结果。
根据本公开的实施例,第一虚拟测试单元获得模块包括:第一映射关系建立子模块和第一虚拟测试单元获得子模块。
第一映射关系建立子模块,用于建立第一基础调度单元中的至少一个第一容器与第一虚拟功能网卡之间的第一映射关系。
第一虚拟测试单元获得子模块,用于根据第一映射关系,以及与第一基础调度单元相关联的网络地址,更新第一虚拟功能网卡的接口配置信息,得到第一虚拟测试单元。
根据本公开的实施例,网卡包括高速外围设备互联网卡。
根据本公开的实施例,测试模块包括:带宽监控结果获得子模块和第一告警信息生成子模块。
带宽监控结果获得子模块,用于在第一虚拟测试单元和第二虚拟测试单元,执行网络带宽监控任务,得到带宽监控结果。
第一告警信息生成子模块,用于在带宽监控结果表征异常的情况下,根据带宽监控结果,生成第一告警信息,第一告警信息与第一虚拟功能网卡和第二虚拟功能网卡中的至少一个相关联,测试结果包括第一告警信息。
根据本公开的实施例,测试模块还包括:数据包丢失测试结果获得子模块和第二告警信息生成子模块。
数据包丢失测试结果获得子模块,用于在第一虚拟测试单元和第二虚拟测试单元中的至少一个,执行数据包丢失测试任务,得到数据包丢失测试结果。
第二告警信息生成子模块,用于在数据包丢失测试结果表征异常的情况下,根据数据包丢失测试结果,生成第二告警信息,第二告警信息与第一虚拟功能网卡和第二虚拟功能网卡中的至少一个相关联,测试结果包括第二告警信息。
根据本公开的实施例,测试模块还包括:数据包延迟测试结果获得子模块和第三告警信息生成子模块。
数据包延迟测试结果获得子模块,用于在第一虚拟测试单元和第二虚拟测试单元中的至少一个,执行数据包延迟测试任务,得到数据包延迟测试结果。
第三告警信息生成子模块,用于在数据包延迟测试结果表征异常的情况下,根据数据包延迟测试结果,生成第三告警信息,第三告警信息与第一虚拟功能网卡和第二虚拟功能网卡中的至少一个相关联,测试结果包括第三告警信息。
根据本公开的实施例M个网卡安装在同一个服务器中。
根据本公开的实施例,创建模块510、第一虚拟测试单元获得模块520、第二虚拟测试单元获得模块530和测试模块540中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,创建模块510、第一虚拟测试单元获得模块520、第二虚拟测试单元获得模块530和测试模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,创建模块510、第一虚拟测试单元获得模块520、第二虚拟测试单元获得模块530和测试模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现网卡测试方法的电子设备的方框图。
如图6所示,根据本公开实施例的电子设备600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 603中,存储有电子设备600操作所需的各种程序和数据。处理器601、ROM602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 602和RAM 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。电子设备600还可以包括连接至输入/输出(I/O)接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至输入/输出(I/O)接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。
在该计算机程序被处理器601执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分609被下载和安装,和/或从可拆卸介质611被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (11)

1.一种网卡测试方法,应用于服务端,所述服务端安装有M个网卡,M为大于1的整数,所述服务端设置在Kubemetes服务集群中,所述网卡测试方法包括:
在M个所述网卡中的第一目标网卡与第二目标网卡,分别创建至少一个第一虚拟功能网卡和至少一个第二虚拟功能网卡;
将所述第一虚拟功能网卡挂载至所述服务端的第一基础调度单元,得到第一虚拟测试单元;
将所述第二虚拟功能网卡挂载至所述服务端的第二基础调度单元,得到第二虚拟测试单元;以及
根据所述第一虚拟测试单元和所述第二虚拟测试单元中的至少一个,对所述第一目标网卡和所述第二目标网卡进行测试,得到测试结果。
2.根据权利要求1所述的方法,其中,所述将所述第一虚拟功能网卡挂载至所述服务端的第一基础调度单元包括:
建立所述第一基础调度单元中的至少一个第一容器与所述第一虚拟功能网卡之间的第一映射关系;以及
根据所述第一映射关系,以及与所述第一基础调度单元相关联的网络地址,更新所述第一虚拟功能网卡的接口配置信息,得到所述第一虚拟测试单元。
3.根据权利要求1所述的方法,其中,所述网卡包括高速外围设备互联网卡。
4.根据权利要求1所述的方法,其中,所述根据所述第一虚拟测试单元和所述第二虚拟测试单元对所述第一目标网卡和所述第二目标网卡进行测试,得到测试结果包括:
在所述第一虚拟测试单元和所述第二虚拟测试单元,执行网络带宽监控任务,得到带宽监控结果;以及
在所述带宽监控结果表征异常的情况下,根据所述带宽监控结果,生成第一告警信息,所述第一告警信息与所述第一虚拟功能网卡和所述第二虚拟功能网卡中的至少一个相关联,所述测试结果包括所述第一告警信息。
5.根据权利要求1所述的方法,其中,所述根据所述第一虚拟测试单元和所述第二虚拟测试单元对所述第一目标网卡和所述第二目标网卡进行测试,得到测试结果包括:
在所述第一虚拟测试单元和所述第二虚拟测试单元中的至少一个,执行数据包丢失测试任务,得到数据包丢失测试结果;以及
在所述数据包丢失测试结果表征异常的情况下,根据所述数据包丢失测试结果,生成第二告警信息,所述第二告警信息与所述第一虚拟功能网卡和所述第二虚拟功能网卡中的至少一个相关联,所述测试结果包括所述第二告警信息。
6.根据权利要求1所述的方法,其中,所述根据所述第一虚拟测试单元和所述第二虚拟测试单元对所述第一目标网卡和所述第二目标网卡进行测试,得到测试结果包括:
在所述第一虚拟测试单元和所述第二虚拟测试单元中的至少一个,执行数据包延迟测试任务,得到数据包延迟测试结果;以及
在所述数据包延迟测试结果表征异常的情况下,根据所述数据包延迟测试结果,生成第三告警信息,所述第三告警信息与所述第一虚拟功能网卡和所述第二虚拟功能网卡中的至少一个相关联,所述测试结果包括所述第三告警信息。
7.根据权利要求1所述的方法,其中,M个所述网卡安装在同一个服务器中。
8.一种网卡测试装置,应用于服务端,所述服务端安装有M个网卡,M为大于1的整数,所述服务端设置在Kubernetes服务集群中,所述网卡测试方法包括:
创建模块,用于在M个所述网卡中的第一目标网卡与第二目标网卡,分别创建至少一个第一虚拟功能网卡和至少一个第二虚拟功能网卡;
第一虚拟测试单元获得模块,用于将所述第一虚拟功能网卡挂载至所述服务端的第一基础调度单元,得到第一虚拟测试单元;
第二虚拟测试单元获得模块,用于将所述第二虚拟功能网卡挂载至所述服务端的第二基础调度单元,得到第二虚拟测试单元;以及
测试模块,用于根据所述第一虚拟测试单元和所述第二虚拟测试单元中的至少一个,对所述第一目标网卡和所述第二目标网卡进行测试,得到测试结果。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的方法。
11.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~7中任一项所述的方法。
CN202311477568.8A 2023-11-03 2023-11-03 网卡测试方法、装置、设备及存储介质 Pending CN117354190A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311477568.8A CN117354190A (zh) 2023-11-03 2023-11-03 网卡测试方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311477568.8A CN117354190A (zh) 2023-11-03 2023-11-03 网卡测试方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117354190A true CN117354190A (zh) 2024-01-05

Family

ID=89366796

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311477568.8A Pending CN117354190A (zh) 2023-11-03 2023-11-03 网卡测试方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117354190A (zh)

Similar Documents

Publication Publication Date Title
JP6484316B2 (ja) ファームウェアを遠隔更新するシステム及び方法
CN108509210B (zh) 自动更新基本输入输出系统的系统与方法
US10171377B2 (en) Orchestrating computing resources between different computing environments
CN108768730B (zh) 用于操作智能网卡的方法和装置
JP6608979B2 (ja) 電圧レギュレータセルフバーンインテストのための方法、システム、及び記憶媒体
US9348771B1 (en) Cloud-based instrument driver system
US11636016B2 (en) Cloud simulation and validation system
CN104579887A (zh) 云网关、云网关创建配置系统及方法
CN109672722B (zh) 数据部署方法及装置、计算机存储介质和电子设备
US11546431B2 (en) Efficient and extensive function groups with multi-instance function support for cloud based processing
US20170070401A1 (en) Network element diagnostic evaluation
JP2018147461A (ja) ブートのハードウェア周波数を動的に最適化するシステム及び方法
CN105357067A (zh) 一种云平台的测试方法及系统
CN113709810A (zh) 一种网络服务质量的配置方法、设备和介质
CN111767089A (zh) 加载文件的方法、装置、设备以及存储介质
US11635972B2 (en) Multi-tenant java agent instrumentation system
US20140108937A1 (en) Model-Based Configuration Capture and Replay in a Converged Infrastructure System to Support Remote Troubleshooting
KR20140099109A (ko) 다중 클라우드를 이용한 응용 서비스 시험 지원 시스템 및 그 방법
CN116257320B (zh) 一种基于dpu虚拟化配置管理方法、装置、设备及介质
US20180246845A1 (en) Virtualizing tcp/ip services with shared memory transport
CN117354190A (zh) 网卡测试方法、装置、设备及存储介质
US20220300611A1 (en) Run-time communications protocol parameter adjustment in containerized applications
US20210141868A1 (en) Heterogeneous-computing based emulator
US10554495B2 (en) Sending hardware specific soft metrics for each of a plurality of computing devices based on a plain language user policy
CN109271310B (zh) 移动应用程序网络功能的开发测试方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination