PKB内存动态分配方法、装置、电子设备及存储介质与流程

未命名 09-29 阅读:66 评论:0

pkb内存动态分配方法、装置、电子设备及存储介质
技术领域
1.本发明涉及计算机技术领域,尤其涉及一种pkb内存动态分配方法、装置、电子设备及存储介质。


背景技术:

2.安全产品硬件都是通过硬件网卡来进行网络报文的接收和发送。目前的大部分网卡都支持多队列的形式,每个队列都能够进行接收和发送报文,而这些队列都需要根据队列的长度进行数据包缓存(packet buffer,pkb)内存的绑定和初始化。
3.然而,现有系统是根据安全产品的型号和内存总大小,直接分配一块固定内存给pkb使用。如产品设备是16g内存,会直接分配500m的内存空间提供给pkb内存使用。如果产品设备上安装的网卡数量少,设备cpu的核数也少,那么网卡所使用到的队列数以及最终能够分配使用的pkb内存也会少,这样容易造成内存的浪费;反之,如果产品设备上安装的网卡数量多,设备cpu的核数也多,那么网卡所使用到的队列数以及最终能够分配使用的pkb内存也会大量增加,这样容易导致网卡队列分配的pkb内存出现不足,而无法正常收发报文。
4.因此,如何针对安全产品更好地分配pkb内存已成为业界亟待解决的技术问题。


技术实现要素:

5.本发明提供一种pkb内存动态分配方法、装置、电子设备及存储介质,用以针对安全产品更好地分配pkb内存。
6.本发明提供一种pkb内存动态分配方法,包括:
7.基于系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个所述网卡对应的核绑定队列数;
8.基于每个所述网卡对应的核绑定队列数、每个所述网卡对应的预设收发包描述符的数量和每个所述网卡的接口数,确定系统网卡接口所需的pkb内存块的总数量;
9.根据所述pkb内存块的总数量,确定系统所需分配的pkb内存。
10.根据本发明提供的一种pkb内存动态分配方法,所述基于每个所述网卡对应的核绑定队列数、每个所述网卡对应的预设收发包描述符的数量和每个所述网卡的接口数,确定系统网卡接口所需的pkb内存块的总数量,包括:
11.基于每个所述网卡对应的核绑定队列数和每个所述网卡对应的预设收发包描述符的数量,计算每个所述网卡的每个网卡接口所需的pkb内存块的数量;
12.根据每个所述网卡的每个网卡接口所需的pkb内存块的数量和每个所述网卡的接口数,确定每个所述网卡所需的pkb内存块的数量;
13.将每个所述网卡所需的pkb内存块的数量进行相加,得到系统网卡接口所需的pkb内存块的总数量。
14.根据本发明提供的一种pkb内存动态分配方法,所述基于系统中用于处理用户态
收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个所述网卡对应的核绑定队列数,包括:
15.将所述用于处理用户态收发包业务的核的数量与各个所述网卡的接口所支持的最大队列数进行比较;
16.对于每个所述网卡中的任一网卡,在确定所述用于处理用户态收发包业务的核的数量小于所述任一网卡的接口所支持的最大队列数的情况下,确定所述任一网卡对应的核绑定队列数为所述用于处理用户态收发包业务的核的数量。
17.根据本发明提供的一种pkb内存动态分配方法,在所述将所述用于处理用户态收发包业务的核的数量与各个所述网卡的接口所支持的最大队列数进行比较之后,所述方法还包括:
18.对于每个所述网卡中的任一网卡,在确定所述用于处理用户态收发包业务的核的数量不小于所述任一网卡的接口所支持的最大队列数的情况下,确定所述任一网卡对应的核绑定队列数为其接口所支持的最大队列数。
19.根据本发明提供的一种pkb内存动态分配方法,所述根据所述pkb内存块的总数量,确定系统所需分配的pkb内存,包括:
20.确定每个所述pkb内存块的内存大小;
21.计算所述pkb内存块的总数量、每个所述pkb内存块的内存大小和预设冗余系数三者的乘积,得到系统所需分配的pkb内存;所述预设冗余系数是基于系统中报文分片与重组所需pkb内存块的数量确定的。
22.根据本发明提供的一种pkb内存动态分配方法,所述各个网卡包括千兆电口网卡和万兆光口网卡,所述千兆电口网卡对应的预设收发包描述符包括512个收包描述符和1024个发包描述符;所述万兆光口网卡对应的预设收发包描述符包括256个收包描述符和512个发包描述符。
23.本发明还提供一种pkb内存动态分配装置,包括:
24.第一处理模块,用于基于系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个所述网卡对应的核绑定队列数;
25.第二处理模块,用于基于每个所述网卡对应的核绑定队列数、每个所述网卡对应的预设收发包描述符的数量和每个所述网卡的接口数,确定系统网卡接口所需的pkb内存块的总数量;
26.第三处理模块,用于根据所述pkb内存块的总数量,确定系统所需分配的pkb内存。
27.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述pkb内存动态分配方法。
28.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述pkb内存动态分配方法。
29.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述pkb内存动态分配方法。
30.本发明提供的pkb内存动态分配方法、装置、电子设备及存储介质,通过考虑安全产品设备的实际配置情况,确定设备系统中用于处理用户态收发包业务的核的数量以及各
个网卡的接口所支持的最大队列数,计算每个网卡实际需要进行核绑定的核绑定队列数,进而根据各个网卡的接口数以及各个网卡对应的核绑定队列数和预设收发包描述符的数量,计算系统网卡接口实际所需的pkb内存块的总数量,根据pkb内存块的总数量进行pkb内存的分配,可以合理有效地对安全产品的pkb内存初始化分配进行优化,根据安全产品设备的不同硬件配置,实现动态地初始化分配pkb的内存大小。
附图说明
31.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1是本发明提供的pkb内存动态分配方法的流程示意图;
33.图2是本发明提供的pkb内存动态分配装置的结构示意图;
34.图3是本发明提供的电子设备的实体结构示意图。
具体实施方式
35.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.下面结合图1-图3描述本发明的pkb内存动态分配方法、装置、电子设备及存储介质。
37.图1是本发明提供的pkb内存动态分配方法的流程示意图,如图1所示,包括:
38.步骤110,基于系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个网卡对应的核绑定队列数;
39.步骤120,基于每个网卡对应的核绑定队列数、每个网卡对应的预设收发包描述符的数量和每个网卡的接口数,确定系统网卡接口所需的pkb内存块的总数量;
40.步骤130,根据pkb内存块的总数量,确定系统所需分配的pkb内存。
41.具体地,本发明实施例所描述的系统指的是安全产品设备的系统。
42.本发明实施例所描述的用于处理用户态收发包业务的核指的是通过对系统中硬件cpu的核进行划分后确定用于处理用户态收发包业务的核。
43.在本发明的实施例中,安全产品设备的系统可以采用16核系统,因此,可以先将cpu的16个核做区分,能够隔离出单独2个核,提供内核使用,不作为用户态收发包使用,剩余的14个核则作为收发包核使用,处理用户态收发包业务。可以理解的是,此时,系统中用于处理用户态收发包业务的核的数量为14。
44.本发明实施例所描述的网卡指的是系统中安装的网卡,可以包括千兆电口网卡和万兆光口网卡。
45.其中,网卡的接口所支持的最大队列数可以根据网卡型号提供的性能参数来确定。例如,型号为intel i350的8口千兆电口网卡,其每个接口所能支持的最大队列数是8。
46.本发明实施例所描述的核绑定队列数指的是用于处理用户态收发包业务的核所绑定使用的队列数量。
47.在本发明的实施例中,步骤110中,通过确定系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,根据系统核绑定使用的队列数的实际能力,确定每个网卡对应的核绑定队列数。
48.基于上述实施例的内容,作为一种可选的实施例,基于系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个网卡对应的核绑定队列数,包括:
49.将用于处理用户态收发包业务的核的数量与各个网卡的接口所支持的最大队列数进行比较;
50.对于每个网卡中的任一网卡,在确定用于处理用户态收发包业务的核的数量小于任一网卡的接口所支持的最大队列数的情况下,确定任一网卡对应的核绑定队列数为用于处理用户态收发包业务的核的数量。
51.具体地,在本发明的实施例中,可以将用于处理用户态收发包业务的核的数量与各个网卡的接口所支持的最大队列数进行比较,通过比较二者的大小,来确定每个网卡对应的核绑定队列数。
52.在一个具体实施例中,安全产品设备的系统为16核系统,其中,隔离出2个核用于内核使用,剩余14个核用于处理用户态收发包业务,系统安装了两块网卡,包括一块intel i350的8口千兆电口网卡,一块是intel xl710的4口万兆光口网卡。
53.对于intel xl710的4口万兆光口网卡来说,其每个接口所支持的最大队列数远远超过14,即系统中用于处理用户态收发包业务的核的数量远远小于intel xl710网卡的接口所支持的最大队列数,此时,可以确定intel xl710网卡对应的核绑定队列数为用于处理用户态收发包业务的核的数量,即为14。
54.基于上述实施例的内容,作为一种可选的实施例,在将用于处理用户态收发包业务的核的数量与各个网卡的接口所支持的最大队列数进行比较之后,该方法还包括:
55.对于每个网卡中的任一网卡,在确定用于处理用户态收发包业务的核的数量不小于任一网卡的接口所支持的最大队列数的情况下,确定任一网卡对应的核绑定队列数为其接口所支持的最大队列数。
56.具体地,在本发明的实施例中,用于处理用户态收发包业务的核的数量为14,对于采用的intel i350的8口千兆电口网卡来说,其每个接口所支持的最大队列数为8,可见,确定用于处理用户态收发包业务的核的数量不小于intel i350网卡的接口所支持的最大队列数,此时,可以确定intel i350网卡对应的核绑定队列数为其接口所支持的最大队列数,即为8。
57.在本发明的实施例中,基于上述方法,可以根据安全产品设备的系统类型以及安装的各个不同型号的网卡,来计算出每个网卡所对应的核绑定队列数。
58.需要说明的是,每个队列都能够进行接收和发送报文,包括接收队列和发包队列,收包队列包括预先配置的收包描述符,发包队列包括预先配置的发包描述符。
59.在收包队列中预先配置一定数量的收包描述符,每一个收包描述符均设置有第一字段和第二字段,第一字段用于填写第一地址信息,第二字段用于填写第二地址信息,以使
处理器在进行业务处理时,可以通过第一地址信息获取到收包描述符对应的报文头。第二地址信息用于在转发时获取报文主体(body)。
60.系统处理器对处于占用状态的收包描述符的报文头进行处理后,可以将收包描述符对应的第一地址信息和第二地址信息写入处于空闲状态的发包描述符,第一地址信息为收包描述符对应的报文头的写入地址的标识信息,第二地址信息为收包描述符对应的报文主体的写入地址的标识信息。
61.本发明实施例所描述的预设收发包描述符的数量包括收包描述符的数量和发包描述符的数量,其可以根据网卡的类型和型号进行确定。
62.基于上述实施例的内容,作为一种可选的实施例,各个网卡包括千兆电口网卡和万兆光口网卡,千兆电口网卡对应的预设收发包描述符包括512个收包描述符和1024个发包描述符;万兆光口网卡对应的预设收发包描述符包括256个收包描述符和512个发包描述符。
63.具体地,在一个具体实施例中,系统安装了两块网卡,包括一块intel i350的8口千兆电口网卡,一块是intel xl710的4口万兆光口网卡,intel i350的8口千兆电口网卡对应的预设收发包描述符可以设置为包括512个收包描述符和1024个发包描述符,intel xl710的4口万兆光口网卡对应的预设收发包描述符可以设置为包括256个收包描述符和512个发包描述符。
64.本发明实施例的方法,通过将千兆电口网卡对应的预设收发包描述符设置为512个收包描述符和1024个发包描述符,万兆光口网卡对应的预设收发包描述符设置为256个收包描述符和512个发包描述符,可以确保系统处理收发包业务的性能和效率最优。
65.进一步地,在本发明的实施例中,步骤120中,基于每个网卡对应的核绑定队列数、每个网卡对应的预设收发包描述符的数量和每个网卡的接口数,根据设备的实际配置情况,计算系统网卡接口所需的pkb内存块的总数量。
66.基于上述实施例的内容,作为一种可选的实施例,步骤120中,基于每个网卡对应的核绑定队列数、每个网卡对应的预设收发包描述符的数量和每个网卡的接口数,确定系统网卡接口所需的pkb内存块的总数量,包括:
67.基于每个网卡对应的核绑定队列数和每个网卡对应的预设收发包描述符的数量,计算每个网卡的每个网卡接口所需的pkb内存块的数量;
68.根据每个网卡的每个网卡接口所需的pkb内存块的数量和每个网卡的接口数,确定每个网卡所需的pkb内存块的数量;
69.将每个网卡所需的pkb内存块的数量进行相加,得到系统网卡接口所需的pkb内存块的总数量。
70.具体地,在本发明的实施例中,在获取到每个网卡对应的核绑定队列数以及每个网卡对应的预设收发包描述符的数量后,通过相乘运算,可以计算出核绑定队列数所能设定的收发包描述符的总数量,由此可以确定出每个网卡的每个网卡接口所需的pkb内存块的数量。
71.在确定每个网卡的每个网卡接口所需的pkb内存块的数量,根据每个网卡的接口数,通过相乘运算,可以计算出每个网卡所需的pkb内存块的数量。由此,根据系统安装的网卡数量,将每个网卡所需的pkb内存块的数量进行相加,得到系统网卡接口所需的pkb内存
块的总数量。
72.本发明实施例的方法,通过考虑核绑定的各个队列中设置的收发包描述符数量,以及每个网卡实际的接口数,可以有效计算出系统网卡接口实际所需的pkb内存块的总数量,为后续计算系统所需分配的pkb内存提供可靠的数据源。
73.进一步地,在步骤130中,根据pkb内存块的总数量,以及每个pkb内存块的内存大小,计算出系统所需分配的pkb内存。
74.基于上述实施例的内容,作为一种可选的实施例,步骤130,根据pkb内存块的总数量,确定系统所需分配的pkb内存,包括:
75.确定每个pkb内存块的内存大小;
76.计算pkb内存块的总数量、每个pkb内存块的内存大小和预设冗余系数三者的乘积,得到系统所需分配的pkb内存;预设冗余系数是基于系统中报文分片与重组所需pkb内存块的数量确定的。
77.具体地,本发明实施例所描述的预设冗余系数用于确保为系统中报文分片与重组提供缓存空间,其是基于系统中报文分片与重组所需pkb内存块的数量确定的。在本发明的实施例中,预设冗余系数可以取值为2。
78.在本发明的实施例中,在确定系统网卡接口所需的pkb内存块的总数量之后,通过考虑系统中报文分片与重组所需内存的情况,计算pkb内存块的总数量和预设冗余系数的乘积,确定出pkb初始化所需pkb内存块的总数量。
79.进一步地,确定每个pkb内存块的内存大小,例如确定每个pkb内存块的内存为4kb,通过计算pkb内存初始化所需pkb内存块的总数量与每个pkb内存块的内存大小的乘积,得到系统实际所需分配的pkb内存。
80.在本发明的实施例中,通过考虑系统中报文分片与重组的情况,对系统内存分配初始化所分配的pkb内存进行优化计算,避免分配的pkb内存出现内存不足的现象发生,进一步提升初始化分配pkb内存大小的准确性和有效性。
81.本发明实施例的pkb内存动态分配方法,通过考虑安全产品设备的实际配置情况,确定设备系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,计算每个网卡实际需要进行核绑定的核绑定队列数,进而根据各个网卡的接口数以及各个网卡对应的核绑定队列数和预设收发包描述符的数量,计算系统网卡接口实际所需的pkb内存块的总数量,根据pkb内存块的总数量进行pkb内存的分配,可以合理有效地对安全产品的pkb内存初始化分配进行优化,根据安全产品设备的不同硬件配置,实现动态地初始化分配pkb的内存大小。
82.在本发明的一个具体实施例中,安全产品设备的硬件基础配置如下:cpu是16核的单路cpu,cpu的16个核做区分,隔离出单独2个核,提供内核使用,不作为用户态收发包使用,剩余的14个核则作为收发包核;内存为16g;安装有两块网卡,一块是intel i350的8口千兆电口网卡,一块是intel xl710的4口万兆光口网卡。
83.在本实施例中,根据上述安全产品设备的配置情况,确定系统所需分配的pkb内存计算方法如下:
84.步骤s1,根据intel i350的8口千兆电口网卡,每个接口能支持的最大队列数是8,由于少于14个cpu核数,所以,可确定实际核绑定使用的队列数量就是8;确定收包描述符数
量设置为512,发包描述符数量设置为1024。
85.步骤s2,根据intel xl710的4口万兆光口网卡,每个接口能支持的最大队列数很大,远大于用于处理收发包业务的cpu核数,即14,所以可确定实际核绑定使用的队列数量为14;确定收包描述符数量设置为256,发包环描述符数量设置为512。
86.步骤s3,计算intel i350的8口千兆电口网卡,所需要的pkb内存块的数量为:
87.(512+1024)*8(队列数)*8(接口数)=98304;
88.并计算intel xl710的4口万兆光口网卡,所需要的pkb内存块的数量为:
89.(256+512)*14(队列数)*4(接口数)=43008;
90.步骤s4,计算所有注册的网卡接口所需申请的pkb内存块的总数为:98304+43008=141312;
91.步骤s5,计算pkb内存初始化的数量为:141312*2(预设冗余系数)=282624;
92.步骤s6,根据pkb内存块每块内存的大小,为了计算方便,假设为4k,那么系统所需分配的pkb内存的总大小为:
93.4k*141312*2=1130496k=1131m;
94.由此,根据上面的计算的结果,可以确定出系统实际所需分配的pkb内存的总大小为1131m。
95.本发明实施例的方法,能保证根据设备的实际配置情况,动态初始化分配pkb内存的大小。如果硬件设备更换了cpu或者增加(或减少,或更换)网卡,在重新启动系统后,设备可以自动根据新的配置情况,动态初始化分配pkb内存的大小,从而可以有效避免内存的浪费或者内存使用不足的情况发生。
96.下面对本发明提供的pkb内存动态分配装置进行描述,下文描述的pkb内存动态分配装置与上文描述的pkb内存动态分配方法可相互对应参照。
97.图2是本发明提供的pkb内存动态分配装置的结构示意图,如图2所示,包括:
98.第一处理模块210,用于基于系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个网卡对应的核绑定队列数;
99.第二处理模块220,用于基于每个网卡对应的核绑定队列数、每个网卡对应的预设收发包描述符的数量和每个网卡的接口数,确定系统网卡接口所需的pkb内存块的总数量;
100.第三处理模块230,用于根据pkb内存块的总数量,确定系统所需分配的pkb内存。
101.本实施例所述的pkb内存动态分配装置可以用于执行上述pkb内存动态分配方法实施例,其原理和技术效果类似,此处不再赘述。
102.本发明实施例的pkb内存动态分配装置,通过考虑安全产品设备的实际配置情况,确定设备系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,计算每个网卡实际需要进行核绑定的核绑定队列数,进而根据各个网卡的接口数以及各个网卡对应的核绑定队列数和预设收发包描述符的数量,计算系统网卡接口实际所需的pkb内存块的总数量,根据pkb内存块的总数量进行pkb内存的分配,可以合理有效地对安全产品的pkb内存初始化分配进行优化,根据安全产品设备的不同硬件配置,实现动态地初始化分配pkb的内存大小。
103.基于上述实施例的内容,作为一种可选的实施例,第二处理模块220具体用于:
104.基于每个网卡对应的核绑定队列数和每个网卡对应的预设收发包描述符的数量,
计算每个网卡的每个网卡接口所需的pkb内存块的数量;
105.根据每个网卡的每个网卡接口所需的pkb内存块的数量和每个网卡的接口数,确定每个网卡所需的pkb内存块的数量;
106.将每个网卡所需的pkb内存块的数量进行相加,得到系统网卡接口所需的pkb内存块的总数量。
107.基于上述实施例的内容,作为一种可选的实施例,第一处理模块210具体用于:
108.将用于处理用户态收发包业务的核的数量与各个网卡的接口所支持的最大队列数进行比较;
109.对于每个网卡中的任一网卡,在确定用于处理用户态收发包业务的核的数量小于任一网卡的接口所支持的最大队列数的情况下,确定任一网卡对应的核绑定队列数为用于处理用户态收发包业务的核的数量。
110.基于上述实施例的内容,作为一种可选的实施例,第一处理模块210还用于:
111.对于每个网卡中的任一网卡,在确定用于处理用户态收发包业务的核的数量不小于任一网卡的接口所支持的最大队列数的情况下,确定任一网卡对应的核绑定队列数为其接口所支持的最大队列数。
112.基于上述实施例的内容,作为一种可选的实施例,第三处理模块230具体用于:
113.确定每个pkb内存块的内存大小;
114.计算pkb内存块的总数量、每个pkb内存块的内存大小和预设冗余系数三者的乘积,得到系统所需分配的pkb内存;预设冗余系数是基于系统中报文分片与重组所需pkb内存块的数量确定的。
115.图3是本发明提供的电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(communications interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行上述各方法所提供的pkb内存动态分配方法,该方法包括:基于系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个所述网卡对应的核绑定队列数;基于每个所述网卡对应的核绑定队列数、每个所述网卡对应的预设收发包描述符的数量和每个所述网卡的接口数,确定系统网卡接口所需的pkb内存块的总数量;根据所述pkb内存块的总数量,确定系统所需分配的pkb内存。
116.此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
117.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行
时,计算机能够执行上述各方法所提供的pkb内存动态分配方法,该方法包括:基于系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个所述网卡对应的核绑定队列数;基于每个所述网卡对应的核绑定队列数、每个所述网卡对应的预设收发包描述符的数量和每个所述网卡的接口数,确定系统网卡接口所需的pkb内存块的总数量;根据所述pkb内存块的总数量,确定系统所需分配的pkb内存。
118.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的pkb内存动态分配方法,该方法包括:基于系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个所述网卡对应的核绑定队列数;基于每个所述网卡对应的核绑定队列数、每个所述网卡对应的预设收发包描述符的数量和每个所述网卡的接口数,确定系统网卡接口所需的pkb内存块的总数量;根据所述pkb内存块的总数量,确定系统所需分配的pkb内存。
119.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
120.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
121.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种pkb内存动态分配方法,其特征在于,包括:基于系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个所述网卡对应的核绑定队列数;基于每个所述网卡对应的核绑定队列数、每个所述网卡对应的预设收发包描述符的数量和每个所述网卡的接口数,确定系统网卡接口所需的pkb内存块的总数量;根据所述pkb内存块的总数量,确定系统所需分配的pkb内存。2.根据权利要求1所述的pkb内存动态分配方法,其特征在于,所述基于每个所述网卡对应的核绑定队列数、每个所述网卡对应的预设收发包描述符的数量和每个所述网卡的接口数,确定系统网卡接口所需的pkb内存块的总数量,包括:基于每个所述网卡对应的核绑定队列数和每个所述网卡对应的预设收发包描述符的数量,计算每个所述网卡的每个网卡接口所需的pkb内存块的数量;根据每个所述网卡的每个网卡接口所需的pkb内存块的数量和每个所述网卡的接口数,确定每个所述网卡所需的pkb内存块的数量;将每个所述网卡所需的pkb内存块的数量进行相加,得到系统网卡接口所需的pkb内存块的总数量。3.根据权利要求1所述的pkb内存动态分配方法,其特征在于,所述基于系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个所述网卡对应的核绑定队列数,包括:将所述用于处理用户态收发包业务的核的数量与各个所述网卡的接口所支持的最大队列数进行比较;对于每个所述网卡中的任一网卡,在确定所述用于处理用户态收发包业务的核的数量小于所述任一网卡的接口所支持的最大队列数的情况下,确定所述任一网卡对应的核绑定队列数为所述用于处理用户态收发包业务的核的数量。4.根据权利要求3所述的pkb内存动态分配方法,其特征在于,在所述将所述用于处理用户态收发包业务的核的数量与各个所述网卡的接口所支持的最大队列数进行比较之后,所述方法还包括:对于每个所述网卡中的任一网卡,在确定所述用于处理用户态收发包业务的核的数量不小于所述任一网卡的接口所支持的最大队列数的情况下,确定所述任一网卡对应的核绑定队列数为其接口所支持的最大队列数。5.根据权利要求1-4任一项所述的pkb内存动态分配方法,其特征在于,所述根据所述pkb内存块的总数量,确定系统所需分配的pkb内存,包括:确定每个所述pkb内存块的内存大小;计算所述pkb内存块的总数量、每个所述pkb内存块的内存大小和预设冗余系数三者的乘积,得到系统所需分配的pkb内存;所述预设冗余系数是基于系统中报文分片与重组所需pkb内存块的数量确定的。6.根据权利要求1-4任一项所述的pkb内存动态分配方法,其特征在于,所述各个网卡包括千兆电口网卡和万兆光口网卡,所述千兆电口网卡对应的预设收发包描述符包括512个收包描述符和1024个发包描述符;所述万兆光口网卡对应的预设收发包描述符包括256个收包描述符和512个发包描述符。
7.一种pkb内存动态分配装置,其特征在于,包括:第一处理模块,用于基于系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个所述网卡对应的核绑定队列数;第二处理模块,用于基于每个所述网卡对应的核绑定队列数、每个所述网卡对应的预设收发包描述符的数量和每个所述网卡的接口数,确定系统网卡接口所需的pkb内存块的总数量;第三处理模块,用于根据所述pkb内存块的总数量,确定系统所需分配的pkb内存。8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述pkb内存动态分配方法。9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述pkb内存动态分配方法。10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述pkb内存动态分配方法。

技术总结
本发明提供一种PKB内存动态分配方法、装置、电子设备及存储介质,所述方法包括:基于系统中用于处理用户态收发包业务的核的数量以及各个网卡的接口所支持的最大队列数,确定每个所述网卡对应的核绑定队列数;基于每个所述网卡对应的核绑定队列数、每个所述网卡对应的预设收发包描述符的数量和每个所述网卡的接口数,确定系统网卡接口所需的PKB内存块的总数量;根据所述PKB内存块的总数量,确定系统所需分配的PKB内存。本发明可以合理有效地对安全产品的PKB内存初始化分配进行优化,根据安全产品设备的不同硬件配置,实现动态地初始化分配PKB的内存大小。分配PKB的内存大小。分配PKB的内存大小。


技术研发人员:赵众
受保护的技术使用者:北京中科网威信息技术有限公司
技术研发日:2023.05.16
技术公布日:2023/9/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