云防火墙的内存资源管理方法、装置、计算机设备及介质与流程

文档序号:29922728发布日期:2022-05-07 09:43阅读:108来源:国知局
云防火墙的内存资源管理方法、装置、计算机设备及介质与流程

1.本发明涉及防火墙技术领域,具体涉及一种云防火墙的内存资源管理方法、装置、计算机设备及介质。


背景技术:

2.云防火墙可以理解为是运行于不同类型的云主机或容器之上的防火墙。相关技术中,针对不同类型的云服务器或者云主机,在存在已有云防火墙的情况下,增加新的云防火墙时,可以根据已有云防火墙与新的云防火墙之间总内存的配置比例,定制新的云防火墙的规格。其中,云防火墙的规格至少包括以下参数:最大并发会话规格(以下简称会话规格)和最大并发tcp连接数量(若该云防火墙支持tcp协议代理(tcp-proxy)功能)。即,可以理解为,云防火墙的规格取决于该云服务器能够占用的总内存。在云防火墙的规格已确定的情况下,可以根据该规格参数,直接确定云防火墙的最大会话规格。
3.但采用该种方式确定云防火墙的规格时,若已有云防火墙的定制规格不合理时,则容易导致新的云防火墙的规格也不合理,如果定制的会话规格过大,会导致内存不足影响功能;如果过小,则无法满足业务需求从而影响新的云防火墙的竞争力。


技术实现要素:

4.因此,本发明要解决的技术问题在于克服现有技术中云防火墙的会话规格分配不合理的缺陷,从而提供一种云防火墙的内存资源管理方法、装置、计算机设备及介质。
5.在第一方面,本发明提供一种云防火墙的内存管理方法,所述方法包括:根据所述云防火墙的总内存,确定大页内存。确定所述云防火墙中每一条会话占用的会话总内存。根据预先确定的大页内存与单条会话总内存和会话规格之间的第一对应关系,确定所述云防火墙的最大会话规格。
6.结合第一方面,在第一方面的第一实施例中,所述大页内存包括多个消费者,第一对应关系采用下述方式进行确定:根据预先确定的每一个消费者对应的内存与会话规格之间的第二对应关系,确定所述第一对应关系。。
7.结合第一方面或者第一方面的第一实施例,在第一方面的第二实施例中,所述方法还包括:根据所述第二对应关系和所述最大会话规格,确定各所述消费者对应的内存。
8.结合第一方面的第一实施例或者第二实施例,在第一方面的第三实施例中,采用内存映射的方式,将所述大页内存映射至计算机设备的用户态可用空间,根据各所述消费者对应的内存大小,确定并分配各所述消费者对应独占的内存段,所述计算机设备用于执行所述云防火墙的运行。
9.在第二方面,本发明提供一种云防火墙的内存管理装置,其特征在于,所述装置包括:第一确定单元,用于根据所述云防火墙的总内存,确定大页内存。第二确定单元,用于确定所述云防火墙中每一条会话占用的会话总内存。第三确定单元,用于根据预先确定的大页内存与单条会话总内存和会话规格之间的第一对应关系,确定所述云防火墙的最大会话
规格。
10.结合第二方面,在第二方面的第一实施例中,所述大页内存包括多个消费者,第一对应关系采用下述单元进行确定:关系确定单元,用于根据预先确定的每一个消费者对应的内存与会话规格之间的第二对应关系,确定所述第一对应关系。
11.结合第二方面或者第二方面的第一实施例,在第二方面的第二实施例中,所述装置还包括:第四确定单元,用于根据所述第二对应关系和所述最大会话规格,确定各所述消费者对应的内存。
12.结合第二方面的第一实施例或者第二实施例,在第二方面的第三实施例中,所述装置还包括:分配单元,用于采用内存映射的方式,将所述大页内存映射至计算机设备的用户态可用空间,根据各所述消费者对应的内存大小,确定并分配各所述消费者对应独占的内存段,所述计算机设备用于执行所述云防火墙的运行。
13.根据第三方面,本发明实施方式还提供一种计算机设备,包括存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面及其可选实施方式中任一项的云防火墙的内存资源管理方法。
14.根据第四方面,本发明实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面及其可选实施方式中任一项的云防火墙的内存资源管理方法。
15.通过本发明提供的方法,能够根据预先确定的大页内存与单条会话总内存和会话规格之间的第一对应关系,确定该云防火墙对应的最大会话规格,进而实现在总内存有限的情况下,将会话规格最大化,从而达到提升产品竞争力的目的。
附图说明
16.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1是根据一示例性实施例提出的一种云防火墙的内存管理方法的流程图。
18.图2是根据一示例性实施例提出的一种内存池布局的示意图。
19.图3是根据一示例性实施例提出的另一种云防火墙的内存管理方法的流程图。
20.图4是根据一示例性实施例提出的又一种云防火墙的内存管理方法的流程图。
21.图5是根据一示例性实施例提出的又一种云防火墙的内存管理方法的流程图。
22.图6是根据一示例性实施例提出的一种云防火墙的内存管理装置的结构框图。
23.图7是根据一示例性实施例提出的一种计算机设备的硬件结构示意图。
具体实施方式
24.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
25.根据云防火墙可占用的总内存,能够确定该云防火墙的规格,进而通过确定的规格参数,能够直接确定该云防火墙的会话规格。
26.相关技术中,针对不同类型的云服务器或者云主机,在存在已有云防火墙的情况下,增加新的云防火墙时,可以根据已有云防火墙与新的云防火墙之间总内存的配置比例,定制新的云防火墙的规格。例如:新的云防火墙与已有云防火墙的之间总内存的配置比例为2时,则该新的云防火墙定制的规格为已有云防火墙规格的二倍。
27.但采用该种方式确定云防火墙的规格时,若已有云防火墙的定制规格不合理时,则容易导致新的云防火墙的规格也不合理。例如:当规格定制过小时,则使新的云防火墙的会话规格不能满足业务需求,内存资源利用率低,进而影响该新的云防火墙的竞争力。
28.为解决上述问题,本发明实施例中提供一种云防火墙的内存资源管理,用于计算机设备中,需要说明的是,其执行主体可以是云防火墙的内存资源管理装置,该装置可以通过软件、硬件或者软硬件结合的方式实现成为存储设备的部分或者全部,其中,该计算机设备可以是云主机或容器或服务器,服务器可以是一台服务器,也可以为由多台服务器组成的服务器集群。下述方法实施例中,均以执行主体是计算机设备为例来进行说明。
29.本发明实施例中的计算机设备,用于控制云防火墙的运行。其中,云防火墙能够提供一种基于intel提供的数据平面开发工具集(intel data plane development kit,dpdk)的io、资源和cpu密集型的业务。
30.通过本发明提供的云防火墙的内存管理方法,能够根据预先确定的大页内存与单条会话总内存和会话规格之间的第一对应关系,确定该云防火墙对应的最大会话规格,进而在总内存有限的情况下,实现会话规格最大化,从而达到提升产品竞争力的目的。
31.图1是根据一示例性实施例提出的一种云防火墙的内存管理方法的流程图。如图1所示,云防火墙的内存管理方法包括如下步骤s101至步骤s103。
32.在步骤s101中,根据云防火墙的总内存,确定大页内存。
33.在本发明实施例中,大页内存可以理解为是云防火墙转发面所占用的内存。由于在大页内存中,页表缓存(translation lookaside buffer,tlb)缺失(miss)数量较少,缺页中断的数量也较少,因此,使用大页内存,有助于提升云防火墙的转发面性能。
34.故,为确定该云防火墙所能够支持的最大会话规格,则先根据云防火墙的总内存,确定能够为会话规格提供内存的大页内存。
35.在一示例中,为保证云防火墙系统的稳定运行,在云防火墙的总内存中,确定并预留出云防火墙系统对应的系统内存,进而根据云防火墙的总内存与系统内存之间的差值,得到大页内存。在一实施场景中,系统内存为1g,空闲内存占总内存的10%。
36.在步骤s102中,确定云防火墙中每一条会话占用的会话总内存。
37.在本发明实施例中,为充分利用大页内存,则先确定云防火墙在进行运行时,每一条会话所需占用的会话总内存,进而确定大页内存所能够支持的最大会话规格。
38.在步骤s103中,根据预先确定的大页内存与单条会话总内存和会话规格之间的第一对应关系,确定云防火墙的最大会话规格。
39.在本发明实施例中,预先建立大页内存与单条会话总内存和会话规格之间的对应关系,进而在大页内存和会话总内存确定的情况下,便可以直接确定云防火墙的最大会话规格,以便充分利用大页内存。其中,单条会话总内存包含单条会话表项所占内存和与该条
会话相关的其它消费者所占内存。
40.在一示例中,第一对应关系可以是比例函数关系,进而第一对应关系即为:大页内存=会话总内存*会话规格。因此,在大页内存和会话总内存确定的情况下,根据大页内存与单条会话总内存之间的商值,便可以确定该云防火墙所能够支持的最大会话规格。例如:若大页内存为3g,会话总内存为6m,则最大会话规格=3g/6m=512k。若大页内存为15g,会话总内存为6m,则最大会话规格=15g/6m=2560k。
41.通过上述实施例,能够根据预先确定的大页内存与单条会话总内存和会话规格之间的第一对应关系,确定该云防火墙对应的最大会话规格,进而在总内存有限的情况下,实现会话规格最大化,从而达到提升产品竞争力的目的。
42.在一实施例中,大页内存包括多个消费者:存储器缓存、会话表、分片序列化、hash表、关联表、tcp连接表和l7service内存池。由于各消费者的功能均是基于会话实现,因此,可以理解为,在大页内存中的所有消费者中,除了会话表本身,其它消费者对应的内存均与会话规格大小具有线性关系,且会话规格越大,各消费者所需消费的内存就越多。因此,预先确定的每一个消费者对应的内存与会话规格之间的第二对应关系,进而确定大页内存与单条会话总内存和会话规格之间的第一对应关系。
43.在一实施场景中,云防火墙在运行时,不同消费者所需占用的内存不同,进而导致对应的内存池大小不同。各消费者所需占用的内存池大小由高到低可以如图2所示。其中,图2是根据一示例性实施例提出的一种内存池布局的示意图。hash桶是hash表对应的内存池名称。因此,可以以会话规格为基础,确定会话规格与消费者之间的第二对应关系,进而确定第一对应关系。其中,r1~r5分别代表各消费者与会话规格之间的比例关系。在一示例中,r1~r5可以根据需求进行设置,例如:为增大hash桶以减少hash冲突,则在确定r3时,可以设置r3为1/8,进而在确定hash表对应的内存时,即基于已确定的会话规格,将会话规格的1/8确定为hash表对应的规格。为保证会话的网络处于稳定状态,则在确定r5时,可以设置r5为1/2,进而在确定tcp连接表对应的内存时,即基于已确定的会话规格,将会话规格的1/2确定为tcp连接表对应的规格。
44.因此,在确定会话规格与大页内存之间的第一对应关系时,可以采用下述公式进行确定:
45.总内存=系统内存+大页内存;
46.其中,大页内存=mbuf_mem(mbuf对应的内存)+sess_mem(会话规格表对应的内存)+serialize_mem(分片序列化对应的内存)+hashbucket_mem(hash表对应的内存)+associate_mem(关联表对应的内存)+tcpconn_mem(tcp连接表对应的内存)+service_mem(l7service内存池对应的内存);
47.mbuf_mem=mbuf_cnt(mbuf数量)*mbuf_size(mbuf大小)=sess_cnt(会话规格)*r1*mbuf_size;
48.sess_mem=sess_cnt(会话规格)*sess_size(会话大小);
49.serialize_mem=serialize_cnt(分片序列化数量)*serialize_size(分片序列化大小)=sess_cnt(会话规格)*r2*serialize_size;
50.hashbucket_mem=hashbucket_cnt(hash表数量)*hashbucket_size(hash表大小)=sess_cnt(会话规格)*r3*hashbucket_size;
51.associate_mem=associate_cnt(关联表数量)*associate_size(关联表数量)=sess_cnt(会话规格)*r4*associate_size;
52.tcpconn_mem=tcpconn_cnt(tcp连接表数量)*2*tcpconn_size(tcp连接表大小)=sesscnt(会话规格)*r5*tcpconn_size;
53.service_mem=sesscnt(会话规格)*service_mem_per_sess;
54.为便于直观解释第二对应关系,会话规格与各消费者之间的第二对应关系可以如表1所示:
[0055][0056]
表1
[0057]
其中,入侵防御系统(intrusion prevention system,ips)是一种安全机制,通过分析网络流量,检测入侵(包括缓冲区溢出攻击、木马、蠕虫等),并通过一定的响应方式,实时地中止入侵行为,保护企业信息系统和网络架构免受侵害。统一威胁管理(unified threat management,utm)是一种能够提供一项或多项安全功能,将多种安全特性集成于一个硬设备里,构成一个标准的统一管理平台。
[0058]
进而,大页内存=sess_cnt*(r1*mbuf_size+sess_size+r2*serialize_size+r3*hashbucket_size+r4*associate_size+r5*tcpconn_size+service_mem_per_sess);
[0059]
令mem_per_sess(每一条会话所需内存)=(r1*mbuf_size+sess_size+r2*serialize_size+r3*hashbucket_size+r4*associate_size+r5*tcpconn_size+service_mem_per_sess);
[0060]
则,确定的第一对应关系为:大页内存=sess_cnt*mem_per_sess,进而在确定每一条会话所需内存的情况下,便可以基于大页内存与会话规格之间的对应关系,确定最大会话规格。例如:若每一条会话所需内存=6m,且大页内存为3g,则最大会话规格=3g/6m=512k。
[0061]
在一实施场景中,每一条会话占用的会话总内存可以是基于l7service内存池对应内存和r1~r5确定的。
[0062]
图3是根据一示例性实施例提出的另一种云防火墙的内存管理方法的流程图。如图3所示,云防火墙的内存管理方法包括如下步骤。
[0063]
在步骤s301中,根据云防火墙的总内存,确定大页内存。
[0064]
在步骤s302中,确定云防火墙中每一条会话占用的会话总内存。
[0065]
在步骤s303中,根据预先确定的大页内存与单条会话总内存和会话规格之间的第一对应关系,确定云防火墙的最大会话规格。
[0066]
在步骤s304中,根据第二对应关系和最大会话规格,确定各消费者对应的内存。
[0067]
在本发明实施例中,在确定最大会话规格的情况下,根据每一个消费者对应的内存与会话规格之间的第二对应关系,便可以在大页内存中,确定各消费者对应的内存,明确云防火墙在运行时各消费者所占用的内存。例如:最大会话规格=512k,则mbuf_mem=512k*r1*mbuf_size;serialize_mem=512k*r2*serialize_size;hashbucket_mem=512k*r3*hashbucket_size;associate_mem=512k*r4*associate_size;tcpconn_mem=512k*r5*tcpconn_size;service_mem=512k*service_mem_per_sess。
[0068]
通过上述实施例,能够根据已确定的第一对应关系和第二对应关系,明确云防火墙在运行时,云防火墙的大页内存所能够支持的最大会话规格,以及消费者所占用的内存。
[0069]
图4是根据一示例性实施例提出的又一种云防火墙的内存管理方法的流程图。如图4所示,云防火墙的内存管理方法包括如下步骤。
[0070]
在步骤s401中,根据云防火墙的总内存,确定大页内存。
[0071]
在步骤s402中,确定云防火墙中每一条会话占用的会话总内存。
[0072]
在步骤s403中,根据预先确定的大页内存与单条会话总内存和会话规格之间的第一对应关系,确定云防火墙的最大会话规格。
[0073]
在步骤s404中,根据第二对应关系和最大会话规格,确定各消费者对应的内存。
[0074]
在步骤s405中,采用内存映射的方式,将大页内存映射至计算机设备的用户态可用空间,根据各消费者对应的内存大小,确定并分配各消费者对应独占的内存段。
[0075]
在本发明实施例中,采用内存映射的方式,将大页内存映射至计算机设备的用户态可用空间,例如:通过调用mmap()函数,将大页内存映射至计算机设备的用户态可用空间。在用户态可用空间中,根据各消费者对应的内存大小,确定并分配各消费者对应独占的内存段,以便将各消费所占内存进行分开独立管理,使在云防火墙运行时,彼此互不干扰,从而使大页内存的分配更具有合理性。其中,算机设备用于执行云防火墙的运行。
[0076]
通过上述实施例,能够根据大页内存,确定云防火墙在运行时所能够支持的最大会话规格,以及各消费者对应的内存,并基于内存映射,将各消费者进行分开管理,有助于充分利用大页内存,便于提高云防火墙的性能。
[0077]
在一实施场景中,当云防火墙的规格确定后,启动该云防火墙时,可以通过静态配置文件读取规格参数将云防火墙的总内存进行初始化,进而根据第一对应关系和第二对应关系,分别确定最大会话规格和各消费者对应的内存并进行初始化,从而后续对各消费者进行分开管理。其中,在静态配置文件中包括r1~r5对应的值。具体实现过程介意如图5所示。图5是根据一示例性实施例提出的又一种云防火墙的内存管理方法的流程图。
[0078]
在步骤s501中,通过静态配置文件,确定系统内存以及每一条会话占用的会话总内存。
[0079]
在步骤s502中,根据云防火墙的总内存和系统内存,确定大页内存,并将大页内存进行初始化。
[0080]
在步骤s503中,根据第一对应关系和大页内存,确定最大会话规格。
[0081]
在步骤s504中,根据第二对应关系和最大会话规格,确定各消费者对应的内存。
[0082]
在步骤s505中,调用mmap()函数,将大页内存映射至计算机设备的用户态可用空间,根据各消费者对应的内存,确定并分配各消费者对应独占的内存段。
[0083]
在步骤s506中,针对各内存段对应的内存池实现进行初始化。
[0084]
在步骤s507中,判断是否完成各内存段的初始化。
[0085]
在本发明实施例中,若初始化均完成,则该云防火墙可正常运行,若存在未完成的初始化的内存段,则继续进行初始化,直至全部完成。
[0086]
通过上述实施例,使静态配置文件能够根据云防火墙的实际总内存大小调整会话规格,进而基于第一对应关系和云防火墙的大页内存时,将会话规格最大化。并且第二对应关系中的r1~r5中任意一个系数可以根据实际需求进行调整,有助于动态调节最大会话规格,提升云防火墙的产品竞争力。
[0087]
并且,在测试场景下,由于云防火墙的规格和内存大小成比例,因此,对云防火墙进行测试时,也无需重复遍历所有云防火墙,进而有助于简化测试工作量,从而有助于简化云防火墙的交付和维护。
[0088]
基于相同发明构思,本发明还提供一种云防火墙的内存管理装置。
[0089]
图6是根据一示例性实施例提出的一种云防火墙的内存管理装置的结构框图。如图6所示,云防火墙的内存管理装置包括第一确定单元601、第二确定单元602和第三确定单元603。
[0090]
第一确定单元601,用于根据云防火墙的总内存,确定大页内存。
[0091]
第二确定单元602,用于确定云防火墙中每一条会话占用的会话总内存。
[0092]
第三确定单元603,用于根据预先确定的大页内存与单条会话总内存和会话规格之间的第一对应关系,确定云防火墙的最大会话规格。
[0093]
在一实施例中,大页内存包括多个消费者,第一对应关系采用下述单元进行确定:关系确定单元,用于根据预先确定的每一个消费者对应的内存与会话规格之间的第二对应关系,确定第一对应关系。
[0094]
在另一实施例中,装置还包括:第四确定单元,用于根据第二对应关系和最大会话规格,确定各消费者对应的内存。
[0095]
在又一实施例中,装置还包括:分配单元,用于采用内存映射的方式,将大页内存映射至计算机设备的用户态可用空间,根据各消费者对应的内存大小,确定并分配各消费者对应独占的内存段,计算机设备用于执行云防火墙的运行。
[0096]
上述云防火墙的内存管理装置的具体限定以及有益效果可以参见上文中对于云防火墙的内存管理方法的限定,在此不再赘述。上述各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0097]
图7是根据一示例性实施例提出的一种计算机设备的硬件结构示意图。如图7所示,该设备包括一个或多个处理器710以及存储器720,存储器720包括持久内存、易失内存和硬盘,图7中以一个处理器710为例。该设备还可以包括:输入装置730和输出装置740。
[0098]
处理器710、存储器720、输入装置730和输出装置740可以通过总线或者其他方式连接,图7中以通过总线连接为例。
[0099]
处理器710可以为中央处理器(central processing unit,cpu)。处理器710还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0100]
存储器720作为一种非暂态计算机可读存储介质,包括持久内存、易失内存和硬盘,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本技术实施例中的业务管理方法对应的程序指令/模块。处理器710通过运行存储在存储器720中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述任意一种云防火墙的内存管理方法。
[0101]
存储器720可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据、需要使用的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器720可选包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至数据处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0102]
输入装置730可接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏等显示设备。
[0103]
一个或者多个模块存储在存储器720中,当被一个或者多个处理器710执行时,执行如图1-图5所示的方法。
[0104]
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,具体可参见如图1-图5所示的实施例中的相关描述。
[0105]
本发明实施例还提供了一种非暂态计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的认证方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
[0106]
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1