CN114338448B - 性能测试方法、装置、电子设备及存储介质 - Google Patents
性能测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114338448B CN114338448B CN202111639408.XA CN202111639408A CN114338448B CN 114338448 B CN114338448 B CN 114338448B CN 202111639408 A CN202111639408 A CN 202111639408A CN 114338448 B CN114338448 B CN 114338448B
- Authority
- CN
- China
- Prior art keywords
- information
- target
- variable
- interface
- initial
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000011056 performance test Methods 0.000 title abstract description 10
- 238000012360 testing method Methods 0.000 claims abstract description 91
- 230000006870 function Effects 0.000 claims description 117
- 230000005540 biological transmission Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 51
- 238000001514 detection method Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 8
- 230000003068 static effect Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 241000596871 Ixia Species 0.000 description 1
- 101100513046 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) eth-1 gene Proteins 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种性能测试方法、装置、电子设备及存储介质,涉及通信网络技术领域。该方法包括:基于目标网卡中的目标接口函数生成初始信息组,其中,初始信息组用于记录对目标报文进行接收和发送的多个网络接口;基于初始信息组,确定对目标报文进行处理时的目标信息;基于目标信息确定目标报文的发送方式;基于发送方式对目标报文的转发性能进行测试,得到测试结果。本申请通过设置能够对网络接口进行记录的信息组,以在此基础上确定对目标报文进行处理时对应的网络接口信息,能够根据网络接口信息确定目标报文的发送方式,在发送方式的基础上进行性能检测,准确、快速地检测出在无法达到线速时,性能问题在驱动层还是上层网络的协议层中。
Description
技术领域
本申请涉及通信网络技术领域,具体而言,涉及一种性能测试方法、装置、电子设备及存储介质。
背景技术
随着网络硬件发展的越来越快,单接口的网络吞吐越来越高,从刚开始的10M,到现在的100G也开始大量普及。虽然网卡硬件的性能越来越高,但是加上***软件后,整个软硬件一体的***的网络性能经常不能达到网卡的性能上限。
为了使整个***软件的网络转发性能达到网卡的线速而不丢包,线速即网络设备交换转发能力的一个标准,是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量。通常要先定位出网卡驱动在***下进行报文收发处理时,是否能达到网卡的线速。在达到网卡的线速时需要底层驱动能达到线速的前提下,加上上层协议栈的情况,但是现有技术中无法确定网卡中的底层驱动还是上层过协议栈的性能问题造成网卡无法达到线速,导致目前报文数据的转发性能较差。
发明内容
有鉴于此,本申请实施例的目的在于提供一种性能测试方法、装置、电子设备及存储介质,以改善现有技术中存在的报文数据的转发性能较差的问题。
为了解决上述问题,第一方面,本申请提供了一种性能测试方法,包括:
基于目标网卡中的目标接口函数生成初始信息组,其中,所述初始信息组用于记录对目标报文进行接收和发送的多个网络接口;
基于所述初始信息组,确定对所述目标报文进行处理时的目标信息;
基于所述目标信息确定所述目标报文的发送方式;
基于所述发送方式对所述目标报文的转发性能进行测试,得到测试结果。
在上述实现方式中,通过目标网卡中设置的目标接口函数生成对应的用于记录对目标报文进行接收和发送的网络接口的初始信息组,以在初始信息组的基础上确定以不同方式对目标报文进行处理时对应的目标信息,并根据目标信息确定目标报文的发送方式,通过对不同发送方式进行发送的目标报文的转发性能进行测试,从而在***中对目标报文进行转发时的转发性能无法达到线速时,判断性能问题是网卡的驱动层原因还是上层网络处理目标报文不及时的原因。本申请不需要改变整个***中对报文进行接收和发送的整体逻辑和驱动结构,能够准确、快速地对性能问题进行测试并定位,从而便于用户基于检测结果对性能问题进行处理,有效地提高了***对报文进行转发时的转发性能。
可选地,所述基于目标网卡中的目标接口函数生成初始信息组,包括:
在对所述目标网卡进行初始化时,调用所述目标网卡的第一接口函数;
基于所述第一接口函数在所述目标网卡中注册所述目标接口函数,其中,所述目标接口函数中包括读函数和写函数;
基于所述第一接口函数和所述目标接口函数生成触发文件;
在所述触发文件中生成所述初始信息组,所述初始信息组中的每一项初始信息用于记录对所述目标报文进行接收或发送的多个网络接口中的一个网络接口,所述初始信息组中的各项初始信息为初始值。
在上述实现方式中,在对目标网卡进行初始化时,能够调用***内核中的第一接口函数,并在第一接口函数的基础上注册目标接口函数,在目标接口函数中实现触发网络接口对目标报文进行处理时的读函数和写函数。通过调用第一接口函数和第二接口函数,在***中生成对应的触发文件,并在触发文件中生成具有多项初始信息且初始信息为初始值的初始信息组,以记录对目标报文进行接收或发送的多个网络接口,能够在触发网卡中的网络接口对目标报文进行处理时,对处理的网络接口进行记录,从而对目标报文在网卡驱动层中的处理方式进行记录。
可选地,所述目标信息包括第一接口信息和第二接口信息;基于所述初始信息组,确定对所述目标报文进行处理时的目标信息,包括:
若接收到触发命令,接收输入的网络接口数据,其中,所述网络接口数据中包括第一网络接口的第一接口数据和第二网络接口的第二接口数据;
根据所述写函数将所述第一接口数据写入到所述初始信息组中的第一初始信息中,得到记录所述第一网络接口的所述第一接口信息;
根据所述写函数将所述第二接口数据写入到所述初始信息组中的第二初始信息中,得到记录所述第二网络接口的所述第二接口信息。
在上述实现方式中,在触发网卡中的网络接口对目标报文进行处理时,能够接收到对应的触发命令,基于触发命令接收触发时输入的一对网络接口的网络接收数据。通过触发命令触发目标接口函数,使其中的读函数被调用,将接收到的两个接口数据分别写入初始信息组中的两个初始信息中,以根据两个网络接口对两个初始信息分别进行赋值,得到分别记录两个网络接口的第一接口信息和第二接口信息,由两个接口信息组成对目标报文进行处理时的目标信息。能够在网卡的驱动层触发网络接口对目标报文进行处理时,在初始信息组中对使用的网络接口进行实时地记录并得到对应的目标信息,以目标信息对目标报文在网卡驱动层中的处理方式进行记录。
可选地,所述方法还包括:
若未接收到所述触发命令,以所述第一初始信息和所述第二初始信息作为所述目标信息。
在上述实现方式中,在未接收到触发命令时,则***中通过上层网络中的协议层中的协议栈对目标报文进行处理,不使用网络接口对目标报文进行处理,直接以初始信息组中的两个初始信息作为对目标报文进行处理时的目标信息,以对协议层对目标报文进行处理时对应的网络接口状态进行表达。
可选地,所述基于所述目标信息确定所述目标报文的发送方式,包括:
基于所述目标信息,确定接收所述目标报文时的变量信息;
根据所述变量信息确定所述目标报文时的发送方式。
在上述实现方式中,在获取的对目标报文进行处理时的目标信息的基础上能够确定接收目标报文时的能够表示***内核中的网络接口的结构体的变量信息,从而根据变量信息确定出目标报文是由网卡的驱动层进行发送还是由上层网络中的协议层进行发送的发送方式,从而对驱动层和协议层的两种发送方式进行分别处理。
可选地,所述基于所述目标信息确定接收所述目标报文时的变量信息,包括:
在对所述目标报文进行接收时,设置所述目标网卡的目标结构体对应的初始变量,其中,所述初始变量包括第一变量和第二变量,所述第一变量和所述第二变量为默认值;
基于所述目标信息对所述初始变量进行更新,确定接收所述目标报文时的所述变量信息。
在上述实现方式中,在对目标报文进行接收的过程中,可以设置两个由***中内核表示网络接口结构体的变化的静态变量作为初始变量,初始变量中的两个变量都为默认的空值,在获取对目标报文进行处理时对应的目标信息后,根据目标信息对初始变量中的两个变量进行更新,从而对网络接口的结构体中的变化进行更新,能够确定***在接收目标报文时的表示当前网络接口结构体状态的变量信息,提高了变量信息的有效性和实时性。
可选地,所述基于所述目标信息对所述初始变量进行更新,确定接收所述目标报文时的所述变量信息,包括:
在所述目标信息为所述第一初始信息和所述第二初始信息时,则以所述初始变量中的所述第一变量和所述第二变量为所述变量信息;
在所述目标信息为所述第一接口信息和所述第二接口信息时,则调用目标函数基于所述第一接口信息和所述第二接口信息进行计算,得到第一返回值和第二返回值;
将所述第一变量的数值从所述默认值更新为所述第一返回值,得到第三变量;将所述第二变量的数值从所述默认值更新为所述第二返回值,得到第四变量,以所述第三变量和所述第四变量作为所述变量信息。
在上述实现方式中,通过目标信息的具体情况对初始变量进行不同的更新处理。在目标信息为第一初始信息和第二初始信息时,则表示使用上层网络的协议层对目标报文进行处理,不使用驱动层中的网络接口对目标报文进行处理,则直接以初始变量中两个为默认值的静态变量第一变量和第二变量作为变量信息。在目标信息为第一接口信息和第二接口信息时,表示使用网卡的驱动层中的网络接口对目标报文进行处理,则调用目标函数,分别以第一接口信息和第二接口信息作为参数进行计算,得到两个返回值,根据计算得到的返回值分别对初始变量中两个为默认值的静态变量的数值进行更新,得到第三变量和第四变量作为变量信息。能够根据对目标报文的不同的处理方式获取对应的能够表示内核中网络接口结构体的状态的变量信息。
可选地,所述根据所述变量信息确定所述目标报文时的发送方式,包括:
在所述变量信息中包括所述第一变量和所述第二变量时,则调用接收所述目标报文时的接收函数将所述目标报文发送到上层网络的协议栈中;
基于所述协议栈对所述目标报文进行发送;
在所述变量信息中包括所述第三变量和所述第四变量时,获取接收所述目标报文的接收接口信息;
在所述接收接口信息与所述第三变量匹配时,则在所述目标网卡的驱动层中调用所述第四变量的发送函数对所述目标报文进行发送;
在所述接收接口信息与所述第四变量匹配时,则在所述驱动层中调用所述第三变量的发送函数对所述目标报文进行发送。
在上述实现方式中,由于获取的变量信息能够表示内核中网络接口结构体的状态,因此可以根据变量信息确定对目标报文进行发送时的发送方式。判断变量信息为第一变量和第二变量,还是第三变量和第四变量,能够对变量信息中的数值进行判断。在变量信息为第一变量和第二变量时,变量的数值为默认的空值,则是使用上层网络中的协议层对目标报文进行处理的,因此直接调用接收目标报文时的接收函数将目标报文上传至上层网络中的协议栈中进行处理,由协议栈对目标报文进行发送,发送返回值为目标报文的实际个数。在变量信息为第三变量和第四变量时,变量的数值不为默认的控制,则是使用网卡的驱动层中的网络接口对目标报文进行处理,对接收目标报文过程中的接收接口的信息进行获取并与第三变量和第四变量进行匹配,在匹配成功时,则分别调用另一个变量的发送函数对目标报文进行发送,发送返回值为空值,可以通知上层网络中的协议层不需要对目标报文进行处理。能够根据变量信息确定对应的发送方式,以将驱动层和协议层中两种发送方式进行分别处理。
可选地,所述基于所述发送方式对所述目标报文的转发性能进行测试,得到测试结果,包括:
基于测试仪器对所述目标报文以所述发送方式进行发送时的转发性能进行测试;
在测试所述转发性能为未通过时,则所述测试结果为所述转发性能的性能问题在所述目标网卡的所述驱动层中;
在测试所述转发性能为通过时,则所述测试结果为所述转发性能的所述性能问题在所述协议栈中。
在上述实现方式中,在以发送方式对目标报文进行转发完成后,可以根据测试仪器对目标报文以发送方式进行发送时的转发性能进行测试,在测试转发性能未通过时,则测试结果为转发性能的性能问题位于目标网卡的驱动层中,导致转发性能无法达到线速。在测试转发性能通过时,则测试结果为转发性能的性能问题在上层网络的协议层中,协议层中还具有提升空间才能够使转发性能达到线速。能够便于用户根据测试结果对***中网卡的驱动层和上层网络的协议层进行适应地调整,以使***的转发性能能够达到线速,提高了***对报文数据进行转发时的转发性能。
第二方面,本申请还提供了一种性能测试装置,所述装置包括:
初始模块,用于基于目标网卡中的目标接口函数生成初始信息组,其中,所述初始信息组用于记录对目标报文进行接收和发送的多个网络接口;
确定模块,用于基于所述初始信息组,确定对所述目标报文进行处理时的目标信息;
发送模块,用于基于所述目标信息确定所述目标报文的发送方式;
测试模块,用于基于所述发送方式对所述目标报文的转发性能进行测试,得到测试结果。
在上述实现方式中,通过初始模块根据目标网卡中设置的目标接口函数生成对应的用于记录对目标报文进行接收和发送的网络接口的初始信息组;通过确定模块在初始信息组的基础上确定以不同方式对目标报文进行处理时对应的目标信息;通过发送模块根据不同处理方式时的目标信息确定目标报文的发送方式;通过测试模块对不同发送方式进行发送的目标报文的转发性能进行测试,从而在***中对目标报文进行转发时的转发性能无法达到线速时,判断性能问题是网卡的驱动层原因还是上层网络处理目标报文不及时的原因。能够准确、快速地对性能问题进行测试并定位,从而便于用户基于检测结果对性能问题进行处理,有效地提高了***对报文进行转发时的转发性能。
第三方面,本申请还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述任一实现方式中的步骤。
第四方面,本申请还提供了一种计算机可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一实现方式中的步骤。
综上所述,本申请提供了一种性能测试方法、装置、电子设备及存储介质,通过对报文处理过程中的网络接口进行记录,能够根据网络接口的记录信息确定目标报文的发送方式,在发送方式的基础上进行性能检测,准确、快速地检测出在无法达到线速时,性能问题在驱动层还是上层网络的协议层中,以根据性能测试结果对***的转发性能进行提升。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种电子设备的方框示意图;
图2为本申请实施例提供的一种性能测试方法的流程示意图;
图3为本申请实施例提供的一种步骤S200的详细流程示意图;
图4为本申请实施例提供的一种步骤S300的详细流程示意图;
图5为本申请实施例提供的一种步骤S400的详细流程示意图;
图6为本申请实施例提供的一种步骤S410的详细流程示意图;
图7为本申请实施例提供的一种步骤S420的详细流程示意图;
图8为本申请实施例提供的一种步骤S500的详细流程示意图;
图9为本申请实施例提供的一种性能测试装置的结构模块示意图。
图标:100-电子设备;111-存储器;112-存储控制器;113-处理器;114-外设接口;115-输入输出单元;116-显示单元;600-性能测试装置;610-初始模块;620-确定模块;630-发送模块;640-测试模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请实施例的一部分实施例,而不是全部的实施例。基于本申请实施例的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
现有技术中,为了使整个***软件的网络转发性能达到网卡的线速(网络设备交换转发能力的一个标准,是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量)而不丢包。通常要先定位出网卡驱动在***下进行报文收发处理时,是否能达到网卡的线速。在达到网卡的线速时需要底层驱动能达到线速的前提下,加上上层协议栈的情况。在对***中的处理性能进行定位时,目前可以通过Netperf(一种网络性能的测试工具)进行测试,但是对与转发性能比较接近线速,例如丢包率低于0.001%,转发性能为99%及以上,但无法到达线速的***中,无法定位出性能问题是网卡的驱动层本身的原因,还是上层网络的协议层处理报文不够及时的原因,无法确定网卡中的底层驱动还是上层过协议栈的性能问题造成网卡无法达到线速,不能对性能问题进行快速、准确地定位和解决,导致目前报文数据的转发性能较差。
为了解决上述问题,本申请实施例提供了一种性能测试方法,应用于电子设备,电子设备可以为服务器、个人电脑(Personal Computer,PC)、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)等具有逻辑计算功能的电子设备,能够快速、准确地测试出***对报文进行转发时的性能问题。
可选地,请参阅图1,图1为本申请实施例提供的一种电子设备的方框示意图。电子设备100可以包括存储器111、存储控制器112、处理器113、外设接口114、输入输出单元115、显示单元116。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对电子设备100的结构造成限定。例如,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
上述的存储器111、存储控制器112、处理器113、外设接口114、输入输出单元115及显示单元116各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器113用于执行存储器中存储的可执行模块。
其中,存储器111可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,简称EEPROM)等。其中,存储器111用于存储程序,所述处理器113在接收到执行指令后,执行所述程序,本申请实施例任一实施例揭示的过程定义的电子设备100所执行的方法可以应用于处理器113中,或者由处理器113实现。
上述的处理器113可能是一种集成电路芯片,具有信号的处理能力。上述的处理器113可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述的外设接口114将各种输入/输出装置耦合至处理器113以及存储器111。在一些实施例中,外设接口114,处理器113以及存储控制器112可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
上述的输入输出单元115用于提供给用户输入数据。所述输入输出单元115可以是,但不限于,鼠标和键盘等。
上述的显示单元116在电子设备100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。在本申请实施例中,显示单元116可以显示报文的多种处理流程和多种相关信息。
本实施例中的电子设备可以用于执行本申请实施例提供的各个性能测试方法中的各个步骤。下面通过几个实施例详细描述性能测试方法的实现过程。
请参阅图2,图2为本申请实施例提供的一种性能测试方法的流程示意图,该方法可以包括以下步骤:
步骤S200,基于目标网卡中的目标接口函数生成初始信息组。
其中,根据目标网卡中调用的目标接口函数,生成并添加对应的初始信息组,无需对***的驱动以及硬件进行修改就能够对报文处理时的多个网络接口进行记录。初始信息组中可以包括多个初始信息,分别用于记录对目标报文进行接收和发送的多个不同的网络接口。可选地,初始信息组中可以为字符串数组的形式进行记录,能够对处理目标报文时,相关的多个网络接口的接口名称、编号、接口状态等多种数据进行记录。
步骤S300,基于所述初始信息组,确定对所述目标报文进行处理时的目标信息。
其中,能够在初始信息组的基础上确定以不同方式对目标报文进行处理时对应的目标信息。不同的处理方式可以包括在目标网卡中的驱动层中以网络接口的方式对目标报文进行处理,也可以为在***的上层网络的协议层中以协议栈的方式对目标报文进行处理。
步骤S400,基于所述目标信息确定所述目标报文的发送方式。
其中,根据对目标报文进行处理的目标信息确定对目标报文进行发送时的发送方式。发送方式可以包括通过目标网卡中的驱动层驱动网络接口进行发送,也可以包括由***的上层网络的协议层进行发送,***可以为Linux***等多种操作***。
步骤S500,基于所述发送方式对所述目标报文的转发性能进行测试,得到测试结果。
其中,对目标报文以确定的发送方式进行发送后的转发性能进行测试,能够在***中对目标报文进行转发时的转发性能无法达到线速时,对性能问题进行快速、准确地定位,测试得到性能问题是网卡的驱动层原因还是上层网络处理目标报文不及时的原因的测试结果。
可选地,在得到对应的测试结果之后,还可以根据测试结果中定位的性能问题,对目标网卡的驱动层或者***中上层网络的协议层进行调整或修改处理,以对性能问题进行调整和解决,使***在对报文数据进行转发时,转发性能能够达到线速,从而有效地提高了***的转发性能。
在图2所示的实施例中,能够在***对报文数据进行转发的转发性能未达到线速时,准确、快速地对性能问题进行测试并定位。
可选地,请参阅图3,图3为本申请实施例提供的一种步骤S200的详细流程示意图,步骤S200中还可以包括步骤S210-S240。
步骤S210,在对所述目标网卡进行初始化时,调用所述目标网卡的第一接口函数。
其中,在对目标网卡进行初始化时,可以对调用目标网卡中的初始化函数probe函数进行初始化。在初始化时,可以在probe函数中设置对应的PROC文件***(一种伪文件***,在运行时访问内核内部数据结构、改变内核设置的机制,以文件***的方式为访问***内核数据的操作提供接口)的接口函数,以对内核态与应用态中过传递信息的接口之间的关系进行获取。调用PROC文件***中的第一接口函数,第一接口函数可以为PROC_create的内核接口的接口函数。
步骤S220,基于所述第一接口函数在所述目标网卡中注册所述目标接口函数。
其中,在第一接口函数的基础上再注册一个PROC接口对应的目标接口函数,目标接口函数中包括读函数和写函数,以实现数据的读取和写入功能,分别用于从应用态输入和获取当前需要转发的网络接口的相关信息。
步骤S230,基于所述第一接口函数和所述目标接口函数生成触发文件。
其中,在对第一接口函数和目标接口函数进行调用完成后,能够根据第一接口函数和目标接口函数接收从应用态传递的网络接口的信息,在***中对应的PROC文件***的相关目录中生成可以通过特定的触发状态触发的触发文件。可选地,PROC文件***的相关目录可以为/proc/net,触发文件可以命名为netbypass文件。
步骤S240,在所述触发文件中生成所述初始信息组。
其中,在触发文件中生成能够记录对目标报文进行接收和发送的多个网络接口的初始信息组。初始信息组中的每一项初始信息用于记录对目标报文进行接收或发送的多个网络接口中的一个网络接口,初始信息组中的各项初始信息为初始值。
可选地,初始信息组中可以包括两个初始信息,分别记为recv_dev[0]和recv_dev[1],初始信息的初始值为空值的字符串数组,既没有记录相关的网络接口。
在图3所示的实施例中,不需要改变整个***中对报文进行接收和发送的整体逻辑和驱动结构,通过设置记录网络接口的初始信息就能够对报文的处理过程进行记录。
可选地,请参阅图4,图4为本申请实施例提供的一种步骤S300的详细流程示意图,步骤S300中还可以包括步骤S310-S340。
步骤S310,若接收到触发命令,接收输入的网络接口数据。
其中,在使用目标网卡的驱动层调用网络接口对目标报文进行处理时,***能够生成并响应触发该状态的触发命令,触发命令可以为echo命令,能够基于TCP(Transmission Control Protocol,传输控制协议)或UDP(User Datagram Protocol,用户数据包协议)根据应答协议生成对应的触发命令。在接收到触发命令时,通过响应触发命令触发目标接口函数中的读函数,接收输入的一对网络接口的网络接口数据,网络接口数据中包括使用的第一网络接口的第一接口数据和第二网络接口的第二接口数据这一对网络接口的数据。
可选地,第一接口数据和第二接口数据也快可以为两个字符串数组,分别包括第一网络接口和第二网络接口的接口名字、编号、状态等相关数据,可以将第一接口数据和第二接口数据分别记为eth0和eth1。
步骤S320,根据所述写函数将所述第一接口数据写入到所述初始信息组中的第一初始信息中,得到记录所述第一网络接口的所述第一接口信息。
其中,触发命令能够触发目标接口函数中的写函数,通过调用写函数将接收到的第一接口数据写入到初始信息组中为初始值的第一初始信息中,以通过第一接口数据对第一初始信息进行赋值,得到能够对第一网络接口进行记录的第一接口信息。
步骤S330,根据所述写函数将所述第二接口数据写入到所述初始信息组中的第二初始信息中,得到记录所述第二网络接口的所述第二接口信息。
其中,通过调用写函数还能够将接收到的第二接口数据写入到初始信息组中为初始值的第二一初始信息中,以通过第二接口数据对第二初始信息进行赋值,得到能够对第二网络接口进行记录的第二接口信息。
值得说明的是,在接收并响应触发命令时,由第一接口信息和第二接口信息这两个接口信息能够组成对目标报文进行处理时的目标信息,能够在网卡的驱动层触发网络接口对目标报文进行处理时,在初始信息组中对使用的网络接口进行实时地记录并得到对应的目标信息,以目标信息对目标报文在网卡驱动层中的处理方式进行记录。
或,步骤S340,若未接收到所述触发命令,以所述第一初始信息和所述第二初始信息作为所述目标信息。
其中,在未接收到触发命令时,则***中通过上层网络中的协议层中的协议栈对目标报文进行处理,不使用网络接口对目标报文进行处理,直接以初始信息组中的两个初始信息作为对目标报文进行处理时的目标信息,以对协议层对目标报文进行处理,未使用网络接口进行处理的对应状态进行表达。
在图4所示的实施例中,能够根据不同的处理方式确定不同的目标信息,以对处理时的状态进行表示。
可选地,请参阅图5,图5为本申请实施例提供的一种步骤S400的详细流程示意图,步骤S400中还可以包括步骤S410-S420。
步骤S410,基于所述目标信息,确定接收所述目标报文时的变量信息。
其中,获取的对目标报文进行处理时的目标信息的基础上,能够确定接收目标报文时的能够表示***内核中的网络接口的结构体的变量信息的具体数值,以根据变量信息对***内核中网络接口的结构体的状态进行获取。
步骤S420,根据所述变量信息确定所述目标报文时的发送方式。
其中,由于变量信息能够表示对目标报文进行处理时,***内核中网络接口的结构体的接口状态,因此在变量信息的基础上能够确定出目标报文是由网卡的驱动层进行发送还是由上层网络中的协议层进行发送的发送方式,能够对驱动层和协议层的两种发送方式进行分别处理。
在图5所示的实施例中,能够定义静态变量对网络接口的结构体的状态进行表示,从而在此基础上确定发送目标报文时的发送方式。
可选地,请参阅图6,图6为本申请实施例提供的一种步骤S410的详细流程示意图,步骤S410中还可以包括步骤S411-S412。
步骤S411,在对所述目标报文进行接收时,设置所述目标网卡的目标结构体对应的初始变量。
其中,基于目标结构体定义对应的初始变量,目标结构体可以为struct net_device结构体,能够表示***内核中的网络接口的结构体,初始变量为静态变量,可以包括第一变量和第二变量,第一变量和第二变量为默认值,默认值为空值,第一变量和第二变量可以记为dev1和dev2。
步骤S412,基于所述目标信息对所述初始变量进行更新,确定接收所述目标报文时的所述变量信息。
其中,在获取对目标报文进行处理时对应的目标信息后,由于初始变量为默认的空值,在对目标报文进行接收时,需要根据目标信息对初始变量中的两个变量的数值进行更新,从而对初始变量中网络接口的结构体中的变化进行更新,得到接收目标报文时的变量信息。
可选地,由于目标信息中包括不同的信息,根据不同的目标信息可以采用不同的方式对初始变量进行更新,更新方式可以包括:在目标信息为第一初始信息和第二初始信息时,则以初始变量中的第一变量和第二变量为变量信息。
其中,在目标信息为第一初始信息和第二初始信息时,则目标信息为空值,表示***使用上层网络的协议层对目标报文进行处理,不使用驱动层中的网络接口对目标报文进行处理,因此对目标报文进行接收时,网络接口的结构体的状态并没有发生变化,可以直接以初始变量中两个为默认值的静态变量第一变量和第二变量作为变量信息。
可选地,更新方式还可以包括:在目标信息为第一接口信息和第二接口信息时,则调用目标函数基于第一接口信息和第二接口信息进行计算,得到第一返回值和第二返回值;将第一变量的数值从默认值更新为第一返回值,得到第三变量;将第二变量的数值从默认值更新为第二返回值,得到第四变量,以第三变量和第四变量作为变量信息。
其中,在在目标信息为第一接口信息和第二接口信息时,则目标信息不为空值,表示使用网卡的驱动层中的网络接口对目标报文进行处理,则调用目标函数,分别以第一接口信息和第二接口信息作为参数进行计算,得到两个返回值,根据计算得到的返回值分别对初始变量中两个为默认值的静态变量的数值进行更新,根据第一返回值和第二返回值分别对默认值的第一变量和第二变量进行赋值,得到第三变量和第四变量作为变量信息。示例地,进行计算时调用的目标函数可以为dev_get_by_name等降值函数。
值得说明的是,针对不同的目标信息,能够根据对目标报文的不同的处理方式获取对应的能够表示内核中网络接口结构体的状态的变量信息。
在图6所示的实施例中,能够确定***在接收目标报文时的表示当前网络接口结构体状态的变量信息,提高了变量信息的有效性和实时性。
可选地,请参阅图7,图7为本申请实施例提供的一种步骤S420的详细流程示意图,步骤S420中还可以包括步骤S421-S425。
值得说明的是,基于变量信息对目标报文进行正常的接收和处理过程,需要对目标报文进行发送时,对变量信息中的两个变量的数值进行判断,从而对网络接口的结构体的状态进行获取,以确定对应的发送方式。
步骤S421,在所述变量信息中包括所述第一变量和所述第二变量时,则调用接收所述目标报文时的接收函数将所述目标报文发送到上层网络的协议栈中。
其中,在变量信息为第一变量和第二变量时,变量的数值为默认的空值,则网络接口的结构体的状态未发生变化,处理方式为使用上层网络中的协议层对目标报文进行处理,因此直接调用接收目标报文时的接收函数将目标报文上传至上层网络中的协议栈中进行处理。
示例地,接收函数可以为netif_receive_skb等接收函数。
步骤S422,基于所述协议栈对所述目标报文进行发送。
其中,上层网络的协议栈接收到目标报文后,能够在协议层中由协议栈对一个或多个目标报文进行发送。
可选地,在协议层中对目标报文进行发送后,可以反馈对应得的发送返回值,发送返回值可以为目标报文的实际个数。
步骤S423,在所述变量信息中包括所述第三变量和所述第四变量时,获取接收所述目标报文的接收接口信息。
其中,在变量信息为第三变量和第四变量时,变量的数值不为默认的控制,则网络接口的结构体的状态发生变化,处理方式为使用网卡的驱动层中的网络接口对目标报文进行处理,因此不需要由上层网络的协议层对目标报文进行发送,对接收目标报文过程中的接收接口的信息进行获取,获取的接收接口信息可以包括对报文进行接收时的网络接口的接口名字、编号、状态等相关信息。
步骤S424,在所述接收接口信息与所述第三变量匹配时,则在所述目标网卡的驱动层中调用所述第四变量的发送函数对所述目标报文进行发送。
其中,将接收接口信息与第三变量和第四变量进行匹配,在与第三变量匹配成功时,例如接收接口的名字与第三变量中对应的第一网络接口的名字相同,则第一网络接口为接收目标报文时的接收接口,以第四变量对应的第二网络接口作为发送接口,调用第四变量对应的第二网络接口的发送函数对一个或多个目标报文进行发送。
步骤S425,在所述接收接口信息与所述第四变量匹配时,则在所述驱动层中调用所述第三变量的发送函数对所述目标报文进行发送。
其中,将接收接口信息与第三变量和第四变量进行匹配,在与第四变量匹配成功时,例如接收接口的名字与第四变量中对应的第二网络接口的名字相同,则第二网络接口为接收目标报文时的接收接口,以第三变量对应的第一网络接口作为发送接口,调用第三变量对应的第一网络接口的发送函数对一个或多个目标报文进行发送。
可选地,在驱动层中使用网络接口对目标报文进行发送后,可以反馈对应得的发送返回值,发送返回值可以为空值,以通知上层网络的协议层不需要对目标报文进行处理。
在图7所示的实施例中,能够根据变量信息确定对应的发送方式,以将驱动层和协议层中两种发送方式进行分别处理。
可选地,请参阅图8,图8为本申请实施例提供的一种步骤S500的详细流程示意图,步骤S500中还可以包括步骤S510-S530。
步骤S510,基于测试仪器对所述目标报文以所述发送方式进行发送时的转发性能进行测试。
其中,在以发送方式对目标报文进行转发完成后,可以根据测试仪器对目标报文以发送方式进行发送时的转发性能进行测试,测试仪器可以为IXIA网络测试仪或者思博伦网络测试仪等多种测试仪器。
步骤S520,在测试所述转发性能为未通过时,则所述测试结果为所述转发性能的性能问题在所述目标网卡的所述驱动层中。
其中,在测试仪器检测到转发后的目标报文不能完全通过时,则转发性能未通过,测试结果为转发性能的性能问题位于目标网卡的驱动层中,导致转发性能无法达到线速。
步骤S530,在测试所述转发性能为通过时,则所述测试结果为所述转发性能的所述性能问题在所述协议栈中。
其中,在测试仪器检测到转发后的目标报文能够完全通过时,则转发性能通过,测试结果为转发性能的性能问题在上层网络的协议层中,协议层中还具有提升空间才能够使转发性能达到线速。
在图8所示的实施例中,能够在分开处理的发送方式的基础上快速、准确地定位性能问题的位置,便于用户根据测试结果对***中网卡的驱动层和上层网络的协议层进行适应地调整,以使***的转发性能能够达到线速,提高了***对报文数据进行转发时的转发性能。
请参阅图9,图9为本申请实施例提供的一种性能测试装置的结构模块示意图,性能测试装置600中可以包括:
初始模块610,用于基于目标网卡中的目标接口函数生成初始信息组,其中,所述初始信息组用于记录对目标报文进行接收和发送的多个网络接口;
确定模块620,用于基于所述初始信息组,确定对所述目标报文进行处理时的目标信息;
发送模块630,用于基于所述目标信息确定所述目标报文的发送方式;
测试模块640,用于基于所述发送方式对所述目标报文的转发性能进行测试,得到测试结果。
在一可选的实施方式中,初始模块610中还可以包括调用子模块、注册子模块和生成子模块;
调用子模块,用于在对所述目标网卡进行初始化时,调用所述目标网卡的第一接口函数;
注册子模块,用于基于所述第一接口函数在所述目标网卡中注册所述目标接口函数,其中,所述目标接口函数中包括读函数和写函数;
生成子模块,用于基于所述第一接口函数和所述目标接口函数生成触发文件;在所述触发文件中生成所述初始信息组,所述初始信息组中的每一项初始信息用于记录对所述目标报文进行接收或发送的多个网络接口中的一个网络接口,所述初始信息组中的各项初始信息为初始值。
在一可选的实施方式中,确定模块620中还可以包括触发子模块和非触发子模块;
触发子模块,用于若接收到触发命令,接收输入的网络接口数据,其中,所述网络接口数据中包括第一网络接口的第一接口数据和第二网络接口的第二接口数据;根据所述写函数将所述第一接口数据写入到所述初始信息组中的第一初始信息中,得到记录所述第一网络接口的所述第一接口信息;根据所述写函数将所述第二接口数据写入到所述初始信息组中的第二初始信息中,得到记录所述第二网络接口的所述第二接口信息。
非触发自模块,用于若未接收到所述触发命令,以所述第一初始信息和所述第二初始信息作为所述目标信息。
在一可选的实施方式中,发送模块630中还可以包括变量子模块和发送子模块;
变量子模块,用于基于所述目标信息,确定接收所述目标报文时的变量信息;
发送子模块,用于根据所述变量信息确定所述目标报文时的发送方式。
在一可选的实施方式中,变量子模块中还可以包括设置单元和更新单元;
设置单元,用于在对所述目标报文进行接收时,设置所述目标网卡的目标结构体对应的初始变量,其中,所述初始变量包括第一变量和第二变量,所述第一变量和所述第二变量为默认值;
更新单元,用于基于所述目标信息对所述初始变量进行更新,确定接收所述目标报文时的所述变量信息。
在一可选的实施方式中,更新单元还用于在所述目标信息为所述第一初始信息和所述第二初始信息时,则以所述初始变量中的所述第一变量和所述第二变量为所述变量信息;
在一可选的实施方式中,更新单元还用于在所述目标信息为所述第一接口信息和所述第二接口信息时,则调用目标函数基于所述第一接口信息和所述第二接口信息进行计算,得到第一返回值和第二返回值;将所述第一变量的数值从所述默认值更新为所述第一返回值,得到第三变量;将所述第二变量的数值从所述默认值更新为所述第二返回值,得到第四变量,以所述第三变量和所述第四变量作为所述变量信息。
在一可选的实施方式中,发送子模块中还包括协议单元和驱动单元;
协议单元,用于在所述变量信息中包括所述第一变量和所述第二变量时,则调用接收所述目标报文时的接收函数将所述目标报文发送到上层网络的协议栈中;基于所述协议栈对所述目标报文进行发送;
驱动单元,用于在所述变量信息中包括所述第三变量和所述第四变量时,获取接收所述目标报文的接收接口信息;在所述接收接口信息与所述第三变量匹配时,则在所述目标网卡的驱动层中调用所述第四变量的发送函数对所述目标报文进行发送;在所述接收接口信息与所述第四变量匹配时,则在所述驱动层中调用所述第三变量的发送函数对所述目标报文进行发送。
在一可选的实施方式中,测试模块640中还可以包括测试子模块、通过子模块和未通过子模块;
测试子模块,用于基于测试仪器对所述目标报文以所述发送方式进行发送时的转发性能进行测试;
通过子模块,用于在测试所述转发性能为未通过时,则所述测试结果为所述转发性能的性能问题在所述目标网卡的所述驱动层中;
未通过子模块,用于在在测试所述转发性能为通过时,则所述测试结果为所述转发性能的所述性能问题在所述协议栈中。
由于本申请实施例中的装置解决问题的原理与前述的性能测试方法的实施例相似,因此本实施例中的性能测试装置600的实施可以参见上述性能测试方法的实施例中的描述,重复之处不再赘述。
本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行本实施例提供的性能测试方法中任一项所述方法中的步骤。
应当理解是,该电子设备可以是服务器、个人电脑、平板电脑、智能手机、个人数字助理等具有逻辑计算功能的电子设备。
本申请实施例还提供了一种计算机可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本实施例提供的性能测试方法中任一项所述方法中的步骤。
综上所述,本申请实施例提供了一种性能测试方法、装置、电子设备及存储介质,通过对报文处理过程中的网络接口进行记录,能够根据网络接口的记录信息确定目标报文的发送方式,在发送方式的基础上进行性能检测,准确、快速地检测出在无法达到线速时,性能问题在驱动层还是上层网络的协议层中,以根据性能测试结果对***的转发性能进行提升。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。因此本实施例还提供了一种可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行区块数据存储方法中任一项所述方法中的步骤。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RanDom Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (9)
1.一种性能测试方法,其特征在于,包括:
基于目标网卡中的目标接口函数生成初始信息组,其中,所述初始信息组用于记录对目标报文进行接收和发送的多个网络接口;
基于所述初始信息组,确定对所述目标报文进行处理时的目标信息;
基于所述目标信息确定所述目标报文的发送方式;
基于所述发送方式对所述目标报文的转发性能进行测试,得到测试结果;
其中,所述目标信息包括第一接口信息和第二接口信息;所述基于所述初始信息组,确定对所述目标报文进行处理时的目标信息,包括:若接收到触发命令,接收输入的网络接口数据,其中,所述网络接口数据中包括第一网络接口的第一接口数据和第二网络接口的第二接口数据;根据写函数将所述第一接口数据写入到所述初始信息组中的第一初始信息中,得到记录所述第一网络接口的所述第一接口信息;根据所述写函数将所述第二接口数据写入到所述初始信息组中的第二初始信息中,得到记录所述第二网络接口的所述第二接口信息;
所述基于所述目标信息确定所述目标报文的发送方式,包括:基于所述目标信息,确定接收所述目标报文时的变量信息;根据所述变量信息确定所述目标报文时的发送方式;其中,所述变量信息为表示***内核中的网络接口的结构体的接口状态的信息;
所述基于所述发送方式对所述目标报文的转发性能进行测试,得到测试结果,包括:基于测试仪器对所述目标报文以所述发送方式进行发送时的转发性能进行测试;在测试所述转发性能为未通过时,则所述测试结果为所述转发性能的性能问题在所述目标网卡的驱动层中;在测试所述转发性能为通过时,则所述测试结果为所述转发性能的所述性能问题在协议栈中。
2.根据权利要求1所述的方法,其特征在于,所述基于目标网卡中的目标接口函数生成初始信息组,包括:
在对所述目标网卡进行初始化时,调用所述目标网卡的第一接口函数;
基于所述第一接口函数在所述目标网卡中注册所述目标接口函数,其中,所述目标接口函数中包括读函数和写函数;
基于所述第一接口函数和所述目标接口函数生成触发文件;
在所述触发文件中生成所述初始信息组,所述初始信息组中的每一项初始信息用于记录对所述目标报文进行接收或发送的多个网络接口中的一个网络接口,所述初始信息组中的各项初始信息为初始值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若未接收到所述触发命令,以所述第一初始信息和所述第二初始信息作为所述目标信息。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标信息确定接收所述目标报文时的变量信息,包括:
在对所述目标报文进行接收时,设置所述目标网卡的目标结构体对应的初始变量,其中,所述初始变量包括第一变量和第二变量,所述第一变量和所述第二变量为默认值;
基于所述目标信息对所述初始变量进行更新,确定接收所述目标报文时的所述变量信息。
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标信息对所述初始变量进行更新,确定接收所述目标报文时的所述变量信息,包括:
在所述目标信息为所述第一初始信息和所述第二初始信息时,则以所述初始变量中的所述第一变量和所述第二变量为所述变量信息;
在所述目标信息为所述第一接口信息和所述第二接口信息时,则调用目标函数基于所述第一接口信息和所述第二接口信息进行计算,得到第一返回值和第二返回值;
将所述第一变量的数值从所述默认值更新为所述第一返回值,得到第三变量;将所述第二变量的数值从所述默认值更新为所述第二返回值,得到第四变量,以所述第三变量和所述第四变量作为所述变量信息。
6.根据权利要求5所述的方法,其特征在于,所述根据所述变量信息确定所述目标报文时的发送方式,包括:
在所述变量信息中包括所述第一变量和所述第二变量时,则调用接收所述目标报文时的接收函数将所述目标报文发送到上层网络的协议栈中;
基于所述协议栈对所述目标报文进行发送;
在所述变量信息中包括所述第三变量和所述第四变量时,获取接收所述目标报文的接收接口信息;
在所述接收接口信息与所述第三变量匹配时,则在所述目标网卡的驱动层中调用所述第四变量的发送函数对所述目标报文进行发送;
在所述接收接口信息与所述第四变量匹配时,则在所述驱动层中调用所述第三变量的发送函数对所述目标报文进行发送。
7.一种性能测试装置,其特征在于,所述装置包括:
初始模块,用于基于目标网卡中的目标接口函数生成初始信息组,其中,所述初始信息组用于记录对目标报文进行接收和发送的多个网络接口;
确定模块,用于基于所述初始信息组,确定对所述目标报文进行处理时的目标信息;
发送模块,用于基于所述目标信息确定所述目标报文的发送方式;
测试模块,用于基于所述发送方式对所述目标报文的转发性能进行测试,得到测试结果;
其中,所述目标信息包括第一接口信息和第二接口信息;所述确定模块具体用于:若接收到触发命令,接收输入的网络接口数据,其中,所述网络接口数据中包括第一网络接口的第一接口数据和第二网络接口的第二接口数据;根据写函数将所述第一接口数据写入到所述初始信息组中的第一初始信息中,得到记录所述第一网络接口的所述第一接口信息;根据所述写函数将所述第二接口数据写入到所述初始信息组中的第二初始信息中,得到记录所述第二网络接口的所述第二接口信息;
所述发送模块具体用于:基于所述目标信息,确定接收所述目标报文时的变量信息;根据所述变量信息确定所述目标报文时的发送方式;其中,所述变量信息为表示***内核中的网络接口的结构体的接口状态的信息;
所述测试模块具体用于:基于测试仪器对所述目标报文以所述发送方式进行发送时的转发性能进行测试;在测试所述转发性能为未通过时,则所述测试结果为所述转发性能的性能问题在所述目标网卡的驱动层中;在测试所述转发性能为通过时,则所述测试结果为所述转发性能的所述性能问题在协议栈中。
8.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器运行所述程序指令时,执行权利要求1-6中任一项所述方法中的步骤。
9.一种计算机可读取存储介质,其特征在于,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行权利要求1-6任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111639408.XA CN114338448B (zh) | 2021-12-29 | 2021-12-29 | 性能测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111639408.XA CN114338448B (zh) | 2021-12-29 | 2021-12-29 | 性能测试方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338448A CN114338448A (zh) | 2022-04-12 |
CN114338448B true CN114338448B (zh) | 2024-02-20 |
Family
ID=81016466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111639408.XA Active CN114338448B (zh) | 2021-12-29 | 2021-12-29 | 性能测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338448B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005015837A1 (fr) * | 2003-08-07 | 2005-02-17 | Huawei Technologies Co., Ltd. | Procede et systeme de mise en oeuvre d'emission de paquets de donnees |
CN103236956A (zh) * | 2013-04-18 | 2013-08-07 | 神州数码网络(北京)有限公司 | 一种对通讯设备进行吞吐量测试的方法及交换机 |
CN107360056A (zh) * | 2017-06-30 | 2017-11-17 | 中国航空无线电电子研究所 | 基于rfc2544的afdx性能测试方法 |
WO2018107433A1 (zh) * | 2016-12-15 | 2018-06-21 | 华为技术有限公司 | 信息处理方法和装置 |
WO2019205280A1 (zh) * | 2018-04-24 | 2019-10-31 | 平安科技(深圳)有限公司 | 服务器的测试方法、装置、设备及计算机可读存储介质 |
CN110708250A (zh) * | 2019-08-26 | 2020-01-17 | 广州市高科通信技术股份有限公司 | 一种提高数据转发性能的方法、电子设备及存储介质 |
WO2020119430A1 (zh) * | 2018-12-14 | 2020-06-18 | 深圳壹账通智能科技有限公司 | 协议接口测试方法、装置、计算机设备和存储介质 |
CN112883007A (zh) * | 2021-02-20 | 2021-06-01 | 杭州迪普科技股份有限公司 | 用于Linux***的本机协议报文的处理方法及装置 |
WO2021189898A1 (zh) * | 2020-10-09 | 2021-09-30 | 平安科技(深圳)有限公司 | 数据的协议转化方法、***、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080181254A1 (en) * | 2007-01-25 | 2008-07-31 | Inventec Corporation | Data transmission method |
-
2021
- 2021-12-29 CN CN202111639408.XA patent/CN114338448B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005015837A1 (fr) * | 2003-08-07 | 2005-02-17 | Huawei Technologies Co., Ltd. | Procede et systeme de mise en oeuvre d'emission de paquets de donnees |
CN103236956A (zh) * | 2013-04-18 | 2013-08-07 | 神州数码网络(北京)有限公司 | 一种对通讯设备进行吞吐量测试的方法及交换机 |
WO2018107433A1 (zh) * | 2016-12-15 | 2018-06-21 | 华为技术有限公司 | 信息处理方法和装置 |
CN107360056A (zh) * | 2017-06-30 | 2017-11-17 | 中国航空无线电电子研究所 | 基于rfc2544的afdx性能测试方法 |
WO2019205280A1 (zh) * | 2018-04-24 | 2019-10-31 | 平安科技(深圳)有限公司 | 服务器的测试方法、装置、设备及计算机可读存储介质 |
WO2020119430A1 (zh) * | 2018-12-14 | 2020-06-18 | 深圳壹账通智能科技有限公司 | 协议接口测试方法、装置、计算机设备和存储介质 |
CN110708250A (zh) * | 2019-08-26 | 2020-01-17 | 广州市高科通信技术股份有限公司 | 一种提高数据转发性能的方法、电子设备及存储介质 |
WO2021189898A1 (zh) * | 2020-10-09 | 2021-09-30 | 平安科技(深圳)有限公司 | 数据的协议转化方法、***、电子设备及存储介质 |
CN112883007A (zh) * | 2021-02-20 | 2021-06-01 | 杭州迪普科技股份有限公司 | 用于Linux***的本机协议报文的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114338448A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11734421B2 (en) | Systems and methods to detect and neutralize malware infected electronic communications | |
CN111858296B (zh) | 接口测试方法、装置、设备和存储介质 | |
CN104268229B (zh) | 一种基于多进程浏览器的资源获得方法及装置 | |
US20170104835A1 (en) | Intelligent notifications to devices with multiple applications | |
CN110320378B (zh) | 质控测试申请方法、装置、设备及计算机可读存储介质 | |
US20160103576A1 (en) | Navigating application interface | |
CN107102950A (zh) | 一种应用程序测试方法和装置 | |
CN110737887A (zh) | 恶意代码检测方法、装置、电子设备及存储介质 | |
CN116306396A (zh) | 芯片验证方法及装置、设备和介质 | |
CN106952426B (zh) | 数据处理方法及装置 | |
CN114338448B (zh) | 性能测试方法、装置、电子设备及存储介质 | |
TW201405332A (zh) | 預測文字引擎系統及其相關方法 | |
CN106302011B (zh) | 基于多端的测试方法及终端 | |
CN106095886B (zh) | 一种数据处理方法及其装置 | |
CN111949510B (zh) | 测试处理方法、装置、电子设备及可读存储介质 | |
CN111028409B (zh) | 一种彩票随机选号***及方法 | |
CN113886302A (zh) | 应用设备的串口号获取方法、装置、终端设备及存储介质 | |
CN114237926A (zh) | 多平台交互方法、装置、设备、存储介质及计算机程序产品 | |
CN111352357B (zh) | 机器人的控制方法、装置及终端设备 | |
CN108196848B (zh) | 界面嵌入显示方法、装置、用户终端及可读存储介质 | |
US20240193653A1 (en) | Programming verification rulesets visually | |
CN116501414B (zh) | 基于云平台的资源控制方法、装置、介质及计算设备 | |
CN112532602A (zh) | 灰度发布方法、设备及服务器 | |
US11768693B2 (en) | System and method for configurable device management | |
CN116225576A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |