发明内容
本申请提供一种管理缓存的方法及装置,用于解决缓存的可靠性较差的问题。
为达到上述目的,本申请采用如下技术方案:
一种管理缓存的方法,应用于一种管理缓存的装置,该装置包括主管理单元和至少两个从管理单元,其中,每个从管理单元用于处理一种类型的报文,该方法包括:
主管理单元根据每个从管理单元处理的报文类型,配置每个从管理单元的权重,其中,每个从管理单元的权重与其处理的报文类型相对应;
主管理单元获取空闲缓存总量,其中,空闲缓存总量是指分配给每个从管理单元的空闲缓存容量之和;
若空闲缓存总量小于或等于第一阈值,主管理单元根据每个从管理单元的权重,将空闲缓存分配给每个从管理单元,其中,分配给每个从管理单元的空闲缓存容量,与其权重正相关。一种管理缓存的装置,该装置包括主管理单元和至少两个从管理单元,其中,每个从管理单元,用于处理一种类型的报文,
主管理单元,用于根据每个从管理单元处理的报文类型,配置每个从管理单元的权重,其中,每个从管理单元的权重与其处理的报文类型相对应;
主管理单元,还用于获取空闲缓存总量,其中,空闲缓存总量是指分配给每个从管理单元的空闲缓存容量之和;
主管理单元,还用于根据每个从管理单元的权重,将空闲缓存分配给每个从管理单元,其中,分配给每个从管理单元的空闲缓存容量,与其权重正相关。
一种管理缓存的装置,该装置包括主管理单元和至少两个从管理单元,其中,每个从管理单元,用于处理一种类型的报文,
从管理单元,还用于当从管理单元已使用的缓存容量大于或等于第三阈值时,生成缓存调整请求,并向主管理单元发送,其中,缓存调整请求包括从管理单元已使用的缓存容量与第三阈值的差值;
主管理单元,还用于接收从管理单元发送的缓存调整请求,并根据从管理单元已使用的缓存容量与第三阈值的差值,确定缓存容量调整量;
主管理单元,还用于获取空闲缓存总量,其中,空闲缓存总量是指分配给每个从管理单元的空闲缓存容量之和;
主管理单元,还用于若空闲缓存总量大于或等于第二阈值,增加发送缓存调整请求的从管理单元的缓存容量,并且减少至少一个其他从管理单元的缓存容量,其中,增加的缓存容量与减少的缓存容量均为缓存容量调整量。
本申请实施例提供的管理缓存的方法与装置,当空闲缓存总量较小时,主管理单元能够根据每个从管理单元的权重,动态地增加权重较大的从管理单元的缓存容量,减少权重较小的从管理单元的缓存容量,从而保证了权重较大的从管理单元有足够的缓存处理优先级较高的报文,降低了空闲缓存总量不足导致的高优先级报文丢失的概率,还降低了高优先级报文丢失可能导致通信网络中断的概率,提高了缓存的可靠性,进而提高了通信网络的可靠性。
一种管理缓存的方法,应用于一种管理缓存的装置,该装置包括主管理单元和至少两个从管理单元,其中,每个从管理单元用于处理一种类型的报文,该方法包括:
当从管理单元已使用的缓存容量大于或等于第三阈值时,从管理单元生成缓存调整请求,并向主管理单元发送,其中,缓存调整请求包括从管理单元已使用的缓存容量与第三阈值的差值;
主管理单元接收从管理单元发送的缓存调整请求,并根据从管理单元已使用的缓存容量与第三阈值的差值,确定缓存容量调整量;
主管理单元获取空闲缓存总量,其中,空闲缓存总量是指分配给每个从管理单元的空闲缓存容量之和;
若空闲缓存总量大于或等于第二阈值,主管理单元增加发送缓存调整请求的从管理单元的缓存容量,并且减少至少一个其他从管理单元的缓存容量,其中,增加的缓存容量与减少的缓存容量均为缓存容量调整量。
本申请实施例提供的管理缓存的方法与装置,当某个从管理单元的空闲缓存容量不足,而空闲缓存总量较大时,主管理单元能够根据空闲缓存容量不足的从管理单元发送的缓存调整请求,确定缓存容量调整量,动态地增加发送缓存调整请求的从管理单元的缓存容量,临时提高该从管理单元占用共享缓存的能力,并且减少至少一个其他从管理单元的缓存容量,从而保证了发送缓存调整请求的从管理单元有足够的缓存处理接收到的报文,降低了发送缓存调整请求的从管理单元由于空闲缓存容量不足而丢失报文的概率,提高了缓存的可靠性,进而提高了通信网络的可靠性。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本申请实施例提供了一种管理缓存的方法,应用于一种管理缓存的装置,该装置包括主管理单元和至少两个从管理单元,其中,每个从管理单元用于处理一种类型的报文。其中,图1中所示的方法步骤会在下文提出,在此不再赘述。
需要说明的是,为了降低缓存成本,不同类型报文通常需要共享一块缓存,并且,为了提高处理报文的效率,通常需要设置专用处理装置处理某一种类型报文。当存在多个专用处理装置时,存在多个专用处理装置同时访问缓存中的同一块地址空间,从而导致报文丢失的情况。因此,在实际应用中,通常采用两级管理机制管理共享缓存。
例如,在本申请实施例中,设置主管理单元和至少两个从管理单元共同管理共享内存。主管理单元用于从整体上管理共享缓存,包括在该装置初始化阶段,根据每个从管理单元处理的报文类型,为每个从管理单元分配初始缓存容量,以及监控每个从管理单元的缓存使用情况。其中,每个从管理单元处理的报文类型,是由主管理单元根据每个从管理单元支持的报文类型设置的。例如,若从管理单元支持的报文类型包括普通报文、协议报文,但不支持流控报文和加密报文,则主管理单元可以设置该从管理单元处理的报文类型为普通报文或协议报文,而不能设置该从管理单元处理的报文类型为流控报文或加密报文。
至于监控每个从管理单元的缓存使用情况,则可以通过主管理单元定时查询每个从管理单元的缓存使用情况来实现,也可以通过每个从管理单元定时上报该从管理单元的缓存使用情况来实现,还可以通过上述查询机制和上报机制共同实现,本申请对此不作限定。
在本申请实施例中,从管理单元通常用于管理主管理单元为其分配的缓存空间。例如,为接收到的报文分配缓存空间,释放已经处理完毕的报文占用的缓存空间。此外,从管理单元还需要完成与主管理单元之间的通信,包括回复主管理单元发送的查询该从管理单元的缓存使用情况的指令,或者向主管理单元定时上报缓存使用情况的指示,以及接收主管理单元发送的配置指令等。
在实际的包括主核和多个转发核的路由器中,主管理单元可以是主核本身,也可以是主核创建的负责监控每个从管理单元的缓存使用情况的线程,而从管理单元,可以是转发核本身,也可以是用于转发某种类型报文的单板,本申请对此不作限定。
如图1所示,该方法具体包括:
步骤101、主管理单元根据每个从管理单元处理的报文类型,配置每个从管理单元的权重。
其中,每个从管理单元的权重与其处理的报文类型相对应。
在本步骤中,主管理单元根据不同类型报文在通信网络中的作用,设置了不同的权重,由于每个从管理单元用于处理一种类型报文,也就相当于为每个从管理单元设置了不同的权重。
例如,协议报文是在诸如路由器等通信设备之间传输的信令报文,用于控制通信设备之间的通信,一旦丢失,可能造成通信中断,因此在本申请实施例中,主管理单元可以为其设置一个较大权重。
又例如,普通报文通常用于承载用户数据,即便丢失,也可以通过重传机制补救,一般不会造成通信中断等严重后果,因此在本申请实施例中,主管理单元可以为其设置一个较小的权重。
从保证通信网络的可靠性的角度出发,为处理不同类型报文的从管理单元设置不同的权重,以便以此为依据,当空闲缓存总量较小时,为权重较大的报文类型分配更多的缓存资源,降低丢失权重较大的报文的可能性,以提高通信网络的可靠性。
步骤102、主管理单元获取空闲缓存总量。
其中,空闲缓存总量是指分配给每个从管理单元的空闲缓存容量之和。
步骤103、若空闲缓存总量小于或等于第一阈值,主管理单元根据每个从管理单元的权重,将空闲缓存分配给每个从管理单元。
其中,分配给每个从管理单元的空闲缓存容量,与其权重正相关。
在实际应用中,第一阈值通常根据诸如路由器等通信设备处理报文的能力、报文流量以及共享缓存容量等因素综合考虑后设定。例如,若通信设备处理报文的能力很强和/或报文流量较小和/或共享缓存容量较大,可以将第一阈值设置为一个较小值,否则,需要将第一阈值设置为一个较大值,本申请对此不作限定。
需要说明的是,每个从管理单元用于处理一种类型报文,且权重是根据报文类型设置的,因此从管理单元处理的报文类型对应的权重,可以认为是该从管理单元的权重。在实际应用中,权重可以在通信设备上电初始化时根据预设值自动设置,也可以在通信设备正常运行时,根据接收到的每种类型报文的流量大小进行调整,本申请对此不作限定。
例如,在本申请中,权重可以用百分数来表示,取值范围为0至100%,且每个从管理单元的权重之和为1。例如,可以将处理协议报文的从管理单元的权重设置为70%,同时将处理普通报文的从管理单元的权重和处理加密报文的从管理单元的权重分别设置为10%和20%。再例如,也可以将处理协议报文的从管理单元的权重设置为100%,同时将处理普通报文的从管理单元的权重和处理加密报文的从管理单元的权重均设置为0。
空闲缓存总量小于或等于第一阈值是指,共享缓存的剩余容量不足,为避免诸如协议报文等信令报文丢失导致通信中断,通常会将处理信令报文的从管理单元的权重设置为较大值,将大部分空闲缓存容量用于信令报文的处理。
本申请实施例提供的管理缓存的方法,当空闲缓存总量较小时,主管理单元能够根据每个从管理单元的权重,动态地增加权重较大的从管理单元的缓存容量,减少权重较小的从管理单元的缓存容量,从而保证了权重较大的从管理单元有足够的缓存处理优先级较高的报文,降低了空闲缓存总量不足导致的高优先级报文丢失的概率,还降低了高优先级报文丢失可能导致通信网络中断的概率,提高了缓存的可靠性,进而提高了通信网络的可靠性。
在如图1所示的实现方式的基础上,还可以实现为如图2所示的另一种实现方式。如图2所示,在执行步骤102主管理单元获取空闲缓存总量之前,该方法还包括步骤201:
步骤201、当空闲缓存总量大于或等于第二阈值时,主管理单元获取并记录每个从管理单元的初始缓存容量。
其中,第二阈值大于或等于第一阈值。
在实际应用中,第二阈值可以根据缓存总容量、报文流量和通信设备处理报文的能力等因素设定,通常设置为一个较大值。例如,可以将第二阈值设置为共享缓存总容量的60%。
在执行步骤103若空闲缓存总量小于或等于第一阈值,主管理单元根据每个从管理单元的权重,将空闲缓存分配给每个从管理单元之后,该方法还包括步骤202:
步骤202、当空闲缓存总量大于或等于第二阈值时,主管理单元将每个从管理单元的缓存容量恢复为初始缓存容量。
在本申请实施例中,如图1所示的实现方式,是为了在空闲缓存总量不足时保证诸如协议报文等信令报文的处理,以免造成诸如通信中断等严重后果的一种应急方案,因此当空闲缓存总量恢复为正常状态时,即空闲缓存总量大于或等于第二阈值时,将分配给每个从管理单元的缓存容量恢复为调整之前初始化缓存容量,以保证诸如普通报文等较低权重的报文的处理,进一步提高了通信网络的可靠性。
如图3所示,本申请实施例还提供了一种管理缓存的方法,应用于一种管理缓存的装置,该装置包括主管理单元和至少两个从管理单元,其中,每个从管理单元用于处理一种类型的报文。其中,图3中所示的方法步骤会在下文提出,在此不再赘述。
需要说明的是,为了降低缓存成本,不同类型报文通常需要共享一块缓存,并且,为了提高处理报文的效率,通常需要设置专用处理装置分别处理某一种类型报文。当存在多个专用处理装置时,存在多个专用处理装置同时访问缓存中的同一块地址空间,从而导致报文丢失的情况。因此,在实际应用中,通常采用两级管理机制管理共享缓存。
例如,在本申请实施例中,设置主管理单元和至少两个从管理单元共同管理共享内存。主管理单元用于从整体上管理共享缓存,包括在该装置初始化阶段,根据每个从管理单元处理的报文类型,为每个从管理单元分配初始缓存容量,以及监控每个从管理单元的缓存使用情况。其中,每个从管理单元处理的报文类型,是由主管理单元根据每个从管理单元支持的报文类型设置的。例如,若从管理单元支持的报文类型包括普通报文、协议报文,但不支持流控报文和加密报文,则主管理单元可以设置该从管理单元处理的报文类型为普通报文或协议报文,而不能设置该从管理单元处理的报文类型为流控报文和加密报文。
至于监控每个从管理单元的缓存使用情况,则可以通过主管理单元定时查询每个从管理单元的缓存使用情况来实现,也可以通过每个从管理单元定时上报该从管理单元的缓存使用情况来实现,还可以通过上述查询机制和上报机制共同实现,本申请对此不作限定。
在本申请实施例中,从管理单元通常用于管理主管理单元为其分配的缓存空间。例如,为接收到的报文分配缓存空间,释放已经处理完毕的报文占用的缓存空间。此外,从管理单元还需要完成与主管理单元之间的通信,包括回复主管理单元发送的查询该从管理单元的缓存使用情况的指令,或者向主管理单元定时上报缓存使用情况的指示,以及接收主管理单元发送的配置指令等。
在实际的包括主核和多个转发核的路由器中,主管理单元可以是主核本身,也可以是主核创建的负责监控每个从管理单元的缓存使用情况的线程,而从管理单元,可以是转发核本身,也可以是用于转发某种类型报文的单板,本申请对此不作限定。
如图3所示,该方法具体包括:
步骤301、当从管理单元已使用的缓存容量大于或等于第三阈值时,从管理单元生成缓存调整请求,并向主管理单元发送。
其中,缓存调整请求包括从管理单元已使用的缓存容量与第三阈值的差值。
需要说明的是,第三阈值通常设置为一个较大值,可以用百分数来表示,也可以设置为具体的缓存容量。例如主管理单元为该从管理单元分配的缓存容量为1GB,则将第三阈值设置为95%与设置为0.95GB是一样的。
设置第三阈值的目的,在于当从管理单元已使用的缓存容量已经接近主管理单元为该从管理单元分配的缓存容量时,避免短时间内新接收的大量报文所需要的缓存容量超过该从管理单元的剩余缓存容量,从而导致新接收的报文丢失的概率,提高了缓存的可靠性。
步骤302、主管理单元接收从管理单元发送的缓存调整请求,并根据从管理单元已使用的缓存容量与第三阈值的差值,确定缓存容量调整量。
其中,为了平衡处理各种类型报文所需要的缓存容量,根据从管理单元已使用的缓存容量与第三阈值的差值,确定每次调整的缓存容量,即缓存容量调整量。
例如,缓存调整量可以为上述差值的一倍或多倍。当上述差值不等于可分配的最小缓存容量的整数倍时,可以采用先对差值向上取整,然后再乘以某个倍数,或者先乘以某个倍数,然后再向上取整,以确定缓存调整量。此外,若上述差值为0,采用可分配的最小容量的整数倍作为缓存调整量。
步骤102、主管理单元获取空闲缓存总量。
其中,空闲缓存总量是指分配给每个从管理单元的空闲缓存容量之和。
步骤304、若空闲缓存总量大于或等于第二阈值,主管理单元增加发送缓存调整请求的从管理单元的缓存容量,并且减少至少一个其他从管理单元的缓存容量。
其中,增加的缓存容量与减少的缓存容量均为缓存容量调整量。
本步骤中的第二阈值与图1中的第二阈值相同,此处不再赘述。
需要说明的是,主管理单元临时增加了空闲缓存容量较小的从管理单元的缓存容量,以降低丢弃该从管理单元处理的报文的概率,提高了该从管理单元的处理报文的性能,提高了管理缓存的可靠性,进而提高了通信网络的可靠性。
需要注意的是,当相较于普通报文的流量而言,协议报文的流量很小时,若存储普通报文的空闲缓存容量较小,则也可以临时将存储协议报文的部分空闲缓存用于存储普通报文。
本申请实施例提供的管理缓存的方法,当某个从管理单元的空闲缓存容量不足,而空闲缓存总量较大时,主管理单元能够根据空闲缓存容量不足的从管理单元发送的缓存调整请求,确定缓存容量调整量,动态地增加发送缓存调整请求的从管理单元的缓存容量,临时提高该从管理单元占用共享缓存的能力,并且减少至少一个其他从管理单元的缓存容量,从而保证了发送缓存调整请求的从管理单元有足够的缓存处理接收到的报文,降低了发送缓存调整请求的从管理单元由于空闲缓存容量不足而丢失报文的概率,提高了缓存的可靠性,进而提高了通信网络的可靠性。
此外,本申请实施例提供的管理缓存的方法,还能够将空闲缓存容量较大的从管理单元的部分空闲缓存容量,临时分配给缓存容量不足的其他从管理单元使用,提高了缓存的利用效率,且提高了处理报文的效率,进而提高了通信网络的性能。
在如图3所示的实现方式的基础上,还可以实现为如图4所示的另一种实现方式。如图4所示,在执行步骤102主管理单元获取空闲缓存总量之前,该方法还包括步骤201:
步骤201、当空闲缓存总量大于或等于第二阈值时,主管理单元获取每个从管理单元的初始缓存容量。
在执行步骤304若空闲缓存总量大于或等于第二阈值,主管理单元增加发送缓存调整请求的从管理单元的缓存容量,并且减少至少一个其他从管理单元的缓存容量之后,该方法还包括步骤401:
步骤401、当发送缓存调整请求的从管理单元已使用的缓存容量小于或等于第四阈值时,主管理单元将每个从管理单元的缓存容量恢复为初始缓存容量,其中,第四阈值小于或等于第三阈值。
在本申请实施例中,如图3所示的实现方式,是为了在某个从管理单元的空闲缓存容量不足时,保证该从管理单元有足够的缓存容量存储接收到的报文,降低该从管理单元丢失报文的概率,即图3所示的方案为一种应急方案,因此当该从管理单元的空闲缓存容量恢复为正常状态时,即该从管理单元已使用的缓存容量小于或等于第四阈值时,将每个从管理单元的缓存容量恢复为调整之前的初始化缓存容量,以平衡处理各种类型报文所需要的缓存容量,进一步提高了通信网络的可靠性。
本申请实施例提供了一种管理缓存的装置50,用于实现如图1或图2所示的方法流程。如图5所示,该装置50包括主管理单元51和至少两个从管理单元52,其中,每个从管理单元52,用于处理一种类型的报文,
主管理单元51,用于根据每个从管理单元52处理的报文类型,配置每个从管理单元52的权重,其中,每个从管理单元52的权重与其处理的报文类型相对应。
主管理单元51,还用于获取空闲缓存总量,其中,空闲缓存总量是指分配给每个从管理单元52的空闲缓存容量之和。
主管理单元51,还用于根据每个从管理单元52的权重,将空闲缓存分配给每个从管理单元52,其中,分配给每个从管理单元52的空闲缓存容量,与其权重正相关。
本申请实施例提供的管理缓存的装置50,当空闲缓存总量较小时,主管理单元51能够根据每个从管理单元52的权重,动态地增加权重较大的从管理单元52的缓存容量,减少权重较小的从管理单元52的缓存容量,从而保证了权重较大的从管理单元52有足够的缓存处理优先级较高的报文,降低了空闲缓存总量不足导致的高优先级报文丢失的概率,还降低了高优先级报文丢失可能导致通信网络中断的概率,提高了缓存的可靠性,进而提高了通信网络的可靠性。
在图5所示的实现方式的基础上,还可以实现为如图5所示的另一种实现方式。如图5所示,
主管理单元51,还用于获取并记录每个从管理单元52的初始缓存容量;
主管理单元51,还用于当空闲缓存总量大于或等于第二阈值时,将每个从管理单元52的缓存容量恢复为初始缓存容量,其中,第二阈值大于或等于第一阈值。
在本申请实施例中,如图5所示的实现方式,是为了在空闲缓存总量不足时保证诸如协议报文等信令报文的处理,以免造成诸如通信中断等严重后果的一种应急方案,因此当空闲缓存总量恢复为正常状态时,即空闲缓存总量大于或等于第二阈值时,将分配给每个从管理单元的缓存容量恢复为调整之前初始化缓存容量,以保证诸如普通报文等较低权重的报文的处理,进一步提高了缓存的可靠性。
本申请实施例还提供了另一种管理缓存的装置50,用于实现如图3或图4所示的方法流程。如图5所示,该装置50包括主管理单元51和至少两个从管理单元52,其中,每个从管理单元52,用于处理一种类型的报文,
从管理单元52,还用于当从管理单元52已使用的缓存容量大于或等于第三阈值时,生成缓存调整请求,并向主管理单元51发送,其中,缓存调整请求包括从管理单元52已使用的缓存容量与第三阈值的差值。
主管理单元51,还用于接收从管理单元52发送的缓存调整请求,并根据从管理单元52已使用的缓存容量与第三阈值的差值,确定缓存容量调整量。
主管理单元51,还用于获取空闲缓存总量,其中,空闲缓存总量是指分配给每个从管理单元52的空闲缓存容量之和。
主管理单元51,还用于若空闲缓存总量大于或等于第二阈值,增加发送缓存调整请求的从管理单元52的缓存容量,并且减少至少一个其他从管理单元52的缓存容量,其中,增加的缓存容量与减少的缓存容量均为缓存容量调整量。
本申请实施例提供的管理缓存的装置50,当某个从管理单元52的空闲缓存容量不足,而空闲缓存总量较大时,主管理单元51能够根据空闲缓存容量不足的从管理单元52发送的缓存调整请求,确定缓存容量调整量,动态地增加发送缓存调整请求的从管理单元52的缓存容量,并且减少至少一个其他从管理单元52的缓存容量,从而保证了发送缓存调整请求的从管理单元52有足够的缓存处理接收到的报文,降低了发送缓存调整请求的从管理单元52由于空闲缓存容量不足而丢失报文的概率,提高了缓存的可靠性,进而提高了通信网络的可靠性。
此外,本申请实施例提供的管理缓存的装置50,还能够将空闲缓存容量较大的从管理单元52的部分空闲缓存容量,临时分配给缓存容量不足的其他从管理单元52使用,提高了缓存的利用效率,且提高了处理报文的效率,进而提高了通信网络的性能。
在图5所示的实现方式的基础上,还可以实现为如图5所示的另一种实现方式。如图5所示,
主管理单元51,还用于当空闲缓存总量大于或等于第二阈值时,获取每个从管理单元52的初始缓存容量。
主管理单元51,还用于当发送缓存调整请求的从管理单元52已使用的缓存容量小于或等于第四阈值时,将每个从管理单元52的缓存容量恢复为初始缓存容量,其中,第四阈值小于或等于第三阈值。
在本申请实施例中,如图5所示的实现方式,是为了在某个从管理单元52的空闲缓存容量不足时,保证该从管理单元52有足够的缓存容量存储接收到的报文,降低该从管理单元52丢失报文的概率,即图5所示的方案为一种应急方案,因此当该从管理单元52的空闲缓存容量恢复为正常状态时,即该从管理单元52已使用的缓存容量小于或等于第四阈值时,将每个从管理单元52的缓存容量恢复为调整之前的初始化缓存容量,以平衡处理各种类型报文所需要的缓存容量,进一步提高了缓存的可靠性。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。