一种网络设备中内存缓存cache的使用方法及装置与流程

文档序号:12469751阅读:176来源:国知局
一种网络设备中内存缓存cache的使用方法及装置与流程

本发明涉及计算机技术领域,具体涉及一种网络设备中内存缓存cache的使用方法及装置。



背景技术:

网络设备的操作系统中,通常会有大量的内存申请和内存释放的操作,对于多核多线程的操作系统来说,每次内存申请或者内存释放,都需要有锁的操作,才不会导致错误。

操作系统中通常会有一些重要的数据结构,这些数据结构需要大量的内存来存储,伴随相对频繁的内存申请和内存释放的操作,如果继续使用原有的内存锁的话,会导致操作系统的性能变差。

通常的解决方法是使用内存缓存(cache),也就是专门为某个数据结构申请多个同样大小的内存,当使用这些内存时就不需要和原有的内存锁互相竞争了,可以有效的提高操作系统性能。

网络设备通常可以支持几百万甚至上千万的会话,因此,可以将内存cache应用于会话。在使用内存cache时,通常是先创建一个cache,比如对于会话,可以先创建具有400万个会话结构的cache,这个cache可以支持400万个会话;当会话继续增加时,继续创建一个cache,大小是400万个会话结构或者是N个会话结构(N为常数,例如200万)。

现有技术仅仅考虑了操作系统性能而没有考虑到操作系统的规格,比如初始化时分配了400万个会话结构的cache,当400万不足时,又创建了200万个会话结构的cache,因此就有600万个会话结构的cache了。而操作系统的规格显示最多只能支持500万的会话,从而导致了100万的会话结构的内存被浪费,这浪费掉的100万会话结构的内存,可能正是其他程序所需要的。



技术实现要素:

鉴于上述问题,本发明提出了克服上述问题的一种网络设备中内存缓存cache的使用方法及装置。

第一方面,本发明提出一种网络设备中内存缓存cache的使用方法,包括:

在接收到携带有数据结构信息的内存申请消息后,判断目标内存缓存cache中是否存在目标空间;所述目标空间的容量为所述数据结构信息指示的容量;所述目标内存cache为用于存放具有所述数据结构的数据的内存cache;

若否,则确定用于存放具有所述数据结构的数据的各内存cache的总容量,并判断所述总容量是否小于预设阈值;所述阈值基于网络设备的操作系统对于所述数据结构的系统规格确定;

若小于,则创建容量为预设容量的内存cache,并反馈携带有该内存cache信息的内存申请响应消息。

可选的,所述方法还包括初始化步骤,具体如下:

基于网络设备的操作系统的许可license文件,获取所述操作系统对于不同数据结构的系统规格;

基于各数据结构的系统规格,初始化创建各数据结构对应的内存cache。

可选的,所述基于各数据结构的系统规格,初始化创建各数据结构对应的内存cache,包括:

基于各数据结构的系统规格,初始化创建各数据结构对应的容量为各数据结构的系统规格×K1的内存cache;其中,K1为大于零小于1的预设常数。

可选的,若所述总容量不小于预设阈值,则分配内存,该内存的容量为所述数据结构信息指示的容量,并反馈携带有该内存信息的内存申请响应消息。

可选的,所述阈值为Num×K2,其中,Num为网络设备的操作系统对于所述数据结构的系统规格,K2为大于零小于1的预设常数;

相应地,所述预设容量为Num×K3,其中,K3为大于零小于1的预设常数,且K3小于K2。

可选的,若所述目标内存cache中存在目标空间,则反馈携带有该目标内存cache信息的内存申请响应消息。

第二方面,本发明还提出一种网络设备中内存缓存cache的使用装置,包括:

第一判断单元,用于在接收到携带有数据结构信息的内存申请消息后,判断目标内存缓存cache中是否存在目标空间;所述目标空间的容量为所述数据结构信息指示的容量;所述目标内存cache为用于存放具有所述数据结构的数据的内存cache;

确定单元,用于在所述第一判断单元判定所述目标内存cache中不存在目标空间时,确定用于存放具有所述数据结构的数据的各内存cache的总容量;

第二判断单元,用于判断所述总容量是否小于预设阈值;所述阈值基于网络设备的操作系统对于所述数据结构的系统规格确定;

创建单元,用于在所述第二判断单元判定所述总容量小于预设阈值时,创建容量为预设容量的内存cache,并反馈携带有该内存cache信息的内存申请响应消息。

可选的,所述装置还包括:

初始化单元,用于基于网络设备的操作系统的许可license文件,获取所述操作系统对于不同数据结构的系统规格;基于各数据结构的系统规格,初始化创建各数据结构对应的内存cache。

可选的,所述初始化单元中基于各数据结构的系统规格,初始化创建各数据结构对应的内存cache,具体为:

基于各数据结构的系统规格,初始化创建各数据结构对应的容量为各数据结构的系统规格×K1的内存cache;其中,K1为大于零小于1的预设常数。

可选的,所述装置还包括:

分配单元,用于在所述第二判断单元判定所述总容量不小于预设阈值时,分配内存,该内存的容量为所述数据结构信息指示的容量,并反馈携带有该内存信息的内存申请响应消息。

相比于现有技术,本发明提出的网络设备中内存缓存cache的使用方法及装置,不仅考虑到了操作系统的性能而且考虑到了操作系统的规格,可以有效的解决内存浪费的问题。

附图说明

图1为本发明第一实施例提供的一种网络设备中内存缓存cache的使用方法流程图;

图2为本发明第二实施例提供的一种网络设备中内存缓存cache的使用装置结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

需要说明的是,在本文中,“第一”和“第二”仅仅用来将相同的名称区分开来,而不是暗示这些名称之间的关系或者顺序。

如图1所示,本实施例公开一种网络设备中内存缓存cache的使用方法,可包括以下步骤101~103:

101、在接收到携带有数据结构信息的内存申请消息后,判断目标内存缓存cache中是否存在目标空间,若否,则执行步骤102。

其中,所述目标空间的容量为所述数据结构信息指示的容量;所述目标内存cache为用于存放具有所述数据结构的数据的内存cache。

目标内存cache也可理解为有剩余存储空间、正在等待使用的内存cache,而其他的用于存放具有所述数据结构的数据的内存cache均无剩余存储空间。当然,也会存在接收到内存申请消息时,目标内存cache正好在上次内存申请是被完全占用的情况,此时本发明的执行主体也先判断该目标内存cache是否存在目标空间,当然,此时一定不存在目标空间。

以会话为例,当创建一个新的会话时,需要进行内存申请,内存申请消息中携带会话数据结构信息,本实施例的方法的执行主体接收携带有会话数据结构信息的内存申请消息。若已经存在多个用于存放具有会话数据结构的数据的内存cache,则目标内存cache即为这些内存cache中那个唯一的未被完全占用的内存cache。若只有一个用于存放具有会话数据结构的数据的内存cache,则目标内存cache为该内存cache。

102、确定用于存放具有所述数据结构的数据的各内存cache的总容量,并判断所述总容量是否小于预设阈值,若小于,则执行步骤103。

其中,所述阈值基于网络设备的操作系统对于所述数据结构的系统规格确定。

本实施例中,预设阈值是为了防止无条件创建内存cache,使总容量超过系统规格,从而导致内存浪费的情况出现。当总容量小于该预设阈值时,说明此时创建内存cache不会导致内存浪费的情况出现。

103、创建容量为预设容量的内存cache,并反馈携带有该内存cache信息的内存申请响应消息。

本实施例提出的网络设备中内存缓存cache的使用方法,不仅考虑到了操作系统的性能而且考虑到了操作系统的规格,可以有效的解决内存浪费的问题。

在一个具体的例子中,步骤101前还包括初始化步骤,具体包括图1中未示出的步骤100和100’:

100、基于网络设备的操作系统的许可license文件,获取所述操作系统对于不同数据结构的系统规格;

101、基于各数据结构的系统规格,初始化创建各数据结构对应的内存cache。

在一个具体的例子中,步骤101“所述基于各数据结构的系统规格,初始化创建各数据结构对应的内存cache”,具体为:基于各数据结构的系统规格,初始化创建各数据结构对应的容量为各数据结构的系统规格×K1的内存cache;其中,K1为大于零小于1的预设常数。

在一个具体的例子中,步骤102中“判断所述总容量是否小于预设阈值”,若所述总容量不小于预设阈值,则执行图1中未示出的步骤103’:

103’、分配内存,该内存的容量为所述数据结构信息指示的容量,并反馈携带有该内存信息的内存申请响应消息。

