CN115941634A - 共享缓存的阈值调节方法、装置和计算机设备 - Google Patents
共享缓存的阈值调节方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN115941634A CN115941634A CN202211213294.7A CN202211213294A CN115941634A CN 115941634 A CN115941634 A CN 115941634A CN 202211213294 A CN202211213294 A CN 202211213294A CN 115941634 A CN115941634 A CN 115941634A
- Authority
- CN
- China
- Prior art keywords
- threshold
- shared cache
- objects
- determining
- nth
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种共享缓存的阈值调节方法、装置和计算机设备,涉及计算机技术领域。所述方法包括:获取目标设备的共享缓存容量;分别获取所述目标设备中的各个对象在第n周期的动态阈值和队列长度,其中,n为大于或者等于0的整数;根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,分别确定各所述对象的阈值调整值;针对任一所述对象,根据所述对象的所述阈值调整值,以及所述对象在第n周期的动态阈值,确定所述对象在第n+1周期的动态阈值。采用本方法能够最大化共享缓存的资源利用率,保持资源分配的公平性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种共享缓存的阈值调节方法、装置和计算机设备。
背景技术
共享缓存是计算机与通信设备中一种常用的资源统计复用方式。共享缓存是在所有输出队列之间共享集中式缓存,例如交换芯片中片上缓存在各端口中的共享,计算机内存在各个会话连接中的共享分配。以交换机为例,目前主流商用交换设备多采用共享缓存的交换结构,通常一个数据包的转发需要进行包括写入和读取的两次内存访问,且所有交换机端口可以同时访问共享缓存。数据包到达交换机后由交换矩阵发往共享缓存。缓存容量是有限的,例如交换芯片因受面积等因素的制约,片上共享缓存容量有限。因此,缓存分配策略决定数据包是被送往目的输出端口排队,还是因缓存容量不够而丢弃。
一般共享缓存采用基于动态阈值(Dynamic Threshold,DT)的分配策略,使得每个端口允许占用共享缓存的量由确定的阈值控制,阈值即为端口队列长度的上限,每个端口的阈值相等。但动态阈值策略使得空闲缓存大小与过载队列数呈负相关,出现当过载端口的到达数据包持续增长,但动态阈值却不再随之增长,也就意味着相应的过载队列需要丢弃到达的业务,但仍有部分共享缓存却未被有效利用。
可见,目前动态阈值策略下,设备中即使存在很多空闲缓存,过载队列也无法使用空闲缓存使得数据包被丢弃,也即共享缓存的资源利用较低。
发明内容
基于此,有必要针对上述技术问题,提供一种共享缓存的阈值调节方法、装置和计算机设备、计算机可读存储介质和计算机程序产品,以最大化共享缓存的资源利用率,保持资源分配的公平性。
第一方面,本申请提供了一种共享缓存的阈值调节方法,所述方法包括:
获取目标设备的共享缓存容量;
分别获取所述目标设备中的各个对象在第n周期的动态阈值和队列长度,其中,n为大于或者等于0的整数;
根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,分别确定各所述对象的阈值调整值;
针对任一所述对象,根据所述对象的所述阈值调整值,以及所述对象在第n周期的动态阈值,确定所述对象在第n+1周期的动态阈值。
在其中一个实施例中,针对任一所述对象,在n为0的情况下,所述对象在第n时刻的动态阈值根据所述共享缓存容量和对象总数确定,其中,所述动态阈值与所述对象总数负相关。
在其中一个实施例中,所述根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,分别确定各所述对象的阈值调整值,包括:
针对任一所述对象,根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,确定所述对象的阈值调整速率;
基于各所述对象的所述阈值调整速率及周期间隔时长,确定各所述对象的阈值调整值。
在其中一个实施例中,所述根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,确定所述对象的阈值调整速率,包括:
根据所述目标设备中的各个所述对象在第n周期的队列长度之和,以及所述共享缓存容量确定剩余缓存占比,其中,所述剩余缓存占比与所述队列长度之和负相关;
根据所述剩余缓存占比和所述对象在第n周期的队列长度,确定所述对象的阈值调整速率。
在其中一个实施例中,所述根据所述目标设备中的各个所述对象在第n周期的队列长度之和,以及所述共享缓存容量确定剩余缓存占比,包括:
获取预设的空闲缓存容量;
根据所述共享缓存容量和所述空闲缓存容量确定目标缓存容量;
根据所述目标设备中的各个所述对象在第n周期的队列长度之和,以及所述目标缓存容量确定剩余缓存占比。
在其中一个实施例中,所述方法还包括:
在各个所述对象在第n周期的队列长度之和与所述目标缓存容量相等的情况下,将各个所述对象在第n周期的队列长度之和加1后的结果作为各个所述对象在第n周期的队列长度之和。
第二方面,本申请还提供了一种共享缓存的阈值调节装置,所述装置包括:
缓存容量获取模块,用于获取目标设备的共享缓存容量;
动态阈值获取模块,用于分别获取所述目标设备中的各个对象在第n周期的动态阈值和队列长度,其中,n为大于或者等于0的整数;
阈值调整值确定模块,用于根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,分别确定各所述对象的阈值调整值;
阈值分配模块,用于针对任一所述对象,根据所述对象的所述阈值调整值,以及所述对象在第n周期的动态阈值,确定所述对象在第n+1周期的动态阈值。
在其中一个实施例中,针对任一所述对象,在n为0的情况下,所述对象在第n时刻的动态阈值根据所述共享缓存容量和对象总数确定,其中,所述动态阈值与所述对象总数负相关。
在其中一个实施例中,所述阈值调整值确定模块,还用于针对任一所述对象,根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,确定所述对象的阈值调整速率;基于各所述对象的所述阈值调整速率及周期间隔时长,确定各所述对象的阈值调整值。
在其中一个实施例中,所述阈值调整值确定模块,还用于根据所述目标设备中的各个所述对象在第n周期的队列长度之和,以及所述共享缓存容量确定剩余缓存占比,其中,所述剩余缓存占比与所述队列长度之和负相关;根据所述剩余缓存占比和所述对象在第n周期的队列长度,确定所述对象的阈值调整速率。
在其中一个实施例中,所述阈值调整值确定模块,还用于获取预设的空闲缓存容量;根据所述共享缓存容量和所述空闲缓存容量确定目标缓存容量;根据所述目标设备中的各个所述对象在第n周期的队列长度之和,以及所述目标缓存容量确定剩余缓存占比。
在其中一个实施例中,所述装置还包括收敛模块,所述收敛模块用于在各个所述对象在第n周期的队列长度之和与所述目标缓存容量相等的情况下,将各个所述对象在第n周期的队列长度之和加1后的结果作为各个所述对象在第n周期的队列长度之和。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各方法实施例中的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各方法实施例中的步骤。
第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
上述共享缓存的阈值调节方法、装置和计算机设备、计算机可读存储介质和计算机程序产品,获取目标设备的共享缓存容量;分别获取所述目标设备中的各个对象在第n周期的动态阈值和队列长度,其中,n为大于或者等于0的整数;根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,分别确定各所述对象的阈值调整值;针对任一所述对象,根据所述对象的所述阈值调整值,以及所述对象在第n周期的动态阈值,确定所述对象在第n+1周期的动态阈值。相比于传统技术中每个端口阈值都相等的动态阈值分配策略,本申请提供的共享缓存的阈值调节方法、装置和计算机设备、计算机可读存储介质和计算机程序产品,引入了目标设备中每个对象的队列长度,也即每个对象实际占用共享缓存大小,使得针对任一对象,可以根据对象的队列长度,来实时调节前一周期的动态阈值,得到下一周期的动态阈值,合理地对目标设备中各个对象的动态阈值进行分配,最大化共享缓存的资源利用率,保持资源分配的公平性。
附图说明
图1为传统动态阈值策略中空闲缓存与过载队列的相关示意图;
图2为一个实施例中共享缓存的阈值调节方法的流程示意图;
图3为一个实施例中步骤206的流程示意图;
图4为一个实施例中步骤302的流程示意图;
图5为一个实施例中步骤402的流程示意图;
图6为一个实施例中交换机端口到达流量的示意图;
图7为传统的动态阈值策略下各端口队列长度随时间演化的示意图;
图8为在共享缓存的阈值调节方法下各端口队列长度随时间演化的示意图;
图9为一个实施例中共享缓存的阈值调节装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
共享缓存是计算机与通信设备中一种常用的资源统计复用方式,如交换芯片中片上缓存在各端口中的共享,计算机内存在各个会话连接中的共享分配。一般多采用基于动态阈值的分配策略。以交换机为例,目前主流商用交换设备多采用共享缓存的交换结构。分组到达交换机后由交换矩阵发往共享缓存。缓存分配策略决定分组是被送往目的输出端口排队,还是因缓存容量不够而丢弃。共享缓存是在所有输出队列之间共享集中式缓存。通常一个数据分组的转发需要进行包括写入和读取的两次内存访问,且所有交换机端口可以同时访问共享缓存。业务会话连接共享计算机内存也采用相似的机制。缓存容量总是有限的,例如交换芯片因受面积等因素的制约,片上共享缓存容量有限。如何在交换机各个端口中有效共享使用片上缓存资源成了提升交换机性能的关键技术。
动态阈值策略是一种经典的共享缓存分配策略。采用非抢占式分配方式,每个端口允许占用共享缓存的量由确定的阈值控制,是端口队列长度的上限。经典的阈值动态调整规则如公式(一),动态阈值大小与当前空闲的缓冲空间成比例。
其中,T(t)是t时刻阈值,B是共享缓存容量大小,Qi(t)是第i个端口的队列t时刻的队列长度,N为端口的总数。当队列长度达到或超过该阈值后,就不允许数据分组再进入相应队列。动态阈值策略因比早期的静态分配策略有良好的适应性,且实现简单,被目前主流交换芯片制造商(如博通、思科和华为等)在不同型号的交换芯片中广泛使用。
动态阈值策略虽因其良好的动态适应能力和简洁实现方式得到了广泛使用,但其阈值调整规则(公式(一))具有固有缺陷:空闲缓存大小与过载队列数呈负相关,如1图所示,当分别有1个或2个过载队列时,最终空闲缓存分别是B/2或B/3。即便这些过载端口的到达业务持续增长,但动态阈值却不再随之增长,也就意味着相应的过载队列需要丢弃到达的数据分组,但此时仍有部分共享缓存却未被有效利用。以数据中心中的交换机片上共享缓存为例,在多对一的流量模式下,突发业务被本有空闲缓存的交换机丢弃,重传丢弃分组的过程拖延了流或流束的传输完成时间,进而影响了整个分布式系统的响应性。
基于此,本申请实施例提供了一种共享缓存的阈值调节方法,采用种群演化模型指导动态阈值的自适应调整,以解决上述问题,最大化共享缓存资源利用率,同时在竞争用户间保持良好的资源分配的公平性。
在一个实施例中,如图2所示,提供了一种共享缓存的阈值调节方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤202,获取目标设备的共享缓存容量。
其中,目标设备为数据包进行共享缓存的设备。例如在交换机片上共享缓存的场景下,目标设备为交换机;在操作系统中TCP(传输控制协议,Transmission ControlProtocol)连接接收缓存的分配和数据中心池化内存资源的分配等其他场景下,目标设备可能为虚拟内存等其他设备。共享缓存容量即为总缓存的大小,为目标设备的固有属性,不同的目标设备具有不同的共享缓存容量。
步骤204,分别获取目标设备中的各个对象在第n周期的动态阈值和队列长度,其中,n为大于或者等于0的整数。
本申请是实施例中,对象用于在目标设备中进行数据输入和输出,对象可以同时访问共享缓存。例如,在交换机片上共享缓存的场景下,对象可以为交换机的端口;在TCP连接接收缓存的场景下,对象可以为用户。对象的动态阈值为该对象在共享缓存中所能实际占用的缓存的最大值,也即该对象的队列长度的上限。对象的队列长度为该对象所能接收或容纳的数据分组(数据包)的个数。周期可以表征目标设备中每个对象的动态阈值更改的频率,一个周期的时长可以根据目标设备或实际需求决定。
步骤206,根据目标设备中的各个对象在第n周期的队列长度、共享缓存容量,分别确定各对象的阈值调整值。
本申请实施例中,可以将每个对象在第n周期的队列长度直接相加,得到各个对象在第n周期的队列长度之和。各个对象在第n周期的队列长度之和,即为在第n周期所有对象总共已使用的缓存容量。对象的阈值调整值为对象在相邻两个周期的动态阈值的差值。针对任一对象,对共享缓存中资源的需求在各个时刻是不同的,故而可以动态的对其对应的动态阈值进行调整。具体来说可以根据全部对象总共已使用的缓存容量及共享缓冲容量,确定剩余可占用容量,进而基于对象当前的队列长度及剩余可占用容量,确定该对象阈值的可调整空间,也即得到阈值调整值,根据该值对动态阈值进行调整。也即,可以基于各个对象在第n周期的队列长度之和、该对象在第n周期的队列长度,以及目标设备的共享缓存容量,来确定该对象在相邻两个周期之间的阈值调整值。
步骤208,针对任一对象,根据对象的阈值调整值,以及对象在第n周期的动态阈值,确定对象在第n+1周期的动态阈值。
其中,每个周期可以包括起始时间和终止时间,第n+1周期的的起始时间即为第n周期的终止时间。对象的阈值调整值为对象在相邻两个周期的动态阈值的差值,第n周期和第n+1周期为相邻的两个周期。针对任一对象,在获取对象的阈值调整值后,可以将对象在第n周期的动态阈值与阈值调整值相加,得到该对象在第n+1周期的动态阈值。
本申请实施例提供的共享缓存的阈值调节方法,获取目标设备的共享缓存容量;分别获取目标设备中的各个对象在第n周期的动态阈值和队列长度,其中,n为大于或者等于0的整数;根据目标设备中的各个对象在第n周期的队列长度、共享缓存容量,分别确定对象的阈值调整值;针对任一对象,根据对象的阈值调整值,以及对象在第n周期的动态阈值,确定对象在第n+1周期的动态阈值。相比于传统技术中每个端口阈值都相等的动态阈值分配策略,本申请提供的共享缓存的阈值调节方法,引入了目标设备中每个对象的队列长度,也即每个对象实际占用共享缓存大小,使得针对任一对象,可以根据对象的队列长度来调节前一周期的动态阈值,得到下一周期的动态阈值,合理地对目标设备中各个对象的动态阈值进行分配,最大化共享缓存的资源利用率,保持资源分配的公平性。
在一个实施例中,针对任一对象,对象在第n时刻的动态阈值根据共享缓存容量和对象总数确定,其中,动态阈值与对象总数负相关。
其中,对象总数即为目标设备中对象的个数,以交换机共享缓存分配为例,对象总数即为交换机端口的数量。针对任一对象,在n为0的情况下,可以将共享缓存容量与对象总数的比值作为对象在第n时刻的动态阈值。也即,在n为0的情况下,每个对象在第n时刻的动态阈值相等。
本公开实施例,设定n为0时对象的动态阈值,以使共享缓存在对每个对象进行动态阈值调节时,每个对象具有相同的动态阈值,保持资源分配的公平性。
在一个实施例中,如图3所示,步骤206中,根据目标设备中的各个对象在第n周期的队列长度、共享缓存容量,分别确定各对象的阈值调整值,可以包括:
步骤302,针对任一对象,根据目标设备中的各个对象在第n周期的队列长度、共享缓存容量,确定对象的阈值调整速率。
其中,对象的阈值调整速率可以用来表征对象在当前周期到下一周期的时间段中,动态阈值变化的速度。对象的阈值调整速率可以是正值或负值或0。在获取各个对象在第n周期的队列长度之和后,针对任一对象,可以基于各个对象在第n周期的队列长度之和、该对象在第n周期的队列长度,以及目标设备的共享缓存容量,来确定该对象在相邻两个周期之间的阈值调整速率。
步骤304,基于各对象的阈值调整速率及周期间隔时长,确定各对象的阈值调整值。
其中,周期间隔时长为第n周期到第n+1周期的时间,由于第n+1周期的起始时间即为第n周期的终止时间,周期间隔时长即为每个周期的时间长度。本申请实施例对周期间隔时长不做具体限定,周期间隔时长可以根据实际应用过程中,目标设备中每个对象的动态阈值更改的频率决定。在获取阈值调整速率及周期间隔时长后,可以将阈值调整速率与周期间隔时长相乘,得到的乘积即为对象的阈值调整值。
本公开实施例,基于每个对象各自的队列长度来确定每个对象不同的阈值调整速率,可以自适应每个对象的缓存需求,动态调节各自的动态阈值,将共享缓存资源充分且公平地分配给有需求的对象。
在一个实施例中,如图4所示,步骤302中,根据目标设备中的各个对象在第n周期的队列长度、共享缓存容量,确定对象的阈值调整速率,可以包括:
步骤402,根据目标设备中的各个对象在第n周期的队列长度之和,以及共享缓存容量确定剩余缓存占比,其中,剩余缓存占比与队列长度之和负相关。
其中,剩余缓存占比即为目标设备的共享缓存中剩余缓存容量与总的可用缓存容量的比值。剩余缓存占比可以用1减去已使用缓存占比得到。已使用缓存占比即为各个对象在第n周期的队列长度之和与总的可用缓存容量的比值。总的可用缓存容量可以由共享缓存容量确定得到。
步骤404,根据剩余缓存占比和对象在第n周期的队列长度,确定对象的阈值调整速率。
其中,可以将剩余缓存占比与对象在第n周期的队列长度相乘后,再与一个常量参数ri相乘,得到的乘积即为对象的阈值调整速率。常量参数ri可以用来表征对象在第n周期的队列长度的权重系数。本申请实施例不对常量参数ri的大小做具体限定,可以在实际应用中根据具体需要确定。
本公开实施例,基于每个对象各自的队列长度和剩余缓存占比来确定每个对象不同的阈值调整速率,使得对象的队列长度越大,也即对象实际所占的缓存大小约大,阈值调整越快,进而可以自适应每个对象的缓存需求,动态调节各自的动态阈值,将共享缓存资源充分且公平地分配给有需求的对象。
在一个实施例中,如图5所示,步骤402中,根据目标设备中的各个对象在第n周期的队列长度之和,以及共享缓存容量确定剩余缓存占比,可以包括:
步骤502,获取预设的空闲缓存容量。
其中,空闲缓存容量可以在实际应用中根据具体需求预设限定。以交换机为例,空闲缓存容量的作用是在任何时候都保留一定量的空闲缓存,以接收空闲或轻载端口上突然到来的数据分组,防止过载端口独占缓存,轻载端口无法接收新的数据分组。例如:若交换机在第n周期只使用4个端口,4个端口都为过载端口,也即队列长度已经达到调节后的动态阈值,在第n+1周期时,第5个端口有新的数据分组到达,第5个端口将会使用空闲缓存容量对数据分组进行缓存,以使5个端口重新根据各自的队列长度进行动态阈值的分配调节。
步骤504,根据共享缓存容量和空闲缓存容量确定目标缓存容量。
其中,目标缓存容量即为共享缓存中总的可用缓存容量,可以由共享缓存容量与空闲缓存容量的差值确定得到。
步骤506,根据目标设备中的各个对象在第n周期的队列长度之和,以及目标缓存容量确定剩余缓存占比。
其中,剩余缓存占比即为目标设备的共享缓存中剩余缓存容量与目标缓存容量的比值。剩余缓存占比可以用1减去已使用缓存占比得到。已使用缓存占比即为各个对象在第n周期的队列长度之和与目标缓存容量的比值。
以交换机共享缓存分配为例,对象的阈值调整速率可以基于Lotka-Volterra(洛特卡-沃尔泰拉)模型构造的微分方程得到。需要说明的是,微分方程满足下列公式(二)。
其中,dTi(t)/dt表示阈值调整速率,Ti(t)表示t时刻第i(i=1,2,…N)个端口的动态阈值,B为交换芯片的共享缓存容量,N为交换机端口数,Qi(t)是第i个端口t时刻的队列长度,K为空闲缓存容量,ri为常量参数。
本申请实施例还可以基于马尔萨斯(Malthus)和罗吉斯(Logistic)等其他种群演化模型来得到的相应阈值调整速率,本申请实施例不对上述两种模型得到的阈值调整速率公式做进一步限定,只需满足每个对象的动态阈值都根据每个对象各自的队列长度Qi(t)调节即可。
将上述公式(二)转化为等价离散差分方程,即可以得到对象的阈值调整值。等价离散差分方程满足下列公式(三)。
Ti(n+1)=Ti(n)+riQi(n)Ts(1-sumQ/(B-K)) 公式(三)
其中,sumQ为各个对象在第n周期的队列长度之和,Ts为离散化采样周期,Ti(n)和Qi(n)分别为第i个端口在第n步采样时刻(第n周期)的动态阈值和队列长度。Ts离散化采样周期即为周期间隔时长。Ti(n+1)为第i个端口在第n+1周期的动态阈值。
公式(三)和公式(四)一起构成了基于种群演化模型的动态自适应阈值调节规则,称为ADT(Adaptive Dynamic Threshold)策略。
本公开实施例,基于空闲缓存容量以及各个对象在第n周期的队列长度之和,来确定剩余缓存占比,以使得本申请提供的共享缓存的阈值调节方法可以适用于目标设备中不同数量的对象的动态阈值自适应调节,将共享缓存资源充分且公平地分配给有所有需求的对象。
在一个实施例中,共享缓存的阈值调节方法还可以包括:在各个对象在第n周期的队列长度之和与目标缓存容量相等的情况下,将各个对象在第n周期的队列长度之和加1后的结果作为各个对象在第n周期的队列长度之和。
示例性的,以公式(三)为例,为保证其中离散差分方程演化过程的收敛,需附加下面的约束条件:当其中sumQ=B-K时,令sumQ=B-K+1。
本公开实施例,在各个对象在第n周期的队列长度之和,也即各个对象实际已经完全占用共享缓存中目标缓存容量的情况下,对各个对象在第n周期的队列长度之和进行收敛约束,以使得阈值调整速率可以为负值,进而使得各个对象实际占用的缓存永远不会超出共享缓存容量,最大化共享缓存资源利用率,同时在竞争对象间保持良好的资源分配的公平性。
以共享缓存交换机为例,给定8端口交换机(N=8),共享缓存容量B=200pkts(总共可缓存的分组数)。交换机8个输出端口上流量到达如图6所示,有持久性业务,短促突发流量和ON/OFF业务流。参数按缺省配置设定,Ts=0.001,ri=1,K=0。图7和图8分别是传统的动态阈值(DT)策略和本申请提供的共享缓存的阈值调节方法(ADT)作用下各端口队列长度随时间演化的结果,其中剩余缓存曲线刻画出了剩余缓存的变化。可见相比与DT策略,本申请提供的共享缓存的阈值调节方法可以自适应端口缓存需求,动态调节各自的阈值,将共享缓存资源充分且公平地分配给有需求的端口。如表1所示,总量为交换机到达的数据分组总量,端口1-8分别对应丢弃分组的数量,可见,本申请提供的共享缓存的阈值调节方法没有闲置资源,提高了共享缓存资源的利用率,减小了端口丢弃分组的数量。
表1
本申请实施例提供的共享缓存的阈值调节方法,不同于传统的动态阈值DT策略用同一阈值T(t)为所有端口设定阈值Ti(n),而是引入了各用户实际占用共享缓存大小Qi(n),在公式(三)的驱动下各自调节缓存共享阈值Ti(n),公平有效地在有需求的端口(用户)间充分分享了缓存资源。需要说明的是,本申请实施例以交换机片上共享缓存分配为例进行了说明,但本申请提供的共享缓存的阈值调节方法同样适用其他计算机与通信设备中采用阈值分配共享缓存的情形,例如操作系统中TCP连接接收缓存的分配和数据中心池化内存资源的分配等。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的共享缓存的阈值调节装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个共享缓存的阈值调节装置实施例中的具体限定可以参见上文中对于共享缓存的阈值调节方法的限定,在此不再赘述。
在一个实施例中,参见图9,提供了一种共享缓存的阈值调节装置900。共享缓存的阈值调节装置900包括:
缓存容量获取模块902,用于获取目标设备的共享缓存容量;
动态阈值获取模块904,用于分别获取目标设备中的各个对象在第n周期的动态阈值和队列长度,其中,n为大于或者等于0的整数;
阈值调整值确定模块906,用于根据目标设备中的各个对象在第n周期的队列长度、共享缓存容量,分别确定各对象的阈值调整值;
阈值分配模块908,用于针对任一对象,根据对象的阈值调整值,以及对象在第n周期的动态阈值,确定对象在第n+1周期的动态阈值。
本申请实施例提供的共享缓存的阈值调节装置,获取目标设备的共享缓存容量;分别获取目标设备中的各个对象在第n周期的动态阈值和队列长度,其中,n为大于或者等于0的整数;根据目标设备中的各个对象在第n周期的队列长度、共享缓存容量,分别确定对象的阈值调整值;针对任一对象,根据对象的阈值调整值,以及对象在第n周期的动态阈值,确定对象在第n+1周期的动态阈值。相比于传统技术中每个端口阈值都相等的动态阈值分配策略,本申请提供的共享缓存的阈值调节装置,引入了目标设备中每个对象的队列长度,也即每个对象实际占用共享缓存大小,使得针对任一对象,可以根据对象的队列长度来调节前一周期的动态阈值,得到下一周期的动态阈值,合理地对目标设备中各个对象的动态阈值进行分配,最大化共享缓存的资源利用率,保持资源分配的公平性。
在一个实施例中,针对任一对象,在n为0的情况下,对象在第n时刻的动态阈值根据共享缓存容量和对象总数确定,其中,动态阈值与对象总数负相关。
在一个实施例中,阈值调整值确定模块906还用于针对任一对象,根据目标设备中的各个对象在第n周期的队列长度、共享缓存容量,确定对象的阈值调整速率;基于各对象的阈值调整速率及周期间隔时长,确定各对象的阈值调整值。
在一个实施例中,阈值调整值确定模块906还用于根据目标设备中的各个对象在第n周期的队列长度之和,以及共享缓存容量确定剩余缓存占比,其中,剩余缓存占比与队列长度之和负相关;根据剩余缓存占比和对象在第n周期的队列长度,确定对象的阈值调整速率。
在一个实施例中,阈值调整值确定模块906还用于获取预设的空闲缓存容量;根据共享缓存容量和空闲缓存容量确定目标缓存容量;根据目标设备中的各个对象在第n周期的队列长度之和,以及目标缓存容量确定剩余缓存占比。
在一个实施例中,共享缓存的阈值调节装置900还包括收敛模块。收敛模块用于在各个对象在第n周期的队列长度之和与目标缓存容量相等的情况下,将各个对象在第n周期的队列长度之和加1后的结果作为各个对象在第n周期的队列长度之和。
上述共享缓存的阈值调节装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种共享缓存的阈值调节方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种共享缓存的阈值调节方法,其特征在于,所述方法包括:
获取目标设备的共享缓存容量;
分别获取所述目标设备中的各个对象在第n周期的动态阈值和队列长度,其中,n为大于或者等于0的整数;
根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,分别确定各所述对象的阈值调整值;
针对任一所述对象,根据所述对象的所述阈值调整值,以及所述对象在第n周期的动态阈值,确定所述对象在第n+1周期的动态阈值。
2.根据权利要求1所述的方法,其特征在于,针对任一所述对象,在n为0的情况下,所述对象在第n时刻的动态阈值根据所述共享缓存容量和对象总数确定,其中,所述动态阈值与所述对象总数负相关。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,分别确定各所述对象的阈值调整值,包括:
针对任一所述对象,根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,确定所述对象的阈值调整速率;
基于各所述对象的所述阈值调整速率及周期间隔时长,确定各所述对象的阈值调整值。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,确定所述对象的阈值调整速率,包括:
根据所述目标设备中的各个所述对象在第n周期的队列长度之和,以及所述共享缓存容量确定剩余缓存占比,其中,所述剩余缓存占比与所述队列长度之和负相关;
根据所述剩余缓存占比和所述对象在第n周期的队列长度,确定所述对象的阈值调整速率。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标设备中的各个所述对象在第n周期的队列长度之和,以及所述共享缓存容量确定剩余缓存占比,包括:
获取预设的空闲缓存容量;
根据所述共享缓存容量和所述空闲缓存容量确定目标缓存容量;
根据所述目标设备中的各个所述对象在第n周期的队列长度之和,以及所述目标缓存容量确定剩余缓存占比。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在各个所述对象在第n周期的队列长度之和与所述目标缓存容量相等的情况下,将各个所述对象在第n周期的队列长度之和加1后的结果作为各个所述对象在第n周期的队列长度之和。
7.一种共享缓存的阈值调节装置,其特征在于,所述装置包括:
缓存容量获取模块,用于获取目标设备的共享缓存容量;
动态阈值获取模块,用于分别获取所述目标设备中的各个对象在第n周期的动态阈值和队列长度,其中,n为大于或者等于0的整数;
阈值调整值确定模块,用于根据所述目标设备中的各个所述对象在第n周期的队列长度、所述共享缓存容量,分别确定各所述对象的阈值调整值;
阈值分配模块,用于针对任一所述对象,根据所述对象的所述阈值调整值,以及所述对象在第n周期的动态阈值,确定所述对象在第n+1周期的动态阈值。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211213294.7A CN115941634A (zh) | 2022-09-30 | 2022-09-30 | 共享缓存的阈值调节方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211213294.7A CN115941634A (zh) | 2022-09-30 | 2022-09-30 | 共享缓存的阈值调节方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115941634A true CN115941634A (zh) | 2023-04-07 |
Family
ID=86549542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211213294.7A Pending CN115941634A (zh) | 2022-09-30 | 2022-09-30 | 共享缓存的阈值调节方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115941634A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117201403A (zh) * | 2023-09-15 | 2023-12-08 | 南京华芯科晟技术有限公司 | 缓存控制方法、装置和设备 |
-
2022
- 2022-09-30 CN CN202211213294.7A patent/CN115941634A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117201403A (zh) * | 2023-09-15 | 2023-12-08 | 南京华芯科晟技术有限公司 | 缓存控制方法、装置和设备 |
CN117201403B (zh) * | 2023-09-15 | 2024-03-22 | 南京华芯科晟技术有限公司 | 缓存控制方法、装置和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8077618B2 (en) | Using burst tolerance values in time-based schedules | |
JPH1049390A (ja) | リソース共用のためのシステムおよび方法 | |
CN116018790A (zh) | 基于接收方的精密拥塞控制 | |
US8320247B2 (en) | Dynamic queue management | |
US7843940B2 (en) | Filling token buckets of schedule entries | |
CN111400206B (zh) | 基于动态虚拟门限的缓存管理方法 | |
JP7487316B2 (ja) | サービスレベル構成方法および装置 | |
CN115941634A (zh) | 共享缓存的阈值调节方法、装置和计算机设备 | |
CN113141321A (zh) | 一种基于边缘计算的数据传输方法及电子设备 | |
Abdallah et al. | Reducing the contention experienced by real-time core-to-i/o flows over a tilera-like network on chip | |
US7565496B2 (en) | Sharing memory among multiple information channels | |
CN113783785A (zh) | Ecn水线值的配置方法、装置及网络设备 | |
US8660001B2 (en) | Method and apparatus for providing per-subscriber-aware-flow QoS | |
US20230117851A1 (en) | Method and Apparatus for Queue Scheduling | |
US10594631B1 (en) | Methods and apparatus for memory resource management in a network device | |
US7350208B1 (en) | Method and apparatus for scheduling using a resource variable decreased by amounts corresponding to the efficiency of the resource | |
US7599381B2 (en) | Scheduling eligible entries using an approximated finish delay identified for an entry based on an associated speed group | |
JP2001285363A (ja) | 一般化プロセッサシェアリング(gps)スケジューラ | |
CN115297067A (zh) | 一种共享缓存管理方法及装置 | |
CN1389799A (zh) | 多优先级最佳动态域值缓存管理算法 | |
JP2003511976A (ja) | スループット・ブロッキング最適化のためのリンク容量共有化 | |
CN114489463A (zh) | 动态调整存储卷qos的方法、装置及计算设备 | |
Zhou et al. | Flow-aware explicit congestion notification for datacenter networks | |
John et al. | Managing and improving upon bandwidth challenges in computer network | |
Chen et al. | A Fair Queue Scheduling Algorithm Based on Pre-allocation of Quantum Keys |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |