CN113381941B - 一种任务调度方法、装置、电子设备和计算机存储介质 - Google Patents
一种任务调度方法、装置、电子设备和计算机存储介质 Download PDFInfo
- Publication number
- CN113381941B CN113381941B CN202010117087.6A CN202010117087A CN113381941B CN 113381941 B CN113381941 B CN 113381941B CN 202010117087 A CN202010117087 A CN 202010117087A CN 113381941 B CN113381941 B CN 113381941B
- Authority
- CN
- China
- Prior art keywords
- task
- executed
- threshold
- flow control
- limit
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000005540 biological transmission Effects 0.000 claims abstract description 40
- 238000012545 processing Methods 0.000 claims description 27
- 230000015654 memory Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提出了一种任务调度方法、装置、电子设备和计算机存储介质,该方法包括:获取为每个待执行任务分配的标志信息,所述标志信息包括第一门限和/或第二门限,所述第一门限用于标志以下信息:当前时间下发待执行任务时,数据传输的流量是否会高于流控上限;所述第二门限用于标志以下信息:当前时间不下发待执行任务时,所述数据传输的流量是否会低于流控下限;将所述标志信息与当前时间戳进行对比,得到对比结果;根据所述对比结果进行任务调度。如此,基于对比结果进行任务调度,可以在任务调度的同时,可以有效地将流量控制在流控上限和流控下限之间,即,可以根据对比结果自适应地控制流量,可以更准确地控制流量。
Description
技术领域
本申请涉及流量控制技术,尤其涉及一种任务调度方法、装置、电子设备和计算机存储介质。
背景技术
相关技术中,在数据传输场景,如果需要对数据传输的流量进行控制,通常使用漏桶算法或令牌桶算法进行流量控制,然而,漏桶算法和令牌桶算法均只能在一定程度上限制数据的传输速率,并不能精确地控制数据传输的流量;如何进一步提高数据传输时的流量控制精度,是亟待解决的技术问题。
发明内容
本发明实施例期望提供任务调度的技术方案。
本发明实施例提供了一种任务调度方法,所述方法包括:
获取为每个待执行任务分配的标志信息,所述标志信息包括第一门限和/或第二门限,所述第一门限用于标志以下信息:当前时间下发待执行任务时,数据传输的流量是否会高于流控上限;所述第二门限用于标志以下信息:当前时间不下发待执行任务时,所述数据传输的流量是否会低于流控下限;
将所述标志信息与当前时间戳进行对比,得到对比结果;
根据所述对比结果进行任务调度。
可选地,所述方法还包括:
在获取到待执行任务的时刻,确定第一时间戳,所述第一时间戳表示上一个任务以所述流控上限执行时的执行完成时间点;
确定第一门限为:所述获取到待执行任务的时刻和所述第一时间戳中的较大值。
可选地,所述方法还包括:
在获取到待执行任务的时刻,确定第二时间戳,所述第二时间戳表示上一个任务以所述流控下限执行时的执行完成时间点;
确定第二门限为:所述获取到待执行任务的时刻和所述第二时间戳中的较大值。
可选地,所述流控下限是初始流控下限和单个待执行任务执行时的最小流量中的较小值。
可选地,所述将所述标志信息与当前时间戳进行对比,得到对比结果,包括:
在所述流控下限为初始流控下限的情况下,每隔设定时间间隔,将所述标志信息与当前时间戳进行对比,得到对比结果。
可选地,所述根据所述对比结果进行任务调度,包括:
在所述对比结果满足第一条件的情况下,执行对应的待执行任务;
其中,所述第一条件包括以下至少之一:所述第二门限小于或等于当前时间戳、所述第一门限和所述第二门限满足第二条件;所述第二条件包括:所述第一门限小于或等于当前时间戳。
可选地,所述第二条件还包括:所述第一门限与所述第二门限之和小于或等于所述当前时间戳的2倍。
可选地,所述方法还包括:
在所述流控下限为单个待执行任务执行时的最小流量,且当前正在执行的任务的数量为0的情况下,执行对应的待执行任务。
本发明实施例还提出了一种任务调度装置,所述装置包括:获取模块和处理模块,其中,
获取模块,用于获取为每个待执行任务分配的标志信息,所述标志信息包括第一门限和/或第二门限,所述第一门限用于标志以下信息:当前时间下发待执行任务时,数据传输的流量是否会高于流控上限;所述第二门限用于标志以下信息:当前时间不下发待执行任务时,所述数据传输的流量是否会低于流控下限;
处理模块,用于将所述标志信息与当前时间戳进行对比,得到对比结果;根据所述对比结果进行任务调度。
可选地,所述获取模块,还用于在获取到待执行任务的时刻,确定第一时间戳,所述第一时间戳表示上一个任务以所述流控上限执行时的执行完成时间点;确定第一门限为:所述获取到待执行任务的时刻和所述第一时间戳中的较大值。
可选地,所述获取模块,还用于在获取到待执行任务的时刻,确定第二时间戳,所述第二时间戳表示上一个任务以所述流控下限执行时的执行完成时间点;确定第二门限为:所述获取到待执行任务的时刻和所述第二时间戳中的较大值。
可选地,所述流控下限是初始流控下限和单个待执行任务执行时的最小流量中的较小值。
可选地,所述处理模块,用于将所述标志信息与当前时间戳进行对比,得到对比结果,包括:
在所述流控下限为初始流控下限的情况下,每隔设定时间间隔,将所述标志信息与当前时间戳进行对比,得到对比结果。
可选地,所述处理模块,用于根据所述对比结果进行任务调度,包括:
在所述对比结果满足第一条件的情况下,执行对应的待执行任务;
其中,所述第一条件包括以下至少之一:所述第二门限小于或等于当前时间戳、所述第一门限和所述第二门限满足第二条件;所述第二条件包括:所述第一门限小于或等于当前时间戳。
可选地,所述第二条件还包括:所述第一门限与所述第二门限之和小于或等于所述当前时间戳的2倍。
可选地,所述处理模块,还用于在所述流控下限为单个待执行任务执行时的最小流量,且当前正在执行的任务的数量为0的情况下,执行对应的待执行任务。
本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一种任务调度方法。
本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种任务调度方法。
本发明实施例提出的任务调度方法、装置、电子设备和计算机存储介质中,获取为每个待执行任务分配的标志信息,所述标志信息包括第一门限和/或第二门限,所述第一门限用于标志以下信息:当前时间下发待执行任务时,数据传输的流量是否会高于流控上限;所述第二门限用于标志以下信息:当前时间不下发待执行任务时,所述数据传输的流量是否会低于流控下限;将所述标志信息与当前时间戳进行对比,得到对比结果;根据所述对比结果进行任务调度。可以看出,本发明实施例中,由于第一门限标志以下信息:当前时间下发待执行任务时,数据传输的流量是否会高于流控上限;第二门限标志以下信息:当前时间不下发待执行任务时,数据传输的流量是否会低于流控下限;并且,可以根据第一门限和/或第二门限与当前时间戳进行对比,那么,结合第一门限和第二门限的含义,基于对比结果进行任务调度,可以在任务调度的同时,可以有效地将流量控制在流控上限和流控下限之间,即,可以根据对比结果自适应地控制流量,可以更准确地控制流量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本发明的实施例,并与说明书一起用于说明本发明的技术方案。
图1为本发明实施例的任务调度方法的流程图;
图2为本发明实施例中第一门限、第二门限和当前时间戳的关系示意图;
图3为本发明实施例的任务调度方法的一个具体实现的流程示意图;
图4为本发明实施例的一个处理装置的组成结构示意图;
图5为本发明实施例的另一个处理装置的组成结构示意图;
图6为本发明实施例的电子设备的结构示意图。
具体实施方式
在相关技术中,在数据传输场景,可以对数据传输的流量进行控制;示例性地,数据传输场景可以是针对日志结构存储系统的数据传输场景,具体地说,在大数据时代,应用对存储系统的性能要求越来越高,而传统基于机械硬盘的存储系统难以满足高性能需求;基于闪存的日志结构存储系统由于具有更好的性能而开始得到广泛应用,如RocksDB、F2FS(Flash Friendly File System)、SolidFire等;日志结构存储系统支持写时重定向的存储系统,业务数据以追加写的形式写入系统,并通过地址映射指向有效数据,未被地址映射指向的无效数据由垃圾回收机制释放空间。日志结构存储系统需要依靠垃圾回收机制来释放空间,从而给业务提供可持续使用的存储空间。然而,由于业务和垃圾回收对系统资源存在竞争,垃圾回收占用资源过多/速度过快可能会显著影响业务性能,直接影响服务质量;而业务占用资源过多/速度过快可能导致存储空间耗尽,进而导致业务卡死。流量控制技术可以有效地调控业务和垃圾回收的速度,尽量降低垃圾回收对业务性能的影响,避免出现空间耗尽的情况。
相关技术中,通常使用漏桶算法或令牌桶算法进行流量控制,如此,可以控制网络中数据包的传输速率和时机,以提升性能和服务质量。漏桶算法的原理是:将请求装入“漏桶”中,以固定的速度下发请求,从而限制数据的平均传输速率,然而该算法不支持数据的猝发传输,性能受限;令牌桶算法的原理是:以一个恒定的速度向令牌桶里放入令牌,如果请求需要被处理,则需要先从令牌桶里获取一个令牌,当令牌桶里没有令牌可取时,则拒绝该请求,该算法虽然在一定程度上支持数据的猝发传输,但是缺乏对请求属性的分析,难以针对不同流量需求的请求准确控制流量。另外,漏桶算法和令牌桶算法也没有结合应用需求来设置流量控制精度,对于流量控制精度要求不高的应用而言,配置较高的流量控制精度,反而会导致较大的开销;这里,流量控制精度表示流量控制技术能限制的最小流量的能力;流量控制精度越高,即能限制的最小流量越小,相对应地,流量控制带来的资源消耗也就越大。
上述这些缺陷导致现有的流量控制技术均不适用于高性能的日志结构存储系统。
针对上述技术问题,提出本发明实施例的技术方案。以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。
需要说明的是,在本发明实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
例如,本发明实施例提供的任务调度方法包含了一系列的步骤,但是本发明实施例提供的任务调度方法不限于所记载的步骤,同样地,本发明实施例提供的任务调度装置包括了一系列模块,但是本发明实施例提供的任务调度装置不限于包括所明确记载的模块,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的模块。
本发明实施例可以基于终端和/或服务器实现,这里,终端可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统,等等。服务器可以是小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等;。
服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
本发明实施例提出了任务调度的技术方案,可以应用于针对日志结构存储系统的数据传输场景或其它数据传输场景。
图1为本发明实施例的任务调度方法的流程图,如图1所示,该流程可以包括:
步骤101:获取为每个待执行任务分配的标志信息,所述标志信息包括第一门限和/或第二门限,所述第一门限用于标志以下信息:当前时间下发待执行任务时,数据传输的流量是否会高于流控上限;所述第二门限用于标志以下信息:当前时间不下发待执行任务时,所述数据传输的流量是否会低于流控下限;
在实际应用中,可以预先获取至少一个待执行任务,并将获取的至少一个待执行任务添加的任务队列;获取每个待执行任务的时刻为对应的待执行任务到来的时刻,在任务队列中的待执行任务的数量大于1时,不同的待执行任务的到来的时刻可以不同。
本发明实施例中,第一门限也可以称为上限标志,第一门限可以表示为Ltag,第二门限也可以称为下限标志,第二门限可以表示为Rtag;第一门限Ltag和第二门限Rtag为时间戳信息;流控上限是指为待执行任务分配的最大流量,即,待执行任务执行时使用的流量的最大值为流控上限;流控下限是指为待执行任务分配的最小流量,即,待执行任务执行时使用的流量的最小值为流控下限,流量控制精度可以用流控下限表示,流控下限越小,则流量控制精度越高,流控下限越大,则流量控制精度越低;流控上限和流控下限均可以根据资源消耗情况动态更改,具体地说,流控上限和流控下限均可以根据用户需求动态设置,在某个时间错设置流控上限和流控下限后,该时间戳之后的待执行任务均按照该流控上限和流控下限来进行流量控制,直至设置新的流控上限和流控下限,在实际实施时,可以基于人机交互方式向电子设备输入流控上限和流控下限;在任务队列中的待执行任务的数量大于1时,不同的待执行任务对应的流控上限可以相同,也可以不同;不同待执行任务对应的流控下限可以相同,也可以不同。
本发明实施例中,待执行任务通过下发被执行,因而,如果在当前时间下发待执行任务,会增加数据传输的流量;如果在当前时间不下发待执行任务,数据传输的流量可以是正在执行的任务或其它业务所消耗的流量,特别地,数据传输的流量也可以是零。
步骤102:将标志信息与当前时间戳进行对比,得到对比结果。
对于本步骤的实现方式,示例性地,可以将第一门限或第二门限与当前时间戳进行对比,也可以将第一门限与第二门限之和与当前时间戳的2倍进行对比。
步骤103:根据对比结果进行任务调度。
本发明实施例中,任务调度分为两种情况:下发待执行任务和不下发待执行任务;这里,可以根据对比结果确定是否下发待执行任务。
在实际应用中,步骤101至步骤103可以基于电子设备的处理器实现,上述处理器可以为特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital SignalProcessing Device,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central ProcessingUnit,CPU)、控制器、微控制器、微处理器中的至少一种。
可以看出,本发明实施例中,由于第一门限标志以下信息:当前时间下发待执行任务时,数据传输的流量是否会高于流控上限;第二门限标志以下信息:当前时间不下发待执行任务时,数据传输的流量是否会低于流控下限;并且,可以根据第一门限和/或第二门限与当前时间戳进行对比,那么,结合第一门限和第二门限的含义,基于对比结果进行任务调度,可以在任务调度的同时,可以有效地将流量控制在流控上限和流控下限之间,即,可以根据对比结果自适应地控制流量,可以更准确地控制流量。
在一实施方式中,可以在获取到待执行任务的时刻,确定第一时间戳,第一时间戳表示上一个任务以流控上限执行时的执行完成时间点;
确定第一门限为:获取到待执行任务的时刻和第一时间戳中的较大值。
本公开实施例中,上一个任务可以是上一个下发的待执行任务,在实际应用中,可以根据上一个任务对应的第一门限、上一个任务以流控上限执行时的执行时长、以及获取到待执行任务的时刻,确定出该待执行任务对应的第一门限。
本公开实施例中,可以用贡献值表示每个任务对流控目标的贡献的大小,任务的贡献值表示任务处理时所需的流量大小;如果流控目标是业务处理速度,则每个任务的贡献值为业务数据的大小,这里,可以将务的每一个IO请求当作一个任务,每一个IO请求的大小(比如4KB/8KB)便是该任务的贡献值;如果流控目标是上述垃圾回收过程中释放空间的速度,则每个任务的贡献值为需要回收的垃圾量。
在实际的实施例中,可以根据上一个任务的贡献值以及流控上限,确定出上一个任务以流控上限执行时的执行时长,进而确定出第一时间戳。
在一个具体的示例中,待执行任务的第一门限可以通过以下过程计算得出:上一个任务以流控上限执行时的执行完成时间点,为上一个任务以流控上限完成其贡献值的时间点,上一个任务以流控上限执行时的执行完成时间点可用时间戳t1表示,获取到待执行任务的时刻可以用时间戳t表示;如果时间戳t1大于时间戳t,则待执行任务的第一门限Ltag的值为t1,表示如果在获取到待执行任务的时刻下发待执行任务,则流量会超过流控上限;如果时间戳t1不大于时间戳t,则待执行任务的第一门限Ltag的值为t,表示如果在获取到待执行任务的时刻下发待执行任务,则流量不会超过流控上限。
在i大于1的情况下,第i个待执行任务的第一门限可以通过公式(1)进行计算:
其中,表示第i个待执行任务的第一门限,表示第i-1个待执行任务的第一门限,Wi-1表示第i-1个待执行任务的贡献值,l表示流控上限,t表示获取到第i个待执行任务的时刻(即第i个待执行任务到来的时刻)。
在一实施方式中,可以在获取到待执行任务的时刻,确定第二时间戳,第二时间戳表示上一个任务以流控下限执行时的执行完成时间点;
确定第二门限为:所述获取到待执行任务的时刻和所述第二时间戳中的较大值。
本公开实施例中,可以根据上一个任务对应的第二门限、上一个任务以流控下限执行时的执行时长、以及获取到待执行任务的时刻,确定出该待执行任务对应的第二门限。
在实际的实施例中,可以根据上一个任务的贡献值以及流控下限,确定出上一个任务以流控上下限执行时的执行时长,进而确定出第二时间戳。
在一个具体的示例中,待执行任务的第二门限可以通过以下过程计算得出:上一个任务以流控下限执行时的执行完成时间点,为上一个任务以流控下限完成其贡献值的时间点,上一个任务以流控下限执行时的执行完成时间点可用时间戳t2表示,获取到待执行任务的时刻可以用时间戳t表示;如果时间戳t2大于时间戳t,则待执行任务的第二门限Rtag的值为t2,表示如果在获取到待执行任务的时刻下发待执行任务,则流量不会低于流控下限;如果时间戳t2小于或等于时间戳t,则待执行任务的第二门限Rtag的值为t,表示如果在获取到待执行任务的时刻不下发待执行任务,则流量将低于流控下限。
在i大于1的情况下,第i个待执行任务的第二门限可以通过公式(2)进行计算:
其中,表示第i个待执行任务的第二门限,表示第i-1个待执行任务的第二门限,Wi-1表示第i-1个待执行任务的贡献值,r表示流控下限,t表示获取到第i个待执行任务的时刻(即第i个待执行任务到来的时刻)。
在一实施方式中,流控下限是初始流控下限和单个待执行任务执行时的最小流量中的较小值。
这里,初始流控下限为预先设置的流控下限值,在实际应用中,可以根据流量控制精度的不同需求,设置不同的初始流控下限;例如,对于流量控制精度需求较低的应用,可以设置较高的初始流控下限(对应较高的流量控制精度);对于流量控制精度需求较高的应用,可以设置较低的初始流控下限(对应较低的流量控制精度);可以看出,本发明实施例可以根据应用的不同流控精度需求,设置不同的初始流控下限,从而实现流控下限随不同流控精度需求的自适应配置。
单个待执行任务执行时的最小流量可以预先获取,在实际实施时,可以利用电子设备的性能工具对各个待执行任务执行时的流量进行测试,得到单个待执行任务执行时的最小流量。
可以看出,本发明实施例可以根据初始流控下限的高低来适配不同的流量控制精度,若初始流控下限大于或等于单个待执行任务执行时的最小流量,则需要基于单个待执行任务执行时的最小流量来实现任务调度,这种情况可以满足较低的流量控制精度需求;若初始流控下限小于单个待执行任务执行时的最小流量,则需要基于初始流控下限来实现任务调度,这种情况可以满足较高的流量精度控制需求。
在一实施方式中,可以在流控下限为初始流控下限的情况下,每隔设定时间间隔,将上述标志信息与当前时间戳进行对比,得到对比结果。
在实际应用中,可以采用定时器触发任务调度,定时器可以在任意时间间隔(如100微秒)触发一次任务调度,在每次触发任务调度时,将标志信息与当前时间戳进行对比,得到对比结果;具体地,在每次触发任务调度时,根据第一门限和/或第二门限来判断是否应该下发待执行任务,只要待执行任务的第一门限大于当前时间戳,则不下发待执行任务;只要待执行任务的第二门限小于或等于当前时间戳,则下发待执行任务;对于第一门限小于或等于当前时间戳的待执行任务,可选择性地下发待执行任务。
可以理解地,在流控下限为初始流控下限的情况下,初始流控下限小于单个待执行任务执行时的最小流量,说明初始流控下限设置的比较小,而初始流控下限用于反映流量精度控制需求,因而,流控下限为初始流控下限的情况反映了流量精度控制需求较高的场景;即,对于流量精度控制需求较高的场景,可以采用定时器或其它方式,实现每隔设定时间间隔触发一次任务调度,流量控制基于任意设定的流控上限和/或流控下限确定,实现对流量的准确控制,进一步地,可以将流量控制在任意设定的流控上限与流控下限之间。
可选地,在流控下限为单个待执行任务执行时的最小流量,且当前正在执行的任务的数量为0的情况下,执行对应的待执行任务。
也就是说,在流控下限为单个待执行任务执行时的最小流量的情况下,如果没有正在执行的任务,可以直接下发并执行待执行任务;可见,对于流控精度需求较低(初始流控下限较高)的场景,本公开实施例可以根据前下发执行的任务数来触发任务调度,流量控制精度为单个待执行任务执行时的最小流量,相比于相关技术中只使用定时器进行流量控制的方案相比,可以有效地较低流量控制的开销。
图2为本发明实施例中第一门限、第二门限和当前时间戳的关系示意图,如图2所示,Ltag表示待执行任务的第一门限,Rtag表示待执行任务的第二门限,t’表示当前时间戳,参照图2以及上述对待执行任务的第一门限和第二门限的说明,可以看出,如果待执行任务的第二门限Rtag小于或等于当前时间戳t’,则需要在当前时刻下发待执行任务,因为不下发待执行任务会导致流量低于流控下限;如果待执行任务的第一门限Ltag大于当前时间戳t’,则不能在当前时刻下发待执行任务,因为下发待执行任务会导致流量高于流控上限;对于待执行任务的第一门限Ltag小于或等于当前时间戳t’的情况,无论是否下发待执行任务,流量不会大于流控上限,也不会小于流控下限,为了达到显著的限流的目的,可选地,在待执行任务的第一门限Ltag小于或等于当前时间戳t’的情况下,还可以进一步判断待执行任务的第一门限Ltag与第二门限Rtag之和是否小于或等于所述当前时间戳t’的2倍,在待执行任务的第一门限与第二门限之和小于或等于所述当前时间戳的2倍的情况下,才选择下发待执行任务;在待执行任务的第一门限Ltag小于或等于当前时间戳t’,且待执行任务的第一门限Ltag与第二门限Rtag之和是否小于或等于所述当前时间戳t’的2倍的情况下,在第一门限Ltag与第二门限Rtag中,当前时间戳t’更接近第二门限Rtag,当前时间戳t’越接近第二门限Rtag,则执行该下发的待执行任务时,流量会越接近流控下限。
根据前述记载的内容,对于根据所述对比结果进行任务调度,示例性地,可以在对比结果满足第一条件的情况下,执行对应的待执行任务;其中,第一条件包括以下至少之一:所述第二门限小于或等于当前时间戳、所述第一门限和所述第二门限满足第二条件;第二条件包括:所述第一门限小于或等于当前时间戳。
可选地,第二条件还包括:所述第一门限与所述第二门限之和小于或等于所述当前时间戳的2倍。
综上,本发明实施例针对不同的流量控制精度需求制定了不同的任务调度策略。在流量控制精度较高(初始流控下限较低)的场景,可以利用定时器定时触发任务调度,即使流控下限极低,合适精度的定时器也能保证流量控制在流控上限和流控下限之间。在流量控制精度较低(初始流控下限较稿)的场景,则可以利用当前下发执行的任务数来触发任务调度,即只要当前下发执行的任务数为0,则继续下发一个任务,保证待执行任务单个执行,该方案不会带来额外的开销,非常适用于流控下限较高的应用场景,如日志结构存储系统中的业务流量控制。
下面通过一个具体的应用实施例对本申请的方案进行说明。
图3为本发明实施例的任务调度方法的一个具体实现的流程示意图,如图3所示,该流程可以包括:
步骤31:获取流量F和初始流控下限R。
这里,流量F表示单个待执行任务执行时的最小流量。
步骤32:判断F是否小于或等于R,如果是,则执行步骤33,如果否,则执行步骤37。
可见,本发明实施例可以根据流量F和初始流控下限R来适配流量控制精度。
步骤33:计算标志信息,并将任务添加到任务队列。
这里,标志信息包括第一门限Ltag和第二门限Rtag。
步骤34:判断任务队列是否为空,如果否,则结束流程,如果是,则执行步骤35。
这里,在任务队列中存在任务的情况下,说明任务队列为空,否则,说明任务队列不为空。
步骤35:判断是否满足第一设定条件,如果否,则结束流程,如果是,则执行步骤36。
本发明实施例中,可以根据第一门限Ltag、第二门限Rtag、当前时间戳t’和当前下发执行的任务数N来触发任务调度,具体地,第一设定条件可以用式(3)表示:
Rtag≤t’||(Ltag≤t’&&Ltag+Rtag≤2t’)||N=0 (3)
其中,||表示或运算,&&表示与运算。
也就是说,如果Rtag≤t’||(Ltag≤t’&&Ltag+Rtag≤2t’)||N=0,则执行步骤36,否则,结束流程。
这里,当前下发执行的任务数N等于0时,可以直接下发待执行任务,即这样可以至少保证单个任务下发并执行。
步骤36:下发待执行任务,
在具体实现时,可以从任务队列中获取所有满足第一设定条件的待执行任务,并在任务队列中删除取出的任务,更新当前下发执行的任务数;当任意一个下发的待执行任务执行完成后,可以更新当前下发执行的任务数。
在每次更新当前下发执行的任务数后,可以跳转至步骤34,通过执行步骤34至步骤36重新进行任务调度,继续下发任务队列中所有满足第一设定条件的待执行任务。
步骤37:利用定时器配置触发任务调度流程。
具体地,利用定时器,每隔设定时间间隔,触发任务调度流程。
步骤38:计算标志信息,并将任务添加到任务队列。
这里,标志信息包括第一门限Ltag和第二门限Rtag。
步骤39:判断任务队列是否为空,如果否,则结束流程,如果是,则执行步骤310。
这里,在任务队列中存在任务的情况下,说明任务队列为空,否则,说明任务队列不为空。
步骤310:判断是否满足第二设定条件,如果否,则继续执行步骤310,如果是,则执行步骤311。
本发明实施例中,可以根据第一门限Ltag、第二门限Rtag、当前时间戳t’和当前下发执行的任务数N来触发任务调度,具体地,第二设定条件可以用式(4)表示:
Rtag≤t’||(Ltag≤t’&&Ltag+Rtag≤2t’) (4)
其中,||表示或运算,&&表示与运算。
也就是说,如果Rtag≤t’||(Ltag≤t’&&Ltag+Rtag≤2t’),则执行步骤311,否则,重新执行步骤310。
步骤311:下发待执行任务。
在具体实现时,可以从任务队列中获取所有满足第二设定条件的待执行任务,并在任务队列中删除取出的任务,更新当前下发执行的任务数;当任意一个下发的待执行任务执行完成后,可以更新当前下发执行的任务数。
在每次更新当前下发执行的任务数后,可以跳转至步骤39,通过执行步骤39至步骤311重新进行任务调度,继续下发任务队列中所有满足第二设定条件的待执行任务。
在前述实施例提出的任务调度方法的基础上,本发明实施例还提出了一种任务调度装置。
图4为本发明实施例的一个处理装置的组成结构示意图,如图4所示,该装置包括:获取模块401和处理模块402,其中,
获取模块401,用于获取为每个待执行任务分配的标志信息,所述标志信息包括第一门限和/或第二门限,所述第一门限用于标志以下信息:当前时间下发待执行任务时,数据传输的流量是否会高于流控上限;所述第二门限用于标志以下信息:当前时间不下发待执行任务时,所述数据传输的流量是否会低于流控下限;
处理模块402,用于将所述标志信息与当前时间戳进行对比,得到对比结果;根据所述对比结果进行任务调度。
可选地,所述获取模块401,还用于在获取到待执行任务的时刻,确定第一时间戳,所述第一时间戳表示上一个任务以所述流控上限执行时的执行完成时间点;确定第一门限为:所述获取到待执行任务的时刻和所述第一时间戳中的较大值。
可选地,所述获取模块401,还用于在获取到待执行任务的时刻,确定第二时间戳,所述第二时间戳表示上一个任务以所述流控下限执行时的执行完成时间点;确定第二门限为:所述获取到待执行任务的时刻和所述第二时间戳中的较大值。
可选地,所述流控下限是初始流控下限和单个待执行任务执行时的最小流量中的较小值。
可选地,所述处理模块402,用于将所述标志信息与当前时间戳进行对比,得到对比结果,包括:
在所述流控下限为初始流控下限的情况下,每隔设定时间间隔,将所述标志信息与当前时间戳进行对比,得到对比结果。
可选地,所述处理模块402,用于根据所述对比结果进行任务调度,包括:
在所述对比结果满足第一条件的情况下,执行对应的待执行任务;
其中,所述第一条件包括以下至少之一:所述第二门限小于或等于当前时间戳、所述第一门限和所述第二门限满足第二条件;所述第二条件包括:所述第一门限小于或等于当前时间戳。
可选地,所述第二条件还包括:所述第一门限与所述第二门限之和小于或等于所述当前时间戳的2倍。
可选地,所述处理模块402,还用于在所述流控下限为单个待执行任务执行时的最小流量,且当前正在执行的任务的数量为0的情况下,执行对应的待执行任务。
上述获取模块401和处理模块402均可由位于电子设备中的处理器实现,上述处理器为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。
可以看出,本发明实施例中,由于第一门限标志以下信息:当前时间下发待执行任务时,数据传输的流量是否会高于流控上限;第二门限标志以下信息:当前时间不下发待执行任务时,数据传输的流量是否会低于流控下限;并且,可以根据第一门限和/或第二门限与当前时间戳进行对比,那么,结合第一门限和第二门限的含义,基于对比结果进行任务调度,可以在任务调度的同时,可以有效地将流量控制在流控上限和流控下限之间,即,可以根据对比结果自适应地控制流量,可以更准确地控制流量。
图5为本发明实施例的另一个处理装置的组成结构示意图,如图5所示,该装置包括:适配流控精度模块501、任务分析模块502、任务调度模块503、任务下发模块504以及任务完成模块505;其中,
适配流控精度模块501,用于根据流量控制精度需求,确定初始流控下限,并根据初始流控下限和单个待执行任务执行时,确定出流控下限。适配流控精度模块501的具体实现方式已经在前述实施例中作出说明,这里不再赘述。
任务分析模块502,用于计算第一门限和第二门限;任务分析模块502的具体实现方式已经在前述实施例中作出说明,这里不再赘述。
任务调度模块503,用于将上述标志信息与当前时间戳进行对比,得到对比结果;根据所述对比结果判断是否下发待执行任务,得到处理结果。任务调度模块503的具体实现方式已经在前述实施例中作出说明,这里不再赘述。
任务下发模块504,用于根据任务调度模块503的处理结果,下发待执行任务;任务下发模块504可以采用循环调度的方式来获取任务调度模块503的处理结果。
任务完成模块505,用于更新当前下发执行的任务数,并基于任务调度模块503重新调度任务。这里,在流控下限为单个待执行任务执行时的最小流量情况下,如果当前正在执行的任务的数量降低至0,则基于任务调度模块503重新调度任务,不会由于没有新任务到来而导致任务调度流程不能顺利进行。
上述适配流控精度模块501、任务分析模块502、任务调度模块503、任务下发模块504以及任务完成模块505均可由位于电子设备中的处理器实现,上述处理器为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
具体来讲,本实施例中的一种任务调度方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种任务调度方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种任务调度方法。
基于前述实施例相同的技术构思,参见图6,其示出了本发明实施例提供的一种电子设备60,可以包括:存储器61、处理器62及存储在存储器61上并可在处理器62上运行的计算机程序;其中,
存储器61,用于存储计算机程序和数据;
处理器62,用于执行所述存储器中存储的计算机程序,以实现前述实施例的任意一种任务调度方法。
在实际应用中,上述存储器61可以是易失性存储器(volatile memory),例如RAM;或者非易失性存储器(non-volatile memory),例如ROM,快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器62提供指令和数据。
上述处理器62可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。
在一些实施例中,本发明实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述
本申请所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (11)
1.一种任务调度方法,其特征在于,所述方法包括:
获取为每个待执行任务分配的标志信息,所述标志信息包括第一门限和第二门限,所述第一门限用于标志以下信息:当前时间下发待执行任务时,数据传输的流量是否会高于流控上限;所述第二门限用于标志以下信息:当前时间不下发待执行任务时,所述数据传输的流量是否会低于流控下限;
将所述标志信息与当前时间戳进行对比,得到对比结果;
根据所述对比结果进行任务调度。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在获取到待执行任务的时刻,确定第一时间戳,所述第一时间戳表示上一个任务以所述流控上限执行时的执行完成时间点;
确定第一门限为:所述获取到待执行任务的时刻和所述第一时间戳中的较大值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在获取到待执行任务的时刻,确定第二时间戳,所述第二时间戳表示上一个任务以所述流控下限执行时的执行完成时间点;
确定第二门限为:所述获取到待执行任务的时刻和所述第二时间戳中的较大值。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述流控下限是初始流控下限和单个待执行任务执行时的最小流量中的较小值。
5.根据权利要求4所述的方法,其特征在于,所述将所述标志信息与当前时间戳进行对比,得到对比结果,包括:
在所述流控下限为初始流控下限的情况下,每隔设定时间间隔,将所述标志信息与当前时间戳进行对比,得到对比结果。
6.根据权利要求4所述的方法,其特征在于,所述根据所述对比结果进行任务调度,包括:
在所述对比结果满足第一条件的情况下,执行对应的待执行任务;
其中,所述第一条件包括以下至少之一:所述第二门限小于或等于当前时间戳、所述第一门限和所述第二门限满足第二条件;所述第二条件包括:所述第一门限小于或等于当前时间戳。
7.根据权利要求6所述的方法,其特征在于,所述第二条件还包括:所述第一门限与所述第二门限之和小于或等于所述当前时间戳的2倍。
8.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述流控下限为单个待执行任务执行时的最小流量,且当前正在执行的任务的数量为0的情况下,执行对应的待执行任务。
9.一种任务调度装置,其特征在于,所述装置包括:获取模块和处理模块,其中,
获取模块,用于获取为每个待执行任务分配的标志信息,所述标志信息包括第一门限和第二门限,所述第一门限用于标志以下信息:当前时间下发待执行任务时,数据传输的流量是否会高于流控上限;所述第二门限用于标志以下信息:当前时间不下发待执行任务时,所述数据传输的流量是否会低于流控下限;
处理模块,用于将所述标志信息与当前时间戳进行对比,得到对比结果;根据所述对比结果进行任务调度。
10.一种电子设备,其特征在于,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行权利要求1至8任一项所述的方法。
11.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010117087.6A CN113381941B (zh) | 2020-02-25 | 2020-02-25 | 一种任务调度方法、装置、电子设备和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010117087.6A CN113381941B (zh) | 2020-02-25 | 2020-02-25 | 一种任务调度方法、装置、电子设备和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113381941A CN113381941A (zh) | 2021-09-10 |
CN113381941B true CN113381941B (zh) | 2022-09-30 |
Family
ID=77569224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010117087.6A Active CN113381941B (zh) | 2020-02-25 | 2020-02-25 | 一种任务调度方法、装置、电子设备和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113381941B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1754335A (zh) * | 2003-02-25 | 2006-03-29 | 摩托罗拉公司 | 分组数据通信系统中的流量控制 |
CN101155085A (zh) * | 2006-09-29 | 2008-04-02 | 中兴通讯股份有限公司 | 实时流量预测方法及装置和实时流量监测预警方法及装置 |
CN107547433A (zh) * | 2017-07-03 | 2018-01-05 | 阿里巴巴集团控股有限公司 | 基于令牌漏桶进行限流的方法、装置和设备 |
CN109962857A (zh) * | 2017-12-26 | 2019-07-02 | 中国电信股份有限公司 | 流量控制方法、装置及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3076158B1 (fr) * | 2017-12-22 | 2020-01-10 | Aviwest | Procede de regulation de debit |
-
2020
- 2020-02-25 CN CN202010117087.6A patent/CN113381941B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1754335A (zh) * | 2003-02-25 | 2006-03-29 | 摩托罗拉公司 | 分组数据通信系统中的流量控制 |
CN101155085A (zh) * | 2006-09-29 | 2008-04-02 | 中兴通讯股份有限公司 | 实时流量预测方法及装置和实时流量监测预警方法及装置 |
CN107547433A (zh) * | 2017-07-03 | 2018-01-05 | 阿里巴巴集团控股有限公司 | 基于令牌漏桶进行限流的方法、装置和设备 |
CN109962857A (zh) * | 2017-12-26 | 2019-07-02 | 中国电信股份有限公司 | 流量控制方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113381941A (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11467769B2 (en) | Managed fetching and execution of commands from submission queues | |
US7840720B2 (en) | Using priority to determine whether to queue an input/output (I/O) request directed to storage | |
CN111324427B (zh) | 一种基于dsp的任务调度方法及装置 | |
CN109799956B (zh) | 一种存储控制器及io请求处理方法 | |
US10712945B2 (en) | Deduplication processing method, and storage device | |
CN112131005B (zh) | 一种资源调整策略确定方法和装置 | |
CN109117280B (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN112579263A (zh) | 任务执行方法及装置、存储介质及电子设备 | |
CN116880908B (zh) | 一种指令处理方法、装置、电子设备及可读存储介质 | |
US10846001B2 (en) | Allocating storage requirements in a distributed storage system | |
US20190138244A1 (en) | Managing QOS Priorities In Primary And Replica Storage Nodes Of A Distributed Storage System | |
EP3382540A1 (en) | Interrupt based on a last interrupt request indicator and a work acknowledgement | |
CN111282263A (zh) | 事件消息的处理方法、装置、电子设备及可读存储介质 | |
CN109284193B (zh) | 一种基于多线程的分布式数据处理方法及服务器 | |
CN117076353B (zh) | 描述符的配置方法和描述符的配置装置 | |
CN113381941B (zh) | 一种任务调度方法、装置、电子设备和计算机存储介质 | |
WO2019029721A1 (zh) | 任务的调度方法、装置、设备及存储介质 | |
US11194619B2 (en) | Information processing system and non-transitory computer readable medium storing program for multitenant service | |
US11360702B2 (en) | Controller event queues | |
CN111984198A (zh) | 消息队列实现方法、装置及电子设备 | |
CN116560809A (zh) | 数据处理方法及装置、设备、介质 | |
CN115202842A (zh) | 任务调度方法及装置 | |
CN109246033B (zh) | 一种请求处理方法、装置、设备及可读存储介质 | |
CN114706671B (zh) | 一种多处理器调度优化方法与系统 | |
CN115454889B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |