CN115543601A - 一种流量控制方法、装置及电子设备和存储介质 - Google Patents
一种流量控制方法、装置及电子设备和存储介质 Download PDFInfo
- Publication number
- CN115543601A CN115543601A CN202110745042.8A CN202110745042A CN115543601A CN 115543601 A CN115543601 A CN 115543601A CN 202110745042 A CN202110745042 A CN 202110745042A CN 115543601 A CN115543601 A CN 115543601A
- Authority
- CN
- China
- Prior art keywords
- flow control
- service
- node
- value
- cluster
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000011084 recovery Methods 0.000 claims abstract description 101
- 238000004064 recycling Methods 0.000 claims abstract description 9
- 230000002596 correlated effect Effects 0.000 claims abstract description 8
- 238000004422 calculation algorithm Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000875 corresponding effect Effects 0.000 claims description 5
- 230000001502 supplementing effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 208000016253 exhaustion Diseases 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
- G06F12/0276—Generational garbage collection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种流量控制方法、装置及一种电子设备和计算机可读存储介质,该方法包括:确定集群的剩余容量比例,并根据剩余容量比例调整集群的垃圾回收流控值、业务流控值和垃圾回收与业务的流控比例;其中,流控比例与剩余容量比例呈负相关;基于集群中节点的业务压力值将业务流控值分配至节点;其中,节点包括存储节点和计算节点,节点分配得到的业务配额与节点的业务压力呈正相关;基于集群中存储节点的业务压力值将垃圾回收流控值分配至存储节点;其中,存储节点分配得到的垃圾回收配额与存储节点的业务压力呈负相关。本申请提供的流量控制方法,实现了业务与垃圾回收的平衡,既不会影响业务性能又不会导致存储空间耗尽。
Description
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种流量控制方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
大数据时代的应用对存储性能的要求越来越高,而传统基于机械盘的存储系统难以满足这些应用对于高性能的需求。基于闪存的日志结构存储系统利用了闪存快速顺序访问的特性,能够大幅提升存储系统的性能,从而开始得到广泛应用。日志结构存储系统是一种将数据顺序追加写,并通过写时重定向建立地址映射关系的存储系统,由垃圾回收机制来回收未被地址映射指向的无效数据空间,以保证存储空间不会被垃圾耗尽。然而,由于业务和垃圾回收对系统资源存在直接的竞争关系,业务占用资源过多会导致垃圾回收效率不高,从而导致存储空间耗尽,甚至造成业务卡死;而垃圾回收占用资源过多会显著影响业务性能和服务质量。
因此,如何实现业务与垃圾回收的平衡,既不会影响业务性能又不会导致存储空间耗尽是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种流量控制方法、装置及一种电子设备和一种计算机可读存储介质,实现了业务与垃圾回收的平衡,既不会影响业务性能又不会导致存储空间耗尽。
为实现上述目的,本申请提供了一种流量控制方法,包括:
确定集群的剩余容量比例,并根据所述剩余容量比例调整所述集群的垃圾回收流控值、业务流控值和垃圾回收与业务的流控比例;其中,所述流控比例与所述剩余容量比例呈负相关;
基于所述集群中节点的业务压力值将所述业务流控值分配至所述节点;其中,所述节点包括存储节点和计算节点,所述节点分配得到的业务配额与所述节点的业务压力呈正相关;
基于所述集群中所述存储节点的业务压力值将所述垃圾回收流控值分配至所述存储节点;其中,所述存储节点分配得到的垃圾回收配额与所述存储节点的业务压力呈负相关。
其中,所述确定集群的剩余容量比例,包括:
每隔第一预设时间获取集群中节点的容量信息;其中,所述容量信息包括总容量、垃圾容量和剩余容量;
累计第二预设时间后,计算集群总容量和集群剩余容量;其中,所述第二预设时间为所述第一预设时间的整数倍;
根据所述集群总容量和所述集群剩余容量确定所述集群的剩余容量比例。
其中,所述根据所述剩余容量比例调整所述集群的垃圾回收流控值、业务流控值和垃圾回收与业务的流控比例,包括:
若所述剩余容量比例大于第一预设值且小于1,则将集群的垃圾回收流控值调整为0、业务流控值调整为无穷大、垃圾回收与业务的流控比例调整为0;
若所述剩余容量比例大于第二预设值且小于或等于所述第一预设值,则根据所述剩余容量比例所属的层级将垃圾回收与业务的流控比例调整为第一目标值;其中,所述剩余容量比例所属的层级与所述剩余容量比例呈负相关,所述第一目标值与所述剩余容量比例所属的层级呈负相关,不同层级对应的第一目标值均大于0且小于1;
若所述剩余容量比例大于第三预设值且小于或等于所述第二预设值,则将垃圾回收与业务的流控比例调整为第二目标值;其中,所述第二目标值大于1;
若所述剩余容量比例大于0且小于或等于第四预设值,则将集群的垃圾回收流控值调整为无穷大、业务流控值调整为固定值、垃圾回收与业务的流控比例调整为无穷大。
其中,还包括:
基于所述节点分配得到的业务配额采用令牌桶算法进行所述节点业务的流量控制;
基于所述存储节点分配得到的垃圾回收配额采用时间戳算法进行所述存储节点垃圾回收的流量控制。
其中,所述基于所述节点分配得到的业务配额采用令牌桶算法进行所述节点业务的流量控制,包括:
基于所述节点分配得到的业务配额补充令牌桶中的令牌数量;
判断当前业务任务的贡献值是否小于或等于所述令牌桶中的当前令牌数量;
若是,则下发所述当前业务任务,并更新所述当前令牌数量;
若否,则根据所述当前业务任务的贡献值、所述当前令牌数量和所述节点分配得到的业务配额确定所述当前业务任务的调度时间。
其中,所述基于所述存储节点分配得到的垃圾回收配额采用时间戳算法进行所述存储节点垃圾回收的流量控制,包括:
根据上一垃圾回收任务的贡献值、时间戳标志和所述存储节点分配得到的垃圾回收配额计算当前垃圾回收任务的时间戳标志;
判断所述当前垃圾回收任务的时间戳标志是否小于或等于当前调度时间;
若是,则下发所述当前垃圾回收任务;
若否,则当所述当前调度时间到达所述当前垃圾回收任务的时间戳标志时,下发所述当前垃圾回收任务。
其中,所述根据上一垃圾回收任务的贡献值、时间戳标志和所述存储节点分配得到的垃圾回收配额计算当前垃圾回收任务的时间戳标志,包括:
根据上一垃圾回收任务的贡献值和所述存储节点分配得到的垃圾回收配额计算所述上一垃圾回收任务的执行时间;
将所述上一垃圾回收任务的时间戳标志与所述执行时间的和设置为当前垃圾回收任务的时间戳标志。
为实现上述目的,本申请提供了一种流量控制装置,包括:
确定模块,用于确定集群的剩余容量比例,并根据所述剩余容量比例调整所述集群的垃圾回收流控值、业务流控值和垃圾回收与业务的流控比例;其中,所述流控比例与所述剩余容量比例呈负相关;
第一分配模块,用于基于所述集群中节点的业务压力值将所述业务流控值分配至所述节点;其中,所述节点包括存储节点和计算节点,所述节点分配得到的业务配额与所述节点的业务压力呈正相关;
第二分配模块,用于基于所述集群中所述存储节点的业务压力值将所述垃圾回收流控值分配至所述存储节点;其中,所述存储节点分配得到的垃圾回收配额与所述存储节点的业务压力呈负相关。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述流量控制方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述流量控制方法的步骤。
通过以上方案可知,本申请提供的一种流量控制方法,包括:确定集群的剩余容量比例,并根据所述剩余容量比例调整所述集群的垃圾回收流控值、业务流控值和垃圾回收与业务的流控比例;其中,所述流控比例与所述剩余容量比例呈负相关;基于所述集群中节点的业务压力值将所述业务流控值分配至所述节点;其中,所述节点包括存储节点和计算节点,所述节点分配得到的业务配额与所述节点的业务压力呈正相关;基于所述集群中所述存储节点的业务压力值将所述垃圾回收流控值分配至所述存储节点;其中,所述存储节点分配得到的垃圾回收配额与所述存储节点的业务压力呈负相关。
本申请提供的流量控制方法,首先根据集群的剩余容量比例自适应计算垃圾回收与业务的流控比例,流控比例与剩余容量比例呈负相关。当剩余容量比例较大时,无空间耗尽风险,可以不对业务进行控制,垃圾回收在满足触发条件的基础上单深度执行即可,尽量降低对业务的影响。而当集群剩余容量较小时,垃圾回收与业务的流控值比例逐渐增大,保证空间不会耗尽的同时,尽量降低对业务的影响。其次根据各节点的业务压力公平地将业务流控值分发至各节点、将垃圾回收流控值分配至存储节点,保证各节点业务的负载均衡。本申请还公开了一种流量控制装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种流量控制系统的架构图;
图2为根据一示例性实施例示出的一种流量控制方法的流程图;
图3为根据一示例性实施例示出的另一种流量控制方法的流程图;
图4为根据一示例性实施例示出的业务IO的令牌桶流控算法流程图;
图5为根据一示例性实施例示出的垃圾回收的时间戳流控算法流程图;
图6为根据一示例性实施例示出的一种流量控制装置的结构图;
图7为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为了便于理解本申请提供的流量控制方法,下面对其使用的系统进行介绍。参见图1,其为根据一示例性实施例示出的一种流量控制系统的架构图,如图1所示,包括存储服务端、存储客户端和全局管理器模块。
其中,存储服务端用于响应存储客户端的请求,负责数据的分布、读取、落盘等功能,包括Server0、Server1和Server3。
存储客户端中包含了业务和垃圾回收进程,其中,存储节点包括node0、node1和node2,计算节点包括node3、node4和node5。每个存储节点在业务IO和垃圾回收流程开始的入口适配流控功能,计算节点由于不执行垃圾回收,因此只需适配业务流控功能。VMi表示第i个节点上的业务进程,VM_FCi表示第i个节点上的业务流控进程,GCi表示第i个节点上的垃圾回收进程,GC_FCi表示第i个节点上的垃圾回收流控进程。在本申请中,针对业务和垃圾回收的属性自适应地应用不同的流控技术,考虑到业务需要猝发能力来保证猝发性能,业务流控采用令牌桶算法,而垃圾回收的猝发会导致业务性能短暂受到影响,猝发式流控算法并不适用于垃圾回收,而且为了流控的精准性,垃圾回收流控采用时间戳算法。
全局管理器模块负责从存储客户端定时收集各节点的容量、流量和状态等信息,累积一定时间后,根据不同的集群剩余容量比例,自适应计算不同的垃圾回收与业务流控值比例,并根据各节点的流量以及状态信息,公平地将调整配额分发至各节点。
本申请实施例公开了一种流量控制方法,实现了业务与垃圾回收的平衡,既不会影响业务性能又不会导致存储空间耗尽。
参见图2,根据一示例性实施例示出的一种流量控制方法的流程图,如图2所示,包括:
S101:确定集群的剩余容量比例,并根据所述剩余容量比例调整所述集群的垃圾回收流控值、业务流控值和垃圾回收与业务的流控比例;其中,所述流控比例与所述剩余容量比例呈负相关;
本实施例应用于基于闪存的日志结构存储集群。在本步骤中,首先确定集群的剩余容量比例。作为一种可行的实施方式,所述确定集群的剩余容量比例,包括:每隔第一预设时间获取集群中节点的容量信息;其中,所述容量信息包括总容量、垃圾容量和剩余容量;累计第二预设时间后,计算集群总容量和集群剩余容量;其中,所述第二预设时间为所述第一预设时间的整数倍;根据所述集群总容量和所述集群剩余容量确定所述集群的剩余容量比例。在具体实施中,每隔第一预设时间获取集群中节点的容量信息,包括总容量、垃圾容量和剩余容量,此处不对第一预设时间进行限定,例如1秒、5秒、10秒等,第一预设时间越小,则流控调整的准确性越高,但网络通信的压力越大,可以根据实际情况进行灵活配置。累计第二预设时间后,计算集群总容量和集群剩余容量。此处同样不对第二预设时间进行限定,例如20秒、30秒、60秒等,第二预设时间需要大于第一预设时间且为第一预设时间的整数倍,第二预设时间越短,流控调整的实时性越高,但计算压力越大。
其次,根据集群的剩余容量比例自适应计算垃圾回收与业务的流控比例,流控比例与剩余容量比例呈负相关。在垃圾回收速度能跟上的前提下,控制部分业务,腾出部分资源给垃圾回收使用,同时也控制垃圾回收的速度,避免抢占过多的资源,过度影响业务。
作为一种可行的实施方式,所述根据所述剩余容量比例调整所述集群的垃圾回收流控值、业务流控值和垃圾回收与业务的流控比例,包括:若所述剩余容量比例大于第一预设值且小于1,则将集群的垃圾回收流控值调整为0、业务流控值调整为无穷大、垃圾回收与业务的流控比例调整为0;若所述剩余容量比例大于第二预设值且小于或等于所述第一预设值,则根据所述剩余容量比例所属的层级将垃圾回收与业务的流控比例调整为第一目标值;其中,所述剩余容量比例所属的层级与所述剩余容量比例呈负相关,所述第一目标值与所述剩余容量比例所属的层级呈负相关,不同层级对应的第一目标值均大于0且小于1;若所述剩余容量比例大于第三预设值且小于或等于所述第二预设值,则将垃圾回收与业务的流控比例调整为第二目标值;其中,所述第二目标值大于1;若所述剩余容量比例大于0且小于或等于第四预设值,则将集群的垃圾回收流控值调整为无穷大、业务流控值调整为固定值、垃圾回收与业务的流控比例调整为无穷大。
在具体实施中,阈值A1、A2、A3和A4分别对应上述第一目标值、第二目标值、第三目标值和第四目标值,存在以下关系:0<A4<A3<A2<A1<1。当A1<剩余容量比例<1时,认为集群容量充足,完全无空间耗尽风险,A1取值可以为0.3、0.4、0.5等。此时可全速执行业务,垃圾回收在满足触发条件的情况下可以单深度执行,避免对业务造成较大影响,此处的触发条件与垃圾量相关,可以根据实际情况灵活配置,不进行具体限定,例如垃圾容量大于集群纵容量的30%时触发垃圾回收。此时计算出的垃圾回收与业务的流控比例为0,垃圾回收流控值为0,业务流控值为无穷大。当A2<剩余容量比例≤A1时,认为集群空间不太充足,但基本无空间耗尽风险,A2的取值可以为0.2、0.3、0.4等。此时虽然业务流控值可以仍然比垃圾回收流控值大,但会腾出部分资源给垃圾回收,具体可以根据剩余容量比例所属的层级调整垃圾回收与业务的流控比例,层级数量可以根据实际情况灵活设置。例如,设置四个层级,假设A2<B3<B2<B1≤A1成立,若B1<剩余容量比例≤A1,此时计算垃圾回收与业务的流控比例为C1,即垃圾回收流量只需要跑到C1倍的业务流控即可;若B2<剩余容量比例≤B1,此时计算垃圾回收与业务的流控比例为C2,即垃圾回收流量只需要跑到C2倍的业务流控即可;若B3<剩余容量比例≤B2,此时计算垃圾回收与业务的流控值比例为C3,即垃圾回收流量只需要跑到C3倍的业务流控即可;若A2<剩余容量比例≤B3,此时计算垃圾回收与业务的流控比例为C4,即垃圾回收流量只需要跑到C4倍的业务流控即可,C1、C2、C3、C4满足0<C1<C2<C3<C4<1。当A3<剩余容量比例≤A2时,认为集群空间不充足,存在空间耗尽风险,A3的取值可以为0.1、0.2、0.3等。此时需要控制垃圾回收的流量大于或等于业务流量,回收集群空间,即此时计算垃圾回收与业务的流控值比例为C5,C5满足C5>=1,C5的值越大,垃圾回收占据的资源越多,速度越快,但对业务的影响也越大。为了降低垃圾回收对业务的影响,C5的值会略大于1,比如1.1、1.2、1.3等。当0<剩余容量比例≤A4时,认为集群空间严重不足,随时可能空间耗尽,卡死业务,A4的取值可以为0.05、0.1、0.15等等。此时需要全速执行垃圾回收,业务控为最低配额值,此时计算垃圾回收与业务的流控值比例为无穷大,即垃圾回收的流控值为无穷大,业务的流控值为固定值Q,Q的取值可以为5MB/s、10MB/s、20MB/s等。
S102:基于所述集群中节点的业务压力值将所述业务流控值分配至所述节点;其中,所述节点包括存储节点和计算节点,所述节点分配得到的业务配额与所述节点的业务压力呈正相关;
S103:基于所述集群中所述存储节点的业务压力值将所述垃圾回收流控值分配至所述存储节点;其中,所述存储节点分配得到的垃圾回收配额与所述存储节点的业务压力呈负相关。
在具体实施中,将业务流控值分配至集群中的节点,包括存储节点和计算节点,将垃圾回收流控值分配至存储节点。对于存储节点,业务压力越小,分配的垃圾回收流控值配额越大,而对于所有节点,业务压力越大,分配的业务流控值越大,其中业务压力为业务读写并发度与IO平均大小之积。
需要说明的是,在业务流控值和垃圾回收流控值的分配过程中,还可以参考节点的流量和状态。对于资源已跑满的节点,在未满足计算得到的垃圾回收与业务的流控比例时,仍需将流控值分配至该节点;但在满足计算得到的垃圾回收与业务的流控比例后,不再占用流控值配额,流控值由其它未跑满资源的节点按业务压力公平分配。
本申请实施例提供的流量控制方法,首先根据集群的剩余容量比例自适应计算垃圾回收与业务的流控比例,流控比例与剩余容量比例呈负相关。当剩余容量比例较大时,无空间耗尽风险,可以不对业务进行控制,垃圾回收在满足触发条件的基础上单深度执行即可,尽量降低对业务的影响。而当集群剩余容量较小时,垃圾回收与业务的流控值比例逐渐增大,保证空间不会耗尽的同时,尽量降低对业务的影响。其次根据各节点的业务压力公平地将业务流控值分发至各节点、将垃圾回收流控值分配至存储节点,保证各节点业务的负载均衡。
本实施例介绍节点的流控策略,具体的:
参见图3,根据一示例性实施例示出的另一种流量控制方法的流程图,如图3所示,包括:
S201:基于所述节点分配得到的业务配额采用令牌桶算法进行所述节点业务的流量控制;
在本实施例中,对于有猝发需求的业务,适配令牌桶流控算法。作为一种可行的实施方式,本步骤包括:基于所述节点分配得到的业务配额补充令牌桶中的令牌数量;判断当前业务任务的贡献值是否小于或等于所述令牌桶中的当前令牌数量;若是,则下发所述当前业务任务,并更新所述当前令牌数量;若否,则根据所述当前业务任务的贡献值、所述当前令牌数量和所述节点分配得到的业务配额确定所述当前业务任务的调度时间。
在具体实施中,业务IO的令牌桶流控算法流程如图4所示。计算当前任务的贡献值,若流控目标是业务速度,则每个任务的贡献值为业务IO(Input Output,输入输出)大小;若流控目标是业务IOPS(Input/Output Operations Per Second,每秒进行读写操作的次数),则每个任务的贡献值为1。将当前业务任务添加到流控任务队列,并更新令牌桶中的令牌数。令牌桶中的令牌数按分配得到的业务配额补充令牌,但不能超过桶的最大容量。检查流控任务队列的任务个数是否为0,若是,则结束本轮调度;若否,则从任务队列头部取出当前业务任务,根据当前业务任务的贡献值与桶中当前令牌数量来调度任务是否下发,即判断当前业务任务的贡献值是否小于或等于当前令牌数量。若当前业务任务的贡献值小于或等于当前令牌数量,则更新当前令牌数,即减掉已下发任务消耗的令牌数,下发任务,将取出的任务从任务队列摘除,当前下发执行的任务数+1。任务完成后,当前下发执行的任务数-1,重新进入检查流控任务队列的任务个数是否为0的步骤,以便下发任务队列中所有满足条件的任务。若当前业务任务的贡献值大于当前令牌数量,则计算在当前令牌数量的基础上,按照分配得到的业务配额补充令牌到当前业务任务的贡献值所需要的时间,设置定时器任务调度。
S202:基于所述存储节点分配得到的垃圾回收配额采用时间戳算法进行所述存储节点垃圾回收的流量控制。
在本实施例中,对于无猝发需求的垃圾回收,适配时间戳流控算法。作为一种可行的实施方式,本步骤包括:根据上一垃圾回收任务的贡献值、时间戳标志和所述存储节点分配得到的垃圾回收配额计算当前垃圾回收任务的时间戳标志;判断所述当前垃圾回收任务的时间戳标志是否小于或等于当前调度时间;若是,则下发所述当前垃圾回收任务;若否,则当所述当前调度时间到达所述当前垃圾回收任务的时间戳标志时,下发所述当前垃圾回收任务。
在具体实施中,垃圾回收的时间戳流控算法流程如图5所示。当前垃圾回收任务到达时,首先根据存储节点分配得到的垃圾回收配额,计算当前垃圾回收任务可下发的时间戳标志,并将当前垃圾回收任务添加到流控任务队列。作为一种可行的实施方式,所述根据上一垃圾回收任务的贡献值、时间戳标志和所述存储节点分配得到的垃圾回收配额计算当前垃圾回收任务的时间戳标志,包括:根据上一垃圾回收任务的贡献值和所述存储节点分配得到的垃圾回收配额计算所述上一垃圾回收任务的执行时间;将所述上一垃圾回收任务的时间戳标志与所述执行时间的和设置为当前垃圾回收任务的时间戳标志。其中,当前垃圾回收任务的时间戳标志计算公式可以表示为:
其中,表示当前任务的时间戳标志,表示上一个任务的时间戳标志,wi-1表示上一个任务的贡献值,fc_value表示存储节点分配得到的垃圾回收配额,current_time表示当前调度时间。如果上一个任务的贡献值大,则计算出来的时间可能比current_time大,则任务需要挂起至计算出的时间戳下发,任务提前下发会导致流量超过流控值;如果上一个任务的贡献值小,则计算出来的时间可能比current_time小,则任务立刻下发流量也不会超过设定的流控值。
其次,检查流控任务队列的任务个数是否为0,若是,则结束本轮调度;若否,则从任务队列头部取出当前垃圾回收任务,根据时间戳标志与当前调度时间的大小关系来决定任务是否需要下发,即判断时间戳标志是否小于或等于当前调度时间。若时间戳标志小于或等于当前调度时间,则下发当前垃圾回收任务,将取出的当前垃圾回收任务从任务队列摘除,当前下发执行的任务数+1。任务完成后,当前下发执行的任务数-1,重新进入检查流控任务队列的任务个数是否为0的步骤,以便下发任务队列中所有满足条件的任务。若时间戳标志大于当前调度时间,则计算时间戳标志与当前调度时间的时间差,设置定时器任务调度。
由此可见,本申请针对业务和垃圾回收的属性自适应地应用不同的流控技术,考虑到业务需要猝发能力来保证猝发性能,业务流控采用令牌桶算法。而垃圾回收的猝发会导致业务性能短暂受到影响,猝发式流控算法并不适用于垃圾回收,而且为了流控的精准性,垃圾回收流控采用时间戳算法。
下面对本申请实施例提供的一种流量控制装置进行介绍,下文描述的一种流量控制装置与上文描述的一种流量控制方法可以相互参照。
参见图6,根据一示例性实施例示出的一种流量控制装置的结构图,如图6所示,包括:
确定模块601,用于确定集群的剩余容量比例,并根据所述剩余容量比例调整所述集群的垃圾回收流控值、业务流控值和垃圾回收与业务的流控比例;其中,所述流控比例与所述剩余容量比例呈负相关;
第一分配模块602,用于基于所述集群中节点的业务压力值将所述业务流控值分配至所述节点;其中,所述节点包括存储节点和计算节点,所述节点分配得到的业务配额与所述节点的业务压力呈正相关;
第二分配模块603,用于基于所述集群中所述存储节点的业务压力值将所述垃圾回收流控值分配至所述存储节点;其中,所述存储节点分配得到的垃圾回收配额与所述存储节点的业务压力呈负相关。
本申请实施例提供的流量控制装置,首先根据集群的剩余容量比例自适应计算垃圾回收与业务的流控比例,流控比例与剩余容量比例呈负相关。当剩余容量比例较大时,无空间耗尽风险,可以不对业务进行控制,垃圾回收在满足触发条件的基础上单深度执行即可,尽量降低对业务的影响。而当集群剩余容量较小时,垃圾回收与业务的流控值比例逐渐增大,保证空间不会耗尽的同时,尽量降低对业务的影响。其次根据各节点的业务压力公平地将业务流控值分发至各节点、将垃圾回收流控值分配至存储节点,保证各节点业务的负载均衡。
在上述实施例的基础上,作为一种优选实施方式,所述确定模块601包括:
获取单元,用于每隔第一预设时间获取集群中节点的容量信息;其中,所述容量信息包括总容量、垃圾容量和剩余容量;
第一计算单元,用于累计第二预设时间后,计算集群总容量和集群剩余容量;其中,所述第二预设时间为所述第一预设时间的整数倍;
第一确定单元,用于根据所述集群总容量和所述集群剩余容量确定所述集群的剩余容量比例。
在上述实施例的基础上,作为一种优选实施方式,所述确定模块601包括:
第一调整单元,用于若所述剩余容量比例大于第一预设值且小于1,则将集群的垃圾回收流控值调整为0、业务流控值调整为无穷大、垃圾回收与业务的流控比例调整为0;
第二调整单元,用于若所述剩余容量比例大于第二预设值且小于或等于所述第一预设值,则根据所述剩余容量比例所属的层级将垃圾回收与业务的流控比例调整为第一目标值;其中,所述剩余容量比例所属的层级与所述剩余容量比例呈负相关,所述第一目标值与所述剩余容量比例所属的层级呈负相关,不同层级对应的第一目标值均大于0且小于1;
第三调整单元,用于若所述剩余容量比例大于第三预设值且小于或等于所述第二预设值,则将垃圾回收与业务的流控比例调整为第二目标值;其中,所述第二目标值大于1;
第四调整单元,用于若所述剩余容量比例大于0且小于或等于第四预设值,则将集群的垃圾回收流控值调整为无穷大、业务流控值调整为固定值、垃圾回收与业务的流控比例调整为无穷大。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第一流控模块,用于基于所述节点分配得到的业务配额采用令牌桶算法进行所述节点业务的流量控制;
第二流控模块,用于基于所述存储节点分配得到的垃圾回收配额采用时间戳算法进行所述存储节点垃圾回收的流量控制。
在上述实施例的基础上,作为一种优选实施方式,所述第一流控模块包括:
补充单元,用于基于所述节点分配得到的业务配额补充令牌桶中的令牌数量;
第一判断单元,用于判断当前业务任务的贡献值是否小于或等于所述令牌桶中的当前令牌数量;若是,则启动第一下发单元的工作流程;若否,则启动第二确定单元的工作流程;
第一下发单元,用于下发所述当前业务任务,并更新所述当前令牌数量;
第二确定单元,用于根据所述当前业务任务的贡献值、所述当前令牌数量和所述节点分配得到的业务配额确定所述当前业务任务的调度时间。
在上述实施例的基础上,作为一种优选实施方式,所述第二流控模块包括:
第二计算单元,用于根据上一垃圾回收任务的贡献值、时间戳标志和所述存储节点分配得到的垃圾回收配额计算当前垃圾回收任务的时间戳标志;
第二判断单元,用于判断所述当前垃圾回收任务的时间戳标志是否小于或等于当前调度时间;若是,则启动第一下发单元的工作流程;若否,则启动第三下发单元的工作流程;
第二下发单元,用于下发所述当前垃圾回收任务;
第三下发单元,用于当所述当前调度时间到达所述当前垃圾回收任务的时间戳标志时,下发所述当前垃圾回收任务。
在上述实施例的基础上,作为一种优选实施方式,所述第二计算单元具体为根据上一垃圾回收任务的贡献值和所述存储节点分配得到的垃圾回收配额计算所述上一垃圾回收任务的执行时间,将所述上一垃圾回收任务的时间戳标志与所述执行时间的和设置为当前垃圾回收任务的时间戳标志的单元。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,图7为根据一示例性实施例示出的一种电子设备的结构图,如图7所示,电子设备包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的流量控制方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统4。
本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器2旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种流量控制方法,其特征在于,包括:
确定集群的剩余容量比例,并根据所述剩余容量比例调整所述集群的垃圾回收流控值、业务流控值和垃圾回收与业务的流控比例;其中,所述流控比例与所述剩余容量比例呈负相关;
基于所述集群中节点的业务压力值将所述业务流控值分配至所述节点;其中,所述节点包括存储节点和计算节点,所述节点分配得到的业务配额与所述节点的业务压力呈正相关;
基于所述集群中所述存储节点的业务压力值将所述垃圾回收流控值分配至所述存储节点;其中,所述存储节点分配得到的垃圾回收配额与所述存储节点的业务压力呈负相关。
2.根据权利要求1所述流量控制方法,其特征在于,所述确定集群的剩余容量比例,包括:
每隔第一预设时间获取集群中节点的容量信息;其中,所述容量信息包括总容量、垃圾容量和剩余容量;
累计第二预设时间后,计算集群总容量和集群剩余容量;其中,所述第二预设时间为所述第一预设时间的整数倍;
根据所述集群总容量和所述集群剩余容量确定所述集群的剩余容量比例。
3.根据权利要求1所述流量控制方法,其特征在于,所述根据所述剩余容量比例调整所述集群的垃圾回收流控值、业务流控值和垃圾回收与业务的流控比例,包括:
若所述剩余容量比例大于第一预设值且小于1,则将集群的垃圾回收流控值调整为0、业务流控值调整为无穷大、垃圾回收与业务的流控比例调整为0;
若所述剩余容量比例大于第二预设值且小于或等于所述第一预设值,则根据所述剩余容量比例所属的层级将垃圾回收与业务的流控比例调整为第一目标值;其中,所述剩余容量比例所属的层级与所述剩余容量比例呈负相关,所述第一目标值与所述剩余容量比例所属的层级呈负相关,不同层级对应的第一目标值均大于0且小于1;
若所述剩余容量比例大于第三预设值且小于或等于所述第二预设值,则将垃圾回收与业务的流控比例调整为第二目标值;其中,所述第二目标值大于1;
若所述剩余容量比例大于0且小于或等于第四预设值,则将集群的垃圾回收流控值调整为无穷大、业务流控值调整为固定值、垃圾回收与业务的流控比例调整为无穷大。
4.根据权利要求1所述流量控制方法,其特征在于,还包括:
基于所述节点分配得到的业务配额采用令牌桶算法进行所述节点业务的流量控制;
基于所述存储节点分配得到的垃圾回收配额采用时间戳算法进行所述存储节点垃圾回收的流量控制。
5.根据权利要求4所述流量控制方法,其特征在于,所述基于所述节点分配得到的业务配额采用令牌桶算法进行所述节点业务的流量控制,包括:
基于所述节点分配得到的业务配额补充令牌桶中的令牌数量;
判断当前业务任务的贡献值是否小于或等于所述令牌桶中的当前令牌数量;
若是,则下发所述当前业务任务,并更新所述当前令牌数量;
若否,则根据所述当前业务任务的贡献值、所述当前令牌数量和所述节点分配得到的业务配额确定所述当前业务任务的调度时间。
6.根据权利要求4所述流量控制方法,其特征在于,所述基于所述存储节点分配得到的垃圾回收配额采用时间戳算法进行所述存储节点垃圾回收的流量控制,包括:
根据上一垃圾回收任务的贡献值、时间戳标志和所述存储节点分配得到的垃圾回收配额计算当前垃圾回收任务的时间戳标志;
判断所述当前垃圾回收任务的时间戳标志是否小于或等于当前调度时间;
若是,则下发所述当前垃圾回收任务;
若否,则当所述当前调度时间到达所述当前垃圾回收任务的时间戳标志时,下发所述当前垃圾回收任务。
7.根据权利要求6所述流量控制方法,其特征在于,所述根据上一垃圾回收任务的贡献值、时间戳标志和所述存储节点分配得到的垃圾回收配额计算当前垃圾回收任务的时间戳标志,包括:
根据上一垃圾回收任务的贡献值和所述存储节点分配得到的垃圾回收配额计算所述上一垃圾回收任务的执行时间;
将所述上一垃圾回收任务的时间戳标志与所述执行时间的和设置为当前垃圾回收任务的时间戳标志。
8.一种流量控制装置,其特征在于,包括:
确定模块,用于确定集群的剩余容量比例,并根据所述剩余容量比例调整所述集群的垃圾回收流控值、业务流控值和垃圾回收与业务的流控比例;其中,所述流控比例与所述剩余容量比例呈负相关;
第一分配模块,用于基于所述集群中节点的业务压力值将所述业务流控值分配至所述节点;其中,所述节点包括存储节点和计算节点,所述节点分配得到的业务配额与所述节点的业务压力呈正相关;
第二分配模块,用于基于所述集群中所述存储节点的业务压力值将所述垃圾回收流控值分配至所述存储节点;其中,所述存储节点分配得到的垃圾回收配额与所述存储节点的业务压力呈负相关。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述流量控制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述流量控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110745042.8A CN115543601A (zh) | 2021-06-30 | 2021-06-30 | 一种流量控制方法、装置及电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110745042.8A CN115543601A (zh) | 2021-06-30 | 2021-06-30 | 一种流量控制方法、装置及电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115543601A true CN115543601A (zh) | 2022-12-30 |
Family
ID=84723175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110745042.8A Pending CN115543601A (zh) | 2021-06-30 | 2021-06-30 | 一种流量控制方法、装置及电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543601A (zh) |
-
2021
- 2021-06-30 CN CN202110745042.8A patent/CN115543601A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9600337B2 (en) | Congestion avoidance in network storage device using dynamic weights | |
US11048442B2 (en) | Scalable in-memory object storage system using hybrid memory devices | |
US10387202B2 (en) | Quality of service implementation in a networked storage system with hierarchical schedulers | |
US10534542B2 (en) | Dynamic core allocation for consistent performance in a non-preemptive scheduling environment | |
US10241909B2 (en) | Non-volatile memory device | |
US8959515B2 (en) | Task scheduling policy for limited memory systems | |
US10545791B2 (en) | Methods to apply IOPS and MBPS limits independently using cross charging and global cost synchronization | |
US9396027B2 (en) | Resource allocation for a plurality of resources for a dual activity system | |
US10394606B2 (en) | Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy | |
JP2008522281A (ja) | 記憶システムにおけるサービス品質を管理するためのシステム及び方法 | |
WO2019196588A1 (zh) | 一种控制存储设备读写的方法及装置 | |
US20050021562A1 (en) | Management server for assigning storage areas to server, storage apparatus system and program | |
CN111857992B (zh) | 一种Radosgw模块中线程资源分配方法和装置 | |
CN111597125B (zh) | 一种非易失内存文件系统索引节点的磨损均衡方法及系统 | |
US7278005B1 (en) | Cooperative memory management | |
US20190258521A1 (en) | Operation management system and operation management method | |
US11765099B2 (en) | Resource allocation using distributed segment processing credits | |
CN114143327A (zh) | 集群资源配额分配方法、装置及电子设备 | |
CN115543601A (zh) | 一种流量控制方法、装置及电子设备和存储介质 | |
JP3688286B2 (ja) | 情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム | |
CN113626162A (zh) | 基于动态资源共享的数据中心任务混合部署方法及系统 | |
JP6037825B2 (ja) | 計算機管理システム | |
CN114706532A (zh) | 一种磁盘配置方法、设备、服务器及电子设备、存储介质 | |
CN111831397B (zh) | 处理io请求的方法、装置、设备及存储介质 | |
CN116340201A (zh) | 线程存储位置分配方法、装置、芯片、设备及存储介质 |
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 |