一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

报文处理方法、NUMA节点、电子设备及存储介质与流程

2022-09-03 20:50:06 来源:中国专利 TAG:

报文处理方法、numa节点、电子设备及存储介质
技术领域
1.本技术涉及网络报文处理技术领域,具体而言,涉及一种报文处理方法、numa(non uniform memory access,非统一内存访问)节点、电子设备及存储介质。


背景技术:

2.目前,当某一numa节点需要获取另一numa节点中网卡接口上硬件队列中的报文时,必须通过另一numa节点的pcie(peripheral component interconnect express,高速串行)总线对该硬件队列进行访问。例如,如图1所示,当numa2节点需要获取numa1节点中网卡接口上硬件接收队列中的报文时,需要通过pcie总线访问该硬件接收队列,以对该硬件接收队列中的报文进行读取。在这个过程中,当numa1节点也要访问本地的硬件接收队列时,numa2节点会与numa1节点竞争pcie总线,可能导致numa2节点和numa1节点均无法顺利获取到各自需要的报文。


技术实现要素:

3.本技术实施例的目的在于提供一种报文处理方法、numa节点、电子设备及存储介质,以解决上述技术问题。
4.为实现上述目的,本技术提供的技术方案包括:
5.第一方面,提供一种报文处理方法,应用于第一numa节点,所述第一numa节点内设置有网卡接口,所述网卡接口上配置有硬件接收队列,所述方法包括:
6.通过所述硬件接收队列接收网络端发送的第一报文;
7.在所述硬件接收队列存在对应的软件接收队列时,将所述第一报文存入所述软件接收队列,以供第二numa节点从所述软件接收队列中读取所述第一报文。
8.在上述的实施方式中,由于第一numa节点可以将硬件接收队列中的第一报文存入对应的软件接收队列,所以当第二numa节点需要获取第一numa节点中的硬件接收队列上的第一报文时,无需通过第一numa节点的pcie总线访问该硬件接收队列,而是可以直接从对应的软件接收队列中读取第一报文,所以可以避免与第一numa节点抢占pcie总线资源,使第一numa节点和第二numa节点均可以顺利获取到各自需要的报文,进而可以提升报文处理效率。
9.结合第一方面,在一些可选的实施方式中,所述第一numa节点包括第一本地存储器,所述软件接收队列设置在所述第一本地存储器中。
10.在上述的实施方式中,由于软件接收队列位于第一numa节点的第一本地存储器中,也即第一numa节点是直接向本地的存储器存入报文,所以可以提升向该软件接收队列写入报文的效率。
11.结合第一方面,在一些可选的实施方式中,所述第一本地存储器中设置有至少2个软件接收队列;所述方法还包括:
12.确定各所述软件接收队列中当前的待处理报文数;
13.根据各所述待处理报文数从软件接收队列集合中确定当前的目标报文提供队列,以供所述第二numa节点从所述目标报文提供队列中读取所述第一报文;所述软件接收队列集合由各所述软件接收队列组成。
14.在上述的实施方式中,根据当前的待处理报文数确定目标报文提供队列,以选择出合适的软件接收队列为第二numa节点提供报文。
15.结合第一方面,在一些可选的实施方式中,所述根据各所述待处理报文数从软件接收队列集合中确定当前的目标报文提供队列,包括:
16.将待处理报文数最多的软件接收队列作为当前的目标报文提供队列。
17.在上述的实施方式中,将当前待处理报文数最多的软件接收队列作为当前的目标报文提供队列,保证各软件接收队列之间待处理报文数的均衡性,可以避免因软件接收队列累积大量的待处理报文,造成该软件接收队列上的待处理报文超出该软件接收队列所占用的内存空间,导致报文丢失。
18.第二方面,本技术还提供一种报文处理方法,应用于第一numa节点,所述第一numa节点内设置有网卡接口,所述网卡接口上配置有硬件发送队列,所述方法包括:
19.从软件发送队列中读取第二报文;所述第二报文为第二numa节点生成并存入至所述软件发送队列中的报文;
20.将所述第二报文通过与所述软件发送队列对应的所述硬件发送队列发送至网络端。
21.在上述的实施方式中,由于第一numa节点可以从软件发送队列中读取第二报文,所以当第二numa节点需要通过第一numa节点中的硬件发送队列发送第二报文到网络端时,可以先将第二报文存至软件发送队列进行缓存,这样,第一numa节点可以根据自身任务情况从该软件发送队列中读取第二报文并通过对应的硬件发送队列发送至网络端,使得第二numa节点可以避免直接与第一numa节点抢占pcie总线资源。
22.结合第二方面,在一些可选的实施方式中,所述第一numa节点包括第一本地存储器,所述软件发送队列设置在所述第一本地存储器中。
23.在上述的实施方式中,由于软件发送队列位于第一numa节点的第一本地存储器中,也即第一numa节点是直接从本地的存储器读取报文,所以可以提升从该软件发送队列读取报文的效率。
24.结合第二方面,在一些可选的实施方式中,所述第一numa节点包括至少2个第一处理核心,在所述从软件发送队列中读取第二报文之前,所述方法还包括:
25.确定各所述第一处理核心中的待处理报文数;
26.根据各所述待处理报文数从第一处理核心集合中确定当前的目标报文处理核心;所述第一处理核心集合由各所述第一处理核心组成;
27.所述从软件发送队列中读取第二报文,包括:
28.所述目标报文处理核心从软件发送队列中读取第二报文。
29.在上述的实施方式中,根据当前的待处理报文数确定目标报文处理核心,以选择出合适的第一处理核心进行报文处理。
30.第三方面,本技术还提供一种报文处理方法,应用于第二numa节点,所述方法包括:
31.从与第一numa节点中的硬件接收队列对应的软件接收队列中读取第一报文;所述硬件接收队列为所述第一numa节点中的网卡接口的接收队列;所述第一报文为所述硬件接收队列接收到的报文。
32.在上述的实施方式中,当第二numa节点需要获取第一numa节点中的硬件接收队列上的第一报文,无需通过第一numa节点的pcie总线访问该硬件接收队列,而是可以直接从对应的软件接收队列中读取第一报文,所以可以避免与第一numa节点抢占pcie总线资源,使第一numa节点和第二numa节点均可以顺利获取到各自需要的报文,进而可以提升报文处理效率。
33.结合第三方面,在一些可选的实施方式中,所述软件接收队列为设置在所述第一numa节点的第一本地存储器中的接收队列。
34.在上述的实施方式中,由于软件接收队列位于第一numa节点的第一本地存储器中,也即第一numa节点可以直接向本地的存储器存入报文,所以可以提升向该软件接收队列写入报文的效率。
35.结合第三方面,在一些可选的实施方式中,所述第二numa节点包括至少2个第二处理核心,在所述从与第一numa节点中的硬件接收队列对应的软件接收队列中读取第一报文之前,所述方法还包括:
36.确定各所述第二处理核心中的待处理报文数;
37.根据各所述待处理报文数从第二处理核心集合中确定当前的目标报文处理核心;所述第二处理核心集合由各所述第二处理核心组成;
38.所述从与第一numa节点中的硬件接收队列对应的软件接收队列中读取第一报文,包括:
39.所述目标报文处理核心从与第一numa节点中的硬件接收队列对应的软件接收队列中读取第一报文。
40.在上述的实施方式中,根据当前的待处理报文数确定目标报文处理核心,以选择出合适的第二处理核心进行报文处理。
41.结合第三方面,在一些可选的实施方式中,所述根据各所述待处理报文数从第二处理核心集合中确定当前的目标报文处理核心,包括:
42.将待处理报文数最少的第二处理核心作为当前的目标报文处理核心。
43.在上述的实施方式中,将待处理报文数最少的第二处理核心作为当前的目标报文处理核心,也即将第二numa节点中相对空闲的第二处理核心作为目标报文处理核心,由目标报文处理核心从软件接收队列中读取第一报文进行处理,保证各第二处理核心的任务量均衡,避免某一第二处理核心因任务量大造成无法顺利完成任务或器件损坏。
44.第四方面,本技术还提供一种报文处理方法,应用于第二numa节点,所述方法包括:
45.生成第二报文;
46.将所述第二报文存入软件发送队列,以供第一numa节点从所述软件发送队列中读取所述第二报文,并将所述第二报文通过与所述软件发送队列对应的硬件发送队列发送至网络端;所述硬件发送队列为所述第一numa节点中的网卡接口的发送队列。
47.在上述的实施方式中,当第二numa节点需要通过第一numa节点中的硬件发送队列
发送第二报文到网络端时,不是直接通过第一numa节点的pcie总线向该硬件发送队列发送数据,而是可以先将第二报文存至软件发送队列进行缓存,这样,第一numa节点可以根据自身任务情况从该软件发送队列中读取第二报文并通过对应的硬件发送队列发送至网络端,使得第二numa节点可以避免直接与第一numa节点抢占pcie总线资源。
48.第五方面,本技术还提供一种报文处理方法,应用于电子设备,所述电子设备包括第一numa节点和第二numa节点,所述第一numa节点内设置有网卡接口,所述网卡接口上配置有硬件接收队列,所述方法包括:
49.所述第一numa节点通过所述硬件接收队列接收网络端发送的第一报文,并在所述硬件接收队列存在对应的软件接收队列时,将所述第一报文存入所述软件接收队列;
50.所述第二numa节点从所述软件接收队列中读取所述第一报文。
51.第六方面,本技术还提供一种报文处理方法,应用于电子设备,所述电子设备包括第一numa节点和第二numa节点,所述第一numa节点内设置有网卡接口,所述网卡接口上配置有硬件接收队列,所述方法包括:
52.所述第二numa节点生成第二报文,并将所述第二报文存入软件发送队列;
53.所述第一numa节点从所述软件发送队列中读取所述第二报文,并将所述第二报文通过与所述软件发送队列对应的所述硬件发送队列发送至网络端。
54.第七方面,本技术还提供一种第一numa节点,包括第一处理核心、第一本地存储器和网卡接口,所述第一本地存储器中存储有第一计算机程序,所述第一处理核心执行所述第一计算机程序,以实现上述任意一种应用于第一numa节点的方法。
55.第八方面,本技术还提供一种第二numa节点,包括第二处理核心和第二本地存储器,所述第二本地存储器中存储有第二计算机程序,所述第二处理核心执行所述第二计算机程序,以实现上述任意一种应用于第二numa节点的方法。
56.第九方面,本技术还提供一种电子设备,包括上述任意一种第一numa节点和任意一种第二numa节点。
57.第十方面,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有第三计算机程序,所述第三计算机程序被至少一个处理器执行时,以实现上述任意一种方法。
附图说明
58.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
59.图1为现有技术中跨numa节点访问的报文的示意图;
60.图2为本技术实施例一提供的应用于第一numa节点中的一种报文处理方法的流程示意图;
61.图3为本技术实施例一提供的跨numa节点访问的报文的示意图;
62.图4为本技术实施例一提供的应用于第一numa节点中的另一种报文处理方法的流程示意图;
63.图5为本技术实施例一提供的应用于电子设备中的一种报文处理方法的流程示意图;
64.图6为本技术实施例一提供的应用于电子设备中的另一种报文处理方法的流程示意图;
65.图7为本技术实施例二提供的报文处理方法的流程示意图;
66.图8为本技术实施例二提供的创建软件接收队列的第一示意图;
67.图9为本技术实施例二提供的创建软件接收队列的第二示意图;
68.图10为本技术实施例四提供的第一numa节点的结构示意图;
69.图11为本技术实施例四提供的第二numa节点的结构示意图;
70.图12为本技术实施例四提供的电子设备的结构示意图。
具体实施方式
71.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
72.需要说明的是,在本发明实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
73.在本发明的描述中,需要理解的是,步骤前的数字标号并不表示执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。
74.下面将提供多个实施例,来具体介绍报文处理方法、numa节点、电子设备及存储介质。
75.实施例一:
76.本技术实施例提供两种报文处理方法,应用于第一numa节点,该第一numa节点内设置有网卡接口,网卡接口上配置有硬件接收队列和硬件发送队列,硬件接收队列用于接收网络端发送的报文,硬件发送队列用于向网络端发送报文。可以理解的是,第一numa节点中网卡接口的数量,以及每一网卡接口上配置的硬件接收队列和硬件发送队列的数量均可以由开发人员灵活设置。
77.本技术实施例中的第一numa节点还包括第一处理核心和第一本地存储器,第一numa节点中配置的第一处理核心的数量也可以由开发人员灵活设置,比如可以设置为1个、2个、4个等等。当第一numa节点中具备多个第一处理核心时,这多个第一处理核心可以集成在一个处理器芯片内,当然,这多个第一处理核心也可以集成在第一numa节点中的不同的处理器芯片内。
78.请参见图2所示,图2为本技术实施例提供的第一种报文处理方法的流程示意图,该方法应用于第一numa节点,具体可以包括如下步骤:
79.s21:通过硬件接收队列接收网络端发送的第一报文。
80.s22:在硬件接收队列存在对应的软件接收队列时,将第一报文存入该软件接收队列,以供第二numa节点从该软件接收队列中读取第一报文。
81.下面,对上述步骤s21和步骤s22进行具体介绍。
82.本技术实施例中,可以预先针对硬件接收队列设置对应的软件接收队列,软件接收队列的数量可以由开发人员灵活设置。软件接收队列用于存储对应的硬件接收队列接收到的第一报文,并用于将该第一报文提供给第二numa节点。
83.应当说明的是,将硬件接收队列中的第一报文存入与该硬件接收队列对应的软件接收队列,包括但不限于以下两种方式:
84.方式一:根据预先设置的硬件接收队列和软件接收队列的对应关系,将硬件接收队列中的第一报文存储至与该硬件接收队列对应的软件接收队列中。
85.方式二:确定各软件接收队列中当前的待处理报文数,将待处理报文数最少的软件接收队列作为当前与该硬件接收队列对应的软件接收队列,并将该硬件接收队列中的第一报文存入该待处理报文数最少的软件接收队列中。这样,可以保证各软件接收队列负载均衡。
86.可以理解的是,可以为第一numa节点中的每一硬件接收队列均设置一个对应的软件接收队列。当然,也可以为第一numa节点中的部分硬件接收队列设置对应的软件接收队列。比如,当第一numa节点中硬件接收队列的数量大于第一处理核心的数量时,可以为每一处理核心配置一个对应的硬件接收队列,然后针对剩余的每一硬件接收队列,设置对应的软件接收队列。此时,各第一处理核心优先从各自对应的硬件接收队列中提取第一报文进行处理,而剩余的硬件接收队列中的第一报文可以被存储至对应的软件接收队列中,由第二numa节点从该软件接收队列中读取第一报文进行处理。应当说明的是,当某一第一处理核心对应的硬件接收队列中不存在第一报文时,该第一处理核心也可以从其他的硬件接收队列中或者软件接收队列中提取第一报文进行处理,此时优先由第一numa节点中的第一处理核心对第一报文进行处理,相对于由远端的第二numa节点对该第一报文进行处理而言,可以提升报文处理效率。
87.为便于理解,这里结合一个具体的示例进行说明。请参见图3所示,在一个示例性的实施方式中,numa1节点上配置有处理核心1和处理核心2、网卡接口、以及4个硬件接收队列,numa2节点上配置有处理核心3和处理核心4。此时可以将硬件接收队列1和硬件接收队列2分配给处理核心1和处理核心2,此时numa1节点中的每一个处理核心处理一个硬件接收队列,处理资源是足够。针对剩余的硬件接收队列,也即硬件接收队列3和硬件接收队列4,则可以分别配置对应的软件接收队列3.1和软件接收队列4.1,这样,当硬件接收队列3和硬件接收队列4接收到网络端发送的第一报文时,可以将接收到的第一报文分别存储至软件接收队列3.1和软件接收队列4.1中,以供numa2节点中的处理核心3和处理核心4从软件接收队列3.1和软件接收队列4.1中读取第一报文进行处理,对于numa2节点而言,无需通过numa1节点中的pcie总线访问报文,避免与numa1节点争抢pcie总线资源。
88.应当说明的是,对于图3中的numa1节点,当硬件接收队列1和硬件接收队列2中不存在第一报文时,比如,硬件接收队列1和硬件接收队列2因故障无法接收网络端发送的第一报文时,此时的处理核心1和处理核心2也可以从硬件接收队列3和硬件接收队列4中提取
报文进行处理,当然也可以从软件接收队列3.1和软件接收队列4.1中提取报文进行处理,此时,优先由numa1节点中的处理核心对本地网卡接口接收到的第一报文进行处理,可以提升处理效率。
89.示例性的,本技术实施例中的软件接收队列设置在第一本地存储器中,以便于第一处理核心的本地访问,提升向软件接收队列存入第一报文的效率。应当说明的是,在其他的实施例中,软件接收队列也可以设置在第一numa节点和第二numa节点之外的存储空间。
90.当第一本地存储器中设置有至少2个软件接收队列时,本技术实施例提供的第一种报文处理方法还可以包括如下步骤:
91.确定各软件接收队列中当前的待处理报文数;
92.根据各待处理报文数从软件接收队列中确定当前的目标报文提供队列,以供第二numa节点从目标报文提供队列中读取第一报文。
93.具体的,可以将各待处理报文数按照由大到小的顺序排列,选择排名前n的软件接收队列作为当前的目标报文提供队列。可选的,n可以取1,此时表示将待处理报文数最多的软件接收队列作为当前的目标报文提供队列。
94.本技术实施例中,可以定时或非定时地确定各软件接收队列中当前积累的待处理报文数。在第一种具体的实现方式中,可以为当前待处理报文数最多的目标报文提供队列设置高优先级标识,第二numa节点可以确定各软件接收队列是否具有该高优先级标识,优先处理具有高优先级标识的软件接收队列中的第一报文。在第二种具体的实现方式中,第一numa节点可以只对外展示当前待处理报文数最多的目标报文提供队列,其他的软件接收队列可以不展示。在第三种具体的实现方式中,第一numa节点可以将所有的软件接收队列对外展示,但只对外提供访问当前的目标报文提供队列的权限。
95.应当说明的是,本技术实施例中的软件接收队列中的第一报文在被读取或提取之后,被读取或提取的第一报文应当从该软件接收队列中删除,所以,在上述将待处理报文数最多的软件接收队列作为当前的目标报文提供队列之后,还可以包括如下步骤:
96.在满足预设条件时,还可以重新确定各软件接收队列中的待处理报文数,并将重新确定的待处理报文数最多的软件接收队列作为新的目标报文提供队列,以供第二numa节点从该新的目标报文提供队列中读取第一报文进行处理。
97.这里的预设条件包括但不限于以下条件中的至少一种:
98.第二numa节点从该目标报文提供队列中完成第一报文读取;
99.软件接收队列接收到新的第一报文;
100.预设的时间间隔到达。
101.请参见图4所示,图4为本技术实施例提供的第二种报文处理方法的流程示意图,该方法同样运用于第一numa节点中,应当说明的是,本技术实施例所提供的上述第一种报文处理方法和上述第二种报文处理方法可以运用在同一numa节点中,也可以运用在不同的第一numa节点中。本技术实施例提供的第二种报文处理方法可以包括如下步骤:
102.s41:从软件发送队列中读取第二报文;第二报文为第二numa节点生成并存入至该软件发送队列中的报文。
103.s42:将第二报文通过与软件发送队列对应的硬件发送队列发送至网络端。
104.下面,对上述步骤s41和步骤s42进行具体介绍。
105.本技术实施例中,可以预先针对第一numa中的硬件发送队列设置对应的软件发送队列,软件发送队列的数量可以由开发人员灵活设置。软件发送队列用于存储第二numa节点生成的第二报文,应当说明的是,本技术实施例中的第二报文可以是由第二numa节点对上述第一报文进行解析处理后生成的报文。
106.可以理解的是,可以为第一numa节点中的每一硬件发送队列均设置一个对应的软件发送队列,此时,各软件发送队列接收到的第二报文均可以通过对应的硬件发送队列发送至网络端。当然,也可以为第一numa节点中的部分硬件发送队列设置对应的软件发送队列。
107.示例性的,本技术实施例中的软件发送队列设置在第一本地存储器中,以便于第一处理核心的本地读取,提升从软件接收队列读取报文的效率。应当说明的是,在其他的实施例中,软件发送队列也可以设置在第一numa节点和第二numa节点之外的存储空间。
108.当第一numa节点包括至少2个第一处理核心时,在从软件发送队列中读取第二报文之前,本技术实施例提供的上述第二种报文处理方法还可以包括如下步骤:
109.确定各第一处理核心中的待处理报文数;
110.根据各待处理报文数从第一处理核心集合中确定当前的目标报文处理核心;第一处理核心集合由各第一处理核心组成。
111.此时对于步骤s41而言,可以由当前的目标报文处理核心从软件发送队列中读取第二报文。
112.具体的,可以将各第一处理核心中的待处理报文数按照由小到大的顺序排列,选择排名前n的第一处理核心作为当前的目标报文处理核心。可选的,n可以取1,此时表示将待处理报文数最少的第一处理核心作为当前的目标报文处理核心。
113.将待处理报文数最少的第一处理核心作为当前的目标报文处理核心,也即将第一numa节点中相对空闲的第一处理核心作为目标报文处理核心,从软件发送队列中读取第二报文进行处理,保证各第一处理核心的任务量均衡,避免某一第一处理核心因任务量大造成无法顺利完成任务或器件损坏。
114.应当说明的是,本技术实施例中在通过目标报文处理核心从软件发送队列中读取第二报文后可以重新确定各第一处理核心中的待处理报文数,并根据重新确定的待处理报文数确定新的目标报文处理核心。
115.上述内容中对两种应用于第一numa节点的报文处理方法进行了介绍,本技术实施例还提供两种应用于第二numa节点的报文处理方法。该第二numa节点包括第二处理核心。第二numa节点中第二处理核心的数量可以由开发人员根据应用场景灵活设置。
116.第一种应用于第二numa节点的报文处理方法包括如下步骤:
117.从与第一numa节点中的硬件接收队列对应的软件接收队列中读取第一报文;该硬件接收队列为第一numa节点中的网卡接口的接收队列;第一报文为所述硬件接收队列接收到的报文。
118.应当说明的是,第二numa节点从软件接收队列中读取到第一报文后,可以对该第一报文进行解析处理然后生成第二报文。
119.当第二numa节点包括至少2个第二处理核心时,在从与第一numa节点中的硬件接收队列对应的软件接收队列中读取第一报文之前,还可以包括如下步骤:
120.确定各第二处理核心中的待处理报文数;
121.根据各待处理报文数从第二处理核心集合中确定当前的目标报文处理核心;第二处理核心集合由各第二处理核心组成。
122.此时,可以由当前的目标报文处理核心从与第一numa节点中的硬件接收队列对应的软件接收队列中读取第一报文。
123.具体的,可以将各第二处理核心中的待处理报文数按照由小到大的顺序排列,选择排名前n的第二处理核心作为当前的目标报文处理核心。可选的,n可以取1,此时表示将待处理报文数最少的第二处理核心作为当前的目标报文处理核心。
124.第二种应用于第二numa节点的报文处理方法包括如下步骤:
125.生成第二报文;
126.将第二报文存入软件发送队列,以供第一numa节点从该软件发送队列中读取第二报文,并将第二报文通过与该软件发送队列对应的硬件发送队列发送至网络端;硬件发送队列为第一numa节点中的网卡接口的发送队列。
127.当第一本地存储器中设置有至少2个所述软件发送队列时,第二numa节点可以将第二报文存入当前的待处理报文数最少的软件发送队列。将第二报文存入当前的待处理报文数最少的软件发送队列,可以保证各软件发送队列之间待处理报文数的均衡性,可以避免因软件发送队列累积大量的待处理报文,造成该软件发送队列上的待处理报文超出该软件发送队列所占用的内存空间,导致报文丢失。
128.应当说明的是,上述内容中提及的两种运用于第二numa节点的报文处理方法可以运用于同一第二numa节点中,也可以运用在不同的第二numa节点。
129.上述内容中提及的第一numa节点和第二numa节点可以位于同一电子设备内,因此,本技术实施例还提供一种运用于电子设备的报文处理方法,请参见图5所示,可以包括如下步骤:
130.s51:第一numa节点通过硬件接收队列接收网络端发送的第一报文。
131.s52:在硬件接收队列存在对应的软件接收队列时,将第一报文存入该软件接收队列。
132.在步骤s52中,可以由第一numa节点中的第一处理核心将硬件接收队列中的第一报文存入对应的软件接收队列。
133.s53:第二numa节点从该软件接收队列中读取第一报文。
134.在步骤s53中,可以由第二numa节点中的第二处理核心从该软件接收队列中读取第一报文。
135.本技术实施例中的第二numa节点在从软件接收队列中读取第一报文之后,可以对该第一报文进行解析处理生成第二报文。
136.请参见图6所示,本技术实施例还提供另外一种运用于电子设备的报文处理方法,可以包括如下步骤:
137.s61:第二numa节点生成第二报文。
138.s62:第二numa节点将第二报文存入软件发送队列。
139.上述步骤s61和步骤s62可以由第二numa节点中的第二处理核心执行。
140.s63:第一numa节点从软件发送队列中读取第二报文。
141.s64:第一numa节点并将第二报文通过与软件发送队列对应的硬件发送队列发送至网络端。
142.上述步骤s63和步骤s64可以由第一numa节点中的第一处理核心执行。
143.实施例二:
144.为了更好的进行理解,本技术实施例提供一种应用于电子设备的报文处理方法。该电子设备包括第一numa节点和第二numa节点,第一numa节点包括配置有硬件接收队列和硬件发送队列的网卡接口、第一处理核心和第一本地存储器,第二numa节点包括第二处理核心,请参见图7所示,本技术实施例提供的报文处理方法包括如下步骤:
145.s71:第一numa节点中的硬件接收队列接收网络端发送的第一报文。
146.s72:第一处理核心将第一报文存入与该硬件接收队列对应的软件接收队列。
147.本技术实施例中,需要预先针对硬件接收队列设置对应的软件接收队列。创建软件接收队列的方式可以参见图8和图9所示。
148.如图8,首先为作为生产者的软件接收队列申请内存创建头节点,以便后续保存从硬件接收队列读取过来的报文。图9中,从硬件接收队列中读取报文elem_a1,并存入对应的头节点。
149.本技术实施例中,可以通过mmap机制将网卡接口上硬件接收队列的硬件io地址映射成用户空间地址后发送给第一处理核心,如此,第一处理核心就可以完全掌控本地网卡接口上所有硬件接收队列的pcie总线控制权,此时可以禁止第二numa节点通过该pcie总线访问硬件接收队列。
150.同样的,本技术实施例中,需要预先针对硬件发送队列设置对应的软件发送队列。创建软件发送队列的方式参照上述创建软件接收队列的方式,这里不再赘述。
151.s73:第二处理核心从该软件接收队列中读取第一报文,并根据该第一报文生成第二报文。
152.在步骤s73中,第二处理核心可以从批量的一次性读取若干个放在软件接收队列中的第一报文,而不必受制于pcie总线。
153.s74:第二处理核心将该第二报文存入软件发送队列。
154.s75:第一处理核心将该软件发送队列中的第二报文存入对应的硬件发送队列,并通过该硬件发送队列发送至网络端。
155.本技术实施例提供的报文处理方法,通过创建软件发送队列和软件接收队列,解决了不同numa节点中的处理核心竞争异地pcie总线控制权的问题,通过负载均衡机制大大提高了跨numa访问异地报文的性能和效率。
156.需要理解的是,出于描述简洁的考量,部分实施例一中描述过的内容在本实施例中不再赘述。
157.实施例三:
158.本技术实施例提供第一种报文处理装置,应用于第一numa节点,第一numa节点内设置有网卡接口,网卡接口上配置有硬件接收队列,该装置包括:
159.接收模块,用于通过硬件接收队列接收网络端发送的第一报文。
160.存储模块,用于在硬件接收队列存在对应的软件接收队列时,将第一报文存入软件接收队列,以供第二numa节点从软件接收队列中读取第一报文。
161.本技术实施例还提供第二种报文处理装置,应用于第一numa节点,第一numa节点内设置有网卡接口,网卡接口上配置有硬件接收队列,该装置包括:
162.第一读取模块,用于从软件发送队列中读取第二报文;第二报文为第二numa节点生成并存入至软件发送队列中的报文;
163.第一发送模块,用于将第二报文通过与软件发送队列对应的硬件发送队列发送至网络端。
164.本技术实施例提供第三种报文处理装置,应用于第二numa节点,该装置包括:
165.第二读取模块,用于从与第一numa节点中的硬件接收队列对应的软件接收队列中读取第一报文;硬件接收队列为第一numa节点中的网卡接口的接收队列;第一报文为硬件接收队列接收到的报文。
166.本技术实施例提供第四种报文处理装置,应用于第二numa节点,该装置包括:
167.生成模块,用于生成第二报文;
168.第二发送模块,用于将第二报文存入软件发送队列,以供第一numa节点从软件发送队列中读取第二报文,并将第二报文通过与软件发送队列对应的硬件发送队列发送至网络端;硬件发送队列为第一numa节点中的网卡接口的发送队列。
169.需要理解的是,出于描述简洁的考量,部分实施例一和实施例二中描述过的内容在本实施例中不再赘述。
170.实施例四:
171.基于同一发明构思,本技术实施例提供一种第一numa节点1000,请参见图10所示,包括第一处理核心1001、第一本地存储器1002和网卡接口1003,第一本地存储器1002中存储有第一计算机程序,第一处理核心1001执行第一计算机程序,以实现上述实施例中运用于第一numa节点1000中的方法的步骤,在此不再赘述。
172.基于同一发明构思,本技术实施例还提供一种第二numa节点1100,请参见图11所示,包括第二处理核心1101和第二本地存储器1102,第二本地存储器1102中存储有第二计算机程序,第二处理核心1101执行第二计算机程序,以实现上述实施例中运用于第二numa节点1100中的方法的步骤,在此不再赘述。
173.本技术实施例还提供一种电子设备,请参见图12所示,包括上述提及的任意一种第一numa节点1000和第二numa节点1100。
174.可以理解,图12所示的结构仅为示意,设备还可包括比图12中所示更多或者更少的组件,或者具有与图12所示不同的配置。
175.本技术实施例中的电子设备包括但不限于是pc(personal computer,个人电脑)、手机、平板电脑、笔记本电脑、服务器等。
176.本技术实施例中第一处理核心1001和第二处理核心1101是处理器中的内核,第一numa节点1000和第二numa节点1100中均设置有对应的处理器,该处理器可以是一种集成电路芯片,具有信号处理能力。上述处理器可以是通用处理器,包括中央处理器(cpu)、网络处理器(np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本技术实施例中公开的各种方法、步骤及逻辑框图。
177.第一本地存储器1002和第二本地存储器1102可以包括但不限于随机存取存储器
(ram),只读存储器(rom),可编程只读存储器(prom),可擦除只读存储器(eprom),电可擦除只读存储器(eeprom)等。
178.本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、u盘、安全数码(sd)卡、多媒体(mmc)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述各实施例中方法的各步骤,在此不再赘述。
179.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
180.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。
181.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献