在一个具体的例子中,步骤102中所述阈值为Num×K2,其中,Num为网络设备的操作系统对于所述数据结构的系统规格,K2为大于零小于1的预设常数;相应地,所述预设容量为Num×K3,其中,K3为大于零小于1的预设常数,且K3小于K2。

在一个具体的例子中,步骤101中“判断目标内存缓存cache中是否存在目标空间”,若所述目标内存cache中存在目标空间,则执行图1中未示出的步骤102’:

102’、反馈携带有该目标内存cache信息的内存申请响应消息。

基于上述各实施例公开的网络设备中内存缓存cache的使用方法,以会话为例,对方法流程进行具体说明:

K1取0.5,K2取0.9,K3取0.2。需要说明的是,本实施例中K1、K2、K3的值仅为举例说明,本领域技术人员可基于具体应用对K1、K2和K3进行设置。

初始化时,首先根据license文件,获取操作系统的会话规格,比如该值为500万,即Num=500,说明该网络设备最多可以创建500万的会话。初始化创建会话数据结构对应的内存cache(也称为首次创建内存cache)时,根据Num×K1=500×0.5=250创建内存cache,该内存cache的容量500×0.5=250万个会话数据结构的大小。

假设已经有了250万的会话,此时如果再次创建一个新的会话时,实际上会创建一个会话数据结构对应的内存cache,该内存cache容量是Num×K3=500×0.2=100万个会话数据结构大小,也就是虽然仅仅是创建一个会话,但是新创建的内存cache却足够大,使得后续再次创建会话时,可以直接用该内存cache。

假设已经有了450的会话,即总容量=450万个会话数据结构大小,此时总容量>=预设阈值(Num×K2=500×0.9),如果需要创建一个会话,那么不能再分配内存cache了,因为会消耗过多的内存,使得其他程序无法获取足够的内存,此时直接分配一个会话结构大小的内存就可以了。

如图2所示,本实施例公开一种网络设备中内存缓存cache的使用装置,该装置可设置与网络设备中,该装置可包括以下单元:第一判断单元21、确定单元22、第二判断单元23以及创建单元24。

第一判断单元21,用于在接收到携带有数据结构信息的内存申请消息后,判断目标内存缓存cache中是否存在目标空间;所述目标空间的容量为所述数据结构信息指示的容量;所述目标内存cache为用于存放具有所述数据结构的数据且未被完全占用的内存cache;

确定单元22,用于在所述第一判断单元21判定所述目标内存cache中不存在目标空间时,确定用于存放具有所述数据结构的数据的各内存cache的总容量;

第二判断单元23,用于判断所述总容量是否小于预设阈值;所述阈值基于网络设备的操作系统对于所述数据结构的系统规格确定;

创建单元24,用于在所述第二判断单元23判定所述总容量小于预设阈值时,创建容量为预设容量的内存cache,并反馈携带有该内存cache信息的内存申请响应消息。

本实施例公开的装置,可实现图1所示的方法流程,因此,本实施例中的装置的效果及说明可参见图1所示的方法实施例,在此不再赘述。

在一个具体的例子中,所述装置还包括图2未示出的:初始化单元20:

初始化单元20,用于基于网络设备的操作系统的许可license文件,获取所述操作系统对于不同数据结构的系统规格;基于各数据结构的系统规格,初始化创建各数据结构对应的内存cache。

在一个具体的例子中,所述初始化单元20中基于各数据结构的系统规格,初始化创建各数据结构对应的内存cache,具体为:基于各数据结构的系统规格,初始化创建各数据结构对应的容量为各数据结构的系统规格×K1的内存cache;其中,K1为大于零小于1的预设常数。

在一个具体的例子中,所述装置还包括图2中未示出的:分配单元25

分配单元25,用于在所述第二判断单元23判定所述总容量不小于预设阈值时,分配内存,该内存的容量为所述数据结构信息指示的容量,并反馈携带有该内存信息的内存申请响应消息。

在一个具体的例子中,所述阈值为Num×K2,其中,Num为网络设备的操作系统对于所述数据结构的系统规格,K2为大于零小于1的预设常数;相应地,所述预设容量为Num×K3,其中,K3为大于零小于1的预设常数,且K3小于K2。

本领域技术人员可以理解,可以把实施例中的各单元组合成一个单元,以及此外可以把它们分成多个子单元。除了这样的特征和/或过程或者单元中的至少一些是互相排斥之处,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。

本领域技术人员可以理解,实施例中的各单元可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。

虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1