CN111324428B - 任务分配方法、装置、设备和计算机可读存储介质 - Google Patents
任务分配方法、装置、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111324428B CN111324428B CN201910895064.5A CN201910895064A CN111324428B CN 111324428 B CN111324428 B CN 111324428B CN 201910895064 A CN201910895064 A CN 201910895064A CN 111324428 B CN111324428 B CN 111324428B
- Authority
- CN
- China
- Prior art keywords
- buffer pool
- nodes
- task
- injection
- preset
- 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
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- General Factory Administration (AREA)
Abstract
本申请实施例提供一种任务分配方法、装置、设备和计算机可读存储介质,涉及计算机技术领域,可以提高任务分配效率。该任务分配方法包括:获取缓冲池中的任务节点数量;确定所述缓冲池中的任务节点数量是否小于注入阈值,若是,则对所述缓冲池进行一次遍历注入,并将注入所述缓冲池的任务分配给执行器,所述对所述缓冲池进行一次遍历注入包括:遍历所述缓冲池中的每个节点,将任务池中的任务注入空节点,使空节点变为任务节点;当获取到所述执行器的任务执行结果时,使所述执行后的任务在所述缓冲池中的对应节点变为空节点。本申请的方案主要用于任务调度。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种任务分配方法、装置、设备和计算机可读存储介质。
背景技术
基于网络环境下的任务***包括利用资源执行任务的执行器和用于存储任务的任务池,任务池具有固定的存储空间,用于存储任务,周期性使任务注入任务池并下发给执行器,由执行器执行,然而,目前的任务分配方式中的任务分配效率较低。
发明内容
本申请提供了一种任务分配方法、装置、设备和计算机可读存储介质,可以提高任务分配效率。
第一方面,本申请实施例提供了一种任务分配方法,包括:
获取缓冲池中的任务节点数量;
确定所述缓冲池中的任务节点数量是否小于注入阈值,若是,则对所述缓冲池进行一次遍历注入,并将注入所述缓冲池的任务分配给执行器,所述对所述缓冲池进行一次遍历注入包括:遍历所述缓冲池中的每个节点,将任务池中的任务注入空节点,使空节点变为任务节点;
当获取到所述执行器的任务执行结果时,使所述执行后的任务在所述缓冲池中的对应节点变为空节点。
可选地,上述方法还包括:
定期获取第一预设时长内对所述缓冲池进行遍历注入的次数;
确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否满足预设条件,若是,则调节所述缓冲池的节点数量。
可选地,所述注入阈值与所述缓冲池的节点数量正相关。
可选地,所述确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否满足预设条件,若是,则调节所述缓冲池的节点数量的过程包括:
确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否大于第一预设次数,若是,则增加所述缓冲池的节点数量;
确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否小于第二预设次数,若是,则减少所述缓冲池的节点数量。
可选地,所述第一预设次数与所述缓冲池的节点数量正相关,所述第二预设次数与所述缓冲池的节点数量正相关。
可选地,每次所述缓冲池的节点数量变化幅值和该次所述缓冲池的节点数量变化之前的值正相关。
可选地,所述定期获取第一预设时长内对所述缓冲池进行遍历注入的次数的过程包括:
定期获取第一预设时长内对缓冲池进行遍历注入的次数以及基准注入次数,基准注入次数与缓冲池的节点数量正相关;
根据所述基准注入次数得到所述第一预设次数和所述第二预设次数,所述第一预设次数大于所述基准注入次数且与所述基准注入次数正相关,所述第二预设次数小于所述基准注入次数且与所述基准注入次数正相关;
在每次增加所述缓冲池的节点数量之后,本次增加之后的缓冲池节点数量和本次增加之前的缓冲池节点数量之比等于所述第一预设次数和所述基准注入次数之比;
在每次减少所述缓冲池的节点数量之后,本次减少之后的缓冲池节点数量和本次减少之前的缓冲池节点数量之比等于所述第二预设次数和所述基准注入次数之比。
可选地,所述定期获取第一预设时长内对所述缓冲池进行遍历注入的次数的过程包括:
定期获取第一预设时长内对所述缓冲池进行遍历注入的次数N、所述缓冲池中的节点数量m和任务节点数量p;
确定N、m和p在第二预设时长内是否无变化,若是,则对所述缓冲池进行复位;
所述对所述缓冲池进行复位包括:
撤销所述缓冲池中所有任务节点所对应的任务和执行器之间的任务分配关系,将所述缓冲池中所有的任务节点所对应的任务注入至所述任务池,使任务节点变为空节点,以使所述缓冲池被清空;
将任务池中的任务注入清空后的所述缓冲池,使所述缓冲池中的所有空节点变为任务节点,并将注入所述缓冲池的任务分配给执行器。
另一方面,本申请实施例还提供一种任务分配装置,包括:
第一获取模块,用于获取缓冲池中的任务节点数量;
注入模块,用于确定所述缓冲池中的任务节点数量是否小于注入阈值,若是,则对所述缓冲池进行一次遍历注入,并将注入所述缓冲池的任务分配给执行器,所述对所述缓冲池进行一次遍历注入包括:遍历所述缓冲池中的每个节点,将任务池中的任务注入空节点,使空节点变为任务节点;
执行结果处理模块,用于当获取到所述执行器的任务执行结果时,使所述执行后的任务在所述缓冲池中的对应节点变为空节点。
可选地,上述装置还包括:
第二获取模块,用于定期获取第一预设时长内对所述缓冲池进行遍历注入的次数;
节点数量调节模块,用于确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否满足预设条件,若是,则调节所述缓冲池的节点数量。
可选地,所述注入阈值与所述缓冲池的节点数量正相关。
可选地,所述节点数量调节模块具体用于:
确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否大于第一预设次数,若是,则增加所述缓冲池的节点数量;
确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否小于第二预设次数,若是,则减少所述缓冲池的节点数量。
可选地,所述第一预设次数与所述缓冲池的节点数量正相关,所述第二预设次数与所述缓冲池的节点数量正相关。
可选地,每次所述缓冲池的节点数量变化幅值和该次所述缓冲池的节点数量变化之前的值正相关。
可选地,所述第二获取模块具体用于:
定期获取第一预设时长内对缓冲池进行遍历注入的次数以及基准注入次数,基准注入次数与缓冲池的节点数量正相关;
根据所述基准注入次数得到所述第一预设次数和所述第二预设次数,所述第一预设次数大于所述基准注入次数且与所述基准注入次数正相关,所述第二预设次数小于所述基准注入次数且与所述基准注入次数正相关;
在每次增加所述缓冲池的节点数量之后,本次增加之后的缓冲池节点数量和本次增加之前的缓冲池节点数量之比等于所述第一预设次数和所述基准注入次数之比;
在每次减少所述缓冲池的节点数量之后,本次减少之后的缓冲池节点数量和本次减少之前的缓冲池节点数量之比等于所述第二预设次数和所述基准注入次数之比。
可选地,所述第二获取模块具体用于:
定期获取第一预设时长内对所述缓冲池进行遍历注入的次数N、所述缓冲池中的节点数量m和任务节点数量p;
确定N、m和p在第二预设时长内是否无变化,若是,则对所述缓冲池进行复位;
所述对所述缓冲池进行复位包括:
撤销所述缓冲池中所有任务节点所对应的任务和执行器之间的任务分配关系,将所述缓冲池中所有的任务节点所对应的任务注入至所述任务池,使任务节点变为空节点,以使所述缓冲池被清空;
将任务池中的任务注入清空后的所述缓冲池,使所述缓冲池中的所有空节点变为任务节点,并将注入所述缓冲池的任务分配给执行器。
另一方面,本申请实施例还提供一种任务分配设备,包括:
处理器和存储器,所述存储器用于存储至少一条指令,所述指令由所述处理器加载并执行时以实现上述的方法。
另一方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述的方法。
本申请实施例中的任务分配方法、装置、设备和计算机可读存储介质,在任务池和执行器之间设置缓冲池,根据缓冲池中对应的任务数量为判断依据使任务池中的任务注入缓冲池,缓冲池中的任务分配给对应的执行器,通过缓冲的方式实现执行器和任务池之间解耦,执行器的任务分配过程不会直接影响任务池,使得在资源分布不均匀的情况下,任务调度***整体仍保持较高的任务分配和执行效率。
附图说明
图1为本申请实施例中的一种应用场景示意图;
图2为本申请实施例中一种任务分配方法的流程示意图;
图3为本申请实施例中另一种任务分配方法的流程示意图;
图4为本申请实施例中又一种任务分配方法中部分步骤的流程示意图;
图5为图4中步骤201的一种细化步骤的流程示意图;
图6为图4中步骤201的另一种细化步骤的流程示意图;
图7为图4中步骤201的又一种细化步骤的流程示意图;
图8为本申请实施例中一种任务分配装置的结构框图;
图9为本申请实施例中另一种任务分配装置的结构框图;
图10为本申请实施例中一种任务分配设备的结构框图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
在对本申请实施例进行介绍之前,首先对发明人提出本申请实施例的过程进行说明,发明人发现,现有技术中任务池具有固定的存储空间,用于存储任务,周期性使任务注入任务池并下发给执行器,由于执行器所利用的资源在时间和空间维度上分布不均匀,这就会导致任务分配效率低。例如,如果执行任务的服务器在夜间执行任务,由于网络传输资源在夜间较充足,因此相对于白天,夜间执行任务的服务器执行任务时所需要的时间较短,可能会导致接收任务和分配任务的两方均频繁访问任务池,出现竞争的情况,导致整体任务分配效率低。为了改善上述问题,发明人提供了本申请实施例,以下对本申请实施例进行说明。
本申请实施例可应用于任务调度***。图1为本申请实施例中的一种应用场景示意图。如图1所示的任务调度***,主要包括任务分配装置11、执行器集合12、缓冲池13和任务池14,任务分配装置11和执行器集合12可以为服务器或网络环境下的其他网络设备,执行器集合12包括至少一个执行器120,执行器120用于具体执行任务并反馈任务执行结果,例如,执行器集合12为服务器,执行器120为进程,执行器120利用网络执行任务,执行任务时所利用的资源包括网络带宽资源,还可以包括其他必要资源,资源在时间与空间维度上分布不均匀,执行器集合12的任务执行性能与其可利用的资源相关,例如,执行器集合12在夜间等空闲时间的执行效率较高,执行器集合12距离其执行任务所传输数据的目标位置越近则执行效率越高。缓冲池13用于存储待执行的任务,缓冲池13可以根据执行器120自适应生成并对应执行器120,使执行器120和缓冲池13具有一一对应的关系,可以理解地,在其他可实现的实施方式中,一个缓冲池可以与多个执行器对应,或者一个缓冲池与多个执行器集合对应,在图1和以下实施例的描述中,仅以一个缓冲池13对应一个执行器120为例进行举例说明,缓冲池13中的任务由对应的执行器120来执行,任务池14用于存储待分配的任务,缓冲池13和任务池14具体可以为服务器中的数据存储结构,缓冲池13通过节点的形式存储任务,每个节点对应一个任务,节点的数量越多,则缓冲池13的容量越大,可以存储的任务数量越多。
本申请实施例提供一种任务分配方法,任务可以为利用网络执行的任务,例如视频图像检测任务等,该方法的执行主体可以为任务调度***中的任务分配装置11,如图2所示,图2为本申请实施例中一种任务分配方法的流程示意图,该方法可以对应图1中某一个缓冲池13所对应的任务分配方法,该方法包括:
步骤101、获取缓冲池13中的任务节点数量;
步骤102、确定缓冲池13中的任务节点数量是否小于注入阈值,若是,则进入步骤103,若否,则可以重新进入步骤101,持续监测缓冲池13中的任务节点数量;
步骤103、对缓冲池13进行一次遍历注入,并将注入缓冲池13的任务分配给执行器120,然后可以进入步骤104以及进入步骤101;其中,对缓冲池13进行一次遍历注入包括:遍历缓冲池13中的每个节点,将任务池14中的任务注入空节点,使空节点变为任务节点。
具体地,在步骤103、对缓冲池13进行一次遍历注入完成之后,可以直接进入步骤101和步骤104,即实时监控缓冲池13中的任务节点数量以及任务执行结果。在具体的遍历注入过程中,会遍历该缓冲池13中的所有节点,如果发现节点为任务节点,则跳过继续遍历缓冲池13,如果发现节点为空节点,则从任务池14注入新的任务至该节点,使该节点成为任务节点,直到该缓冲池13中的所有节点均为任务节点,即完成了一次遍历注入。需要说明的是,如果任务池14中的任务不足以注满该缓冲池13,则将任务池14中的任务全部注入之后,即完成本次遍历注入。任务池14用于存储任务调度***接收到的所有待分配任务,任务池14中的任务注入缓冲池13后,分配给执行器120,在将任务池14中的任务分配给执行器120时,会将该任务的位置信息发送给执行器120,例如,pooln.keyN,其中,pooln表示缓冲池13的位置,keyN表示缓冲池13中对应该任务的节点位置,以便于执行器120找到该任务所在的节点,获取对应的具体任务信息,缓冲池13中存储有待执行任务,执行器120逐个执行缓冲池13中分配给自己的任务,执行器120完成一个任务的执行之后,会反馈该任务对应的任务执行结果至任务分配装置11,任务执行结果中同样包含该任务的位置信息,例如pooln.keyN。若缓冲池13中的某节点被注入任务,则该节点成为任务节点,若缓冲池13中的某节点没有存储与任务相关的信息,则该节点为空节点。将任务注入缓冲池13的过程,即使缓冲池13中空节点变为任务节点的过程。
步骤104、当获取到执行器120的任务执行结果时,使执行后的任务在缓冲池13中的对应节点变为空节点,然后可以进入步骤101,持续监测缓冲池13中的任务节点数量;
具体地,执行器120执行完成任务之后会产生任务执行结果,此时表示该任务已经执行完成,无需再进行分配或执行,由于任务执行结果中包含该任务的位置信息,因此任务分配装置11可以根据该位置信息找到对应的节点,将该任务节点变为空节点,以便于存储其他任务。
上述步骤表示当缓冲池13中任务节点数量下降至注入阈值以下时,会从任务池14中补充新的任务存储在缓冲池13中作为执行器120的待执行任务,注入阈值可以为预设的定值,也可以为预设的可调值,例如,对于某缓冲池,其中的节点数量为100,设置注入阈值为50,当前获取到该缓冲池中的任务节点数量为49,小于50,即缓冲池中任务节点数量达到注入条件,此时对该缓冲池13进行一次遍历注入,遍历注入之后,该缓冲池13中的任务节点数量变为100,在接下来缓冲池13中任务逐渐被执行的过程中,空节点数量逐渐增加,任务节点数量逐渐减小,直到再次判断任务节点数量小于注入阈值时,再进行下一次遍历注入,依次类推,由于增设了缓冲池13,任务池14中的任务首先注入至缓冲池13中,再由缓冲池13将任务分配至对应的执行器120,因此,即便执行器120执行任务所用的时间较短,也不会直接影响任务池14的任务接收或者给其他执行器120的任务分配。
需要说明的是,上述各步骤之间的执行顺序关系仅为举例,本申请实施例对于各步骤之间的执行顺序不作限定,例如,步骤104是在执行器120反馈任务执行结果后执行的,也可以在其他步骤执行的间隙或者与其他步骤同步执行。
本申请实施例中的任务分配方法,在任务池和执行器之间设置缓冲池,根据缓冲池中对应的任务数量为判断依据使任务池中的任务注入缓冲池,缓冲池中的任务分配给对应的执行器,通过缓冲的方式实现执行器和任务池之间解耦,执行器的任务分配过程不会直接影响任务池,使得在资源分布不均匀的情况下,任务调度***整体仍保持较高的任务分配和执行效率。
可选地,如图3所示,图3为本申请实施例中另一种任务分配方法的流程示意图,上述任务分配方法还包括:
步骤201、定期获取第一预设时长内对缓冲池13进行遍历注入的次数,然后进入步骤202;
步骤202、确定第一预设时长内对所述缓冲池13进行遍历注入的次数是否满足预设条件,若是,则进入步骤203,若否,则可以进入步骤101;
步骤203、调节缓冲池13的节点数量,然后可以进入步骤101。
具体地,可以定期执行步骤201和202,以实现周期性确定缓冲池13中的节点数量是否需要调整,以上步骤中的缓冲池13为图1的任务分配***中的某一个缓冲池13,即判断一个缓冲池13是否满足需要进行节点数量调整,本申请实施例的任务分配方法,均是针对该缓冲池13所描述的方法,对于任务分配***中的每个缓冲池13,均可以应用相同的任务分配方式。在步骤201中,例如每隔x秒获取一次在这x秒内该缓冲池13执行遍历注入的次数,即每x秒为一个周期,周期性获取上一个周期内该缓冲池13执行遍历注入的次数,遍历注入的逻辑与上述实施例相同,是每当缓冲池13中任务节点数量降低至预设值时,将缓冲池13注满,在x秒内进行遍历注入的次数越多,则说明该缓冲池13对应的执行器120的执行效率越高,反之,在x秒内进行遍历注入的次数越少,则说明该缓冲池13对应的执行器120的执行效率越低,因此,可以根据第一预设时长内对缓冲池13进行遍历注入的次数来对缓冲池13中的节点数量进行动态调节,以提高缓冲池13中的节点数量与执行器120的执行效率之间的匹配程度,从而进一步提高任务分配效率。预设条件可以根据需要设置,例如,设置阈值y,当x秒内进行遍历注入的次数大于y时,则增加缓冲池13中的节点数量,当x秒内进行遍历注入的次数小于y时,则减少缓冲池13中的节点数量。
可选地,在例如图3所示的任务分配方法中,注入阈值与缓冲池13的节点数量正相关。
具体地,例如,当缓冲池13的节点数量为100时,对应的注入阈值为70,即当缓冲池13中的任务节点数量下降至70以下时会从任务池14中补充新的任务注入至该缓冲池13;由于缓冲池13的节点数量会进行动态调节,当该缓冲池13中的节点数量变为400时,注入阈值可以变为300,即当该缓冲池13中的任务节点数量下降至300以下时从任务池14中补充新的任务注入至该缓冲池13;以此类推。缓冲池13的节点数量越大,则对应的注入阈值越大;缓冲池13的节点数量越小,则对应的注入阈值越小。这样,可以保持缓冲池13中存储有与缓冲池13的节点数量相匹配的任务节点数量,同时又不会过于频繁地执行注入操作。注入阈值可以与缓冲池13的节点数量成正比,例如,设置注入阈值为缓冲池13的节点数量的50%,不论缓冲池13的节点数量如何变化,只要其中的任务节点数量下降至节点数量的一半以下,即执行遍历注入。可以理解地,在其他可实现的实施方式中,注入阈值也可以为固定的预设值,例如,缓冲池13的节点数量分为80、90和100三档,且在这三档中动态调节,但是不论缓冲池13的节点数量为何值,注入阈值均为70,即只要缓冲池13中的任务节点数量小于70,即执行遍历注入。
可选地,如图4所示,图4为本申请实施例中又一种任务分配方法中部分步骤的流程示意图,上述步骤202、确定第一预设时长内对缓冲池13进行遍历注入的次数是否满足预设条件,若是,则进入步骤203、调节缓冲池13的节点数量的过程包括:
步骤2021、确定第一预设时长内对缓冲池13进行遍历注入的次数是否大于第一预设次数,若是,则进入步骤2031,若否,则可以进入步骤2022;
步骤2031、增加缓冲池13的节点数量,然后可以进入步骤101;
步骤2022、确定第一预设时长内对缓冲池13进行遍历注入的次数是否小于第二预设次数,若是,则进入步骤2032,若否,则可以进入步骤101;
步骤2032、减少缓冲池的节点数量。
具体地,缓冲池13具有相同的节点数量时,第二预设次数小于或等于第一预设次数,例如,某个缓冲池13中的节点数量可以分为50、100和200三档,第一预设时长为10分钟,第一预设次数为15,第二预设次数为10,每10分钟获取最近10分钟内对该缓冲池13进行遍历注入的次数。第10分钟时缓冲池13的节点数量为100,所获取到的遍历注入的次数为20,超过了第一预设次数15,因此进入步骤2031中增加缓冲池13的节点数量至200,然后进入步骤101,持续监测缓冲池13中的任务节点数量,并进入步骤102,判断是否进行注入,需要说明的是,在图4中未示意步骤102、103和104,这些步骤的具体过程可以与图3中所示的过程相同;在第20分钟,在步骤201中所获取到的遍历次数为19,虽然超过了第一预设次数15,但是由于缓冲池13的节点数量已经达到最大节点数量200,因此节点数量不变,然后进入步骤101,持续监测缓冲池13的节点数量,当下降至注入阈值时进行注入;在第30分钟,在步骤201中所获取到的遍历次数为5,小于第二预设次数10,因此进入步骤2032,减少缓冲池13的节点数量至100,然后进入步骤101;在第40分钟,在步骤201中所获取到的遍历次数为6,小于第二预设次数10,因此进入步骤2032,减少缓冲池13的节点数量至50,然后进入步骤101;以此类推,当第一预设时长内对缓冲池13进行遍历注入的次数较多时,说明对应的执行器120的执行效率较高,因此增加缓冲池13的节点数量,可以避免频繁的注入降低缓冲池13和任务池14的分配效率,当第一预设时长内对缓冲池13进行遍历注入的次数较少时,说明对应的执行器120的执行效率较低,因此减少缓冲池13的节点数量,可以释放使用效率较低的节点空间,使得被释放的节点可以用来存储其他数据,提高存储空间的利用率。由于执行器120会持续执行任务,使得缓冲池13中的任务逐渐减少,因此,可以在其他步骤完成之后,均进入步骤101,确定是否满足注入条件,保证可以及时向缓冲池13注入任务。因此根据第一预设时长内对缓冲池13进行遍历注入的次数来动态调节缓冲池13中的节点数量,可以提高缓冲池13中的节点数量与执行器120的执行效率之间的匹配程度,以提高任务分配效率。在其他可实现的实施方式中,例如,某个缓冲池13中的节点数量默认为100,每10分钟获取最近5分钟内对缓冲池13进行遍历注入的次数,如果大于20次,则使缓冲池13中的节点数量增加20,如果小于10次,则使缓冲池13中的节点数量减少10。
需要说明的是,本申请实施例对于各步骤的执行顺序不作限定,例如除了图4所示的步骤执行,在其他可实现的实施方式中,也可以在每个周期内,先执行步骤2022,确定是否减少缓冲池13的节点数量,若不减少,再进入步骤2021,确定是否增加缓冲池13的节点数量;可以理解地,也可以在每个周期内,先进入步骤101,确定是否遍历注入,之后再执行步骤2021以及步骤2022,确定是否调整缓冲池13的节点数量。
可选地,第一预设次数与缓冲池13的节点数量正相关,第二预设次数与缓冲池13的节点数量正相关。
具体地,例如,某个缓冲池13中的节点数量可以分为50、100和200三档,第一预设时长为10分钟。当该缓冲池13中的节点数量为50时,第一预设次数为10,第二预设次数为5;当该缓冲池13的节点数量为100时,第一预设次数为15,第二预设次数为10;当该缓冲池13的节点数量为200时,第一预设次数为20,第二预设次数为15。每10分钟获取最近10分钟内对该缓冲池13进行遍历注入的次数。第10分钟时缓冲池13的节点数量为100,所获取到的遍历注入的次数为20,超过了该档位下的第一预设次数15,因此进入步骤2031中增加缓冲池13的节点数量至200,然后进入步骤101、获取缓冲池13中的任务节点数量,并进入步骤102,判断是否进行注入;在第20分钟,所获取到的遍历次数为19,位于该档位下的第一预设次数20和第二预设次数15之间,因此节点数量不变,然后进入步骤101,继续监测缓冲池13的节点数量,当下降至注入阈值时进行注入;在第30分钟,所获取到的遍历次数为5,小于该档位下的第二预设次数15,因此进入步骤2032,减少缓冲池13的节点数量至100,然后进入步骤101;以此类推,当缓冲池13的节点数量调节之后,动态调节第一预设次数和第二预设次数,第一预设次数和第二预设次数均与缓冲池13的节点数量正相关,这样,可以使每次判断缓冲池13的节点数量是否调整的条件适应当前缓冲池13的节点数量。
可选地,每次缓冲池13的节点数量变化幅值和该次缓冲池13的节点数量变化之前的值正相关。
具体地,例如,某个缓冲池13中的节点数量可以分为25、50、100、200和400五档,缓冲池13的节点数量逐档调节,例如,当前缓冲池13的节点数量为25,确定第一预设时长内对缓冲池13进行遍历注入的次数大于第一预设次数,增加缓冲池13的节点数量至50,节点数量变化幅值为25;下一次确定第一预设时长内对缓冲池13进行遍历注入的次数大于第一预设次数,增加缓冲池13的节点数量至100,节点数量变化幅值为50,该次缓冲池13的节点数量变化之前的值为50;下一次确定第一预设时长内对缓冲池13进行遍历注入的次数大于第一预设次数,增加缓冲池13的节点数量至200,节点数量变化幅值为100,该次缓冲池13的节点数量变化之前的值为100。每次进行缓冲池13的节点数量调节时,节点数量变化幅值和变化之前的节点数量正相关,也就是说,缓冲池13中的节点数量较多时,则增大或减少较多数量的节点,以避免频繁的调节,而当缓冲池13中的节点数量较少时,则增大或减少较少数量的节点,以避免过度调节。
可选地,结合图4和图5所示,图5为图4中步骤201的一种细化步骤的流程示意图,上述步骤201、定期获取第一预设时长内对缓冲池13进行遍历注入的次数包括:
步骤2011、定期获取第一预设时长内对缓冲池13进行遍历注入的次数以及基准注入次数,基准注入次数与缓冲池13的节点数量正相关,例如,当缓冲池13的节点数量m=100时,对应的基准注入次数n=10,当缓冲池13的节点数量m=200时,对应的基准注入次数n=20,当缓冲池13的节点数量m=400时,对应的基准注入次数n=40;
步骤2012、根据基准注入次数得到第一预设次数和第二预设次数,第一预设次数大于基准注入次数且与基准注入次数正相关,第二预设次数小于基准注入次数且与基准注入次数正相关,例如,第一预设次数n1=(1+r)×n,r>0,r表示节点数量增加的倍数,第二预设次数n2=(1-R)×n,0<R<1,R表示节点数量减少的倍数,以下均以r=1、R=0.5为例具体进行说明,当n=10时,n1=20,n2=5,当n=20时,n1=40,n2=10;
在每次执行步骤2031、增加缓冲池13的节点数量之后,本次增加之后的缓冲池13节点数量和本次增加之前的缓冲池13节点数量之比等于第一预设次数和基准注入次数之比;
具体地,例如,使缓冲池13的节点数量增加至m=(1+r)×m’,m’为增加之前的缓冲池13节点数量,m为增加之后的缓冲池13节点数量,增加之后的缓冲池13节点数量和增加之前的缓冲池13节点数量之比为n1=(1+r)×n,第一预设次数和基准注入次数之比为/>即/>例如缓冲池13的节点数量为100时,n=10,n1=20,n2=5,获取到的第一预设时长内对缓冲池13进行遍历注入的次数N=44>n1,即执行步骤2031、增加缓冲池13的节点数量,使缓冲池13的节点数量增加至m=2×100=200,此时,基准注入次数随着缓冲池13的节点数量变化,变化至n=(1+r)×n’,n’为缓冲池13节点数量变化之前的基准注入次数,n为缓冲池13节点数量变化之后的基准注入次数,即n=2×10=20,随着基准注入次数n的变化,第一预设次数n1和第二预设次数n2均发生变化,n1=40,n2=10,然后,下一次获取到的N=44>n1,即执行步骤2031、增加缓冲池13的节点数量,使缓冲池13的节点数量增加至m=2×200=400,此时,基准注入次数变化至n=2×20=40,n1=80,n2=20。需要说明的是,如果缓冲池13的节点数量已经达到最大数量,则即便满足N>n1,也不再执行步骤2031,以防止缓冲池13对资源的过度占用。
在每次执行步骤2032、减少缓冲池13的节点数量之后,本次减少之后的缓冲池13节点数量和本次减少之前的缓冲池13节点数量之比等于第二预设次数和基准注入次数之比。
具体地,例如,使缓冲池13的节点数量减少至m=(1-R)×m”,m”为减少之前的缓冲池13节点数量,m为减少之后的缓冲池13节点数量,减少之后的缓冲池13节点数量和减少之前的缓冲池13节点数量之比为n2=(1-R)×n,第二预设次数和基准注入次数之比为/>即/>例如缓冲池13的节点数量为400时,n=40,n1=80,n2=20,获取到的第一预设时长内对缓冲池13进行遍历注入的次数N=8<n2,即执行步骤2032、减少缓冲池13的节点数量,使缓冲池13的节点数量减少至m=0.5×400=200,此时,基准注入次数随着缓冲池13的节点数量变化,变至n=(1-R)×n’,n’为缓冲池13节点数量变化之前的基准注入次数,n为缓冲池13节点数量变化之后的基准注入次数,即n=0.5×40=20,n1=40,n2=10,然后,下一次获取到的N=8<n2,即执行步骤2032、减少缓冲池13的节点数量,使缓冲池13的节点数量减少至m=0.5×200=100,此时,基准注入次数随着缓冲池13的节点数量变化,变至n=0.5×20=10,n1=20,n2=5。需要说明的是,如果缓冲池13的节点数量已经达到最小数量,则即便满足N<n2,也不再执行步骤2032,以防止缓冲池13中的节点数量过少。
上述基准注入次数n可以为预先设定的经验值或者测试值,用于表示正常状况下缓冲池13的注入频率,即注入频率标准值,如果实际获取到的第一预设时长内对缓冲池13进行遍历注入的次数N>n,则说明当前缓冲池13的注入频率偏快,因此,每次当注入频率实际值大于注入频率标准值1+r倍时,使该缓冲池13的节点数量增加至原来的1+r倍,以使缓冲池13的节点数量和注入频率的匹配程度更加接近,但不会变化过大;类似地,如果N<n,则说明当前缓冲池13的注入频率偏慢,因此,每次当注入频率实际值小于注入频率标准值1-R倍时,使该缓冲池13的节点数量减少至原来的1-R倍,以使缓冲池13的节点数量和注入频率的匹配程度更加接近,但不会变化过大。
另外,在其他可实现的实施方式中,可以使每次缓冲池13的节点数量变化后的值与第一预设时长内对缓冲池进行遍历注入的次数N正相关,例如,标准情况下节点数量为100的缓冲池13在第一预设时长内进行遍历注入的次数为10,当前缓冲池13的节点数量为100,此时获取到该缓冲池13在第一预设时长内进行遍历注入的次数为30,大于第一预设次数,由于注入频率实际值是注入频率标准值的3倍,因此可以将缓冲池13的节点数量增加至标准频率的3倍,即从100增加至300;类似地,当前缓冲池13的节点数量为100,此时获取到该缓冲池13在第一预设时长内进行遍历注入的次数为50,大于第一预设次数,由于注入频率实际值是注入频率标准值的5倍,因此可以将缓冲池13的节点数量增加至标准频率的5倍,即从100增加至500。
另外,在上述步骤2032、减少缓冲池13的节点数量的过程中,若缓冲池13的节点数量变化值小于或等于缓冲池13的空节点数量,则保留缓冲池13的所有任务节点,去除缓冲池13的至少部分空节点,若缓冲池13的节点数量变化值大于缓冲池13的空节点数量,则去除缓冲池13的所有空节点和部分任务节点,并将缓冲池13中被去除的任务节点所对应的任务注入任务池14,撤销缓冲池13中被去除的任务节点所对应的任务和执行器120之间的任务分配关系。例如,缓冲池13中的节点数量从100减少至50之前,如何100个节点中有40个任务节点、60个空节点,那么直接将60个空节点中去除50个即可;如果100个节点中有60个任务节点、40个空节点,那么先将40个空节点去除,然后从60个任务节点中选取10个,将这10个任务节点中的任务注入任务池14,同时,将之前这10个任务节点所对应的任务与执行器120之间的任务分配关系撤销,使得执行器120不再存储与这些任务相关的信息,这些任务不再作为执行器120所需要处理的待执行任务。其中注入至任务池14中的任务,可以重新按照任务池14本身的逻辑进行分配,以避免任务的丢失,保证缓冲池13中被去除的任务会在后续的过程被执行。
可选地,结合图4和图6所示,图6为图4中步骤201的另一种细化步骤的流程示意图,上述步骤201、定期获取第一预设时长内对缓冲池13进行遍历注入的次数的过程包括:
步骤2011、定期获取第一预设时长内对缓冲池进行遍历注入的次数N、缓冲池13中的节点数量m和任务节点数量p,然后进入步骤2012;
步骤2012、确定N、m和p在第二预设时长内是否无变化,若是,则进入步骤2013,若否,则可以进入步骤2021;
步骤2013、对缓冲池13进行复位,然后可以进入步骤101。
步骤2013、对缓冲池13进行复位包括:
撤销缓冲池13中所有任务节点所对应的任务和执行器120之间的任务分配关系,将缓冲池13中所有的任务节点所对应的任务注入至任务池14,使任务节点变为空节点,以使缓冲池13被清空;
将任务池14中的任务注入清空后的缓冲池13,使缓冲池13中的所有空节点变为任务节点,并将注入缓冲池13的任务分配给执行器120。
具体地,在定期获取缓冲池13的参数N、m和p之后,首先进行复位的判断,例如缓冲池13中的各项参数在长时间内都未变化,则说明该缓冲池13中的任务分配、执行或节点的处理出现了异常,为了保证任务处理效率,可以对缓冲池13进行复位,使其恢复至初始状态。复位的过程中,首先将缓冲池13中的任务返还至任务池14,返还任务的过程包括撤销缓冲池13中任务和执行器120之间的任务分配关系,以及将缓冲池13中的任务注入任务池14,以避免复位过程中造成任务的丢失,保证缓冲池13中的任务会在后续的过程被执行,然后使任务池14中的任务重新注入至缓冲池13,以恢复该缓冲池13的任务分配过程。
另外,还可以结合图4和图7所示,图7为图4中步骤201的又一种细化步骤的流程示意图,上述步骤201、定期获取第一预设时长内对缓冲池13进行遍历注入的次数的过程包括:
步骤2011、定期获取第一预设时长内对缓冲池进行遍历注入的次数N、基准注入次数n、缓冲池13中的节点数量m和任务节点数量p,然后进入步骤2012;
步骤2012、确定N、m和p在第二预设时长内是否无变化,若是,则进入步骤2013,若否,则进入步骤2014;
步骤2013、对缓冲池13进行复位,然后进入步骤101,其中对缓冲池13进行复位的过程与上述过程相同,在此不再赘述;
步骤2014、根据基准注入次数n得到第一预设次数和第二预设次数,第一预设次数大于基准注入次数且与基准注入次数正相关,第二预设次数小于基准注入次数且与基准注入次数正相关。
步骤2014的具体过程和原理与图5中步骤2012的具体过程和原理相同,在此不再赘述。
可选地,上述缓冲池具有Key-Value二叉树结构,其中Key用于存储缓冲池中节点的索引,Value用于存储地址,若地址指向任务信息,则节点为任务节点,若地址指向空,则节点为空节点。使用Key-Value二叉树结构作为缓冲池的数据存储结构,可以构造符合搜索性能的二叉树,以快速定位任务位置、对已完成的任务进行清理,同时不影响遍历二叉树进行任务的高效注入。
需要说明的是,上述任务分配方法仅为图1所示的任务调度***中一个缓冲池13所对应的分配方法,对于***中的每个缓冲池13均可以通过相同的方法进行任务分配。
可以理解的是,上述实施例中的部分或全部步骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。
本申请实施例还提供一种任务分配装置,如图8所示,图8为本申请实施例中一种任务分配装置的结构框图,上述装置包括:第一获取模块1,用于获取缓冲池中的任务节点数量;注入模块2,用于确定缓冲池中的任务节点数量是否小于注入阈值,若是,则对缓冲池进行一次遍历注入,并将注入缓冲池的任务分配给执行器,对缓冲池进行一次遍历注入包括:遍历缓冲池中的每个节点,将任务池中的任务注入空节点,使空节点变为任务节点;执行结果处理模块3,用于当获取到执行器的任务执行结果时,使执行后的任务在缓冲池中的对应节点变为空节点。
该任务分配装置可以应用上述实施例中的任务分配方法,其具体工作过程和原理可以与上述实施例中的描述相同,在此不再赘述。
本申请实施例中的任务分配装置,在任务池和执行器之间设置缓冲池,根据缓冲池中对应的任务数量为判断依据使任务池中的任务注入缓冲池,缓冲池中的任务分配给对应的执行器,通过缓冲的方式实现执行器和任务池之间解耦,执行器的任务分配过程不会直接影响任务池,使得在资源分布不均匀的情况下,任务调度***整体仍保持较高的任务分配和执行效率。
可选地,如图9所示,图9为本申请实施例中另一种任务分配装置的结构框图,上述装置还包括:第二获取模块4,用于定期获取第一预设时长内对缓冲池进行遍历注入的次数;节点数量调节模块5,用于确定第一预设时长内对缓冲池进行遍历注入的次数是否满足预设条件,若是,则调节缓冲池的节点数量。
可选地,注入阈值与缓冲池的节点数量正相关。
可选地,节点数量调节模块具体用于:确定第一预设时长内对缓冲池进行遍历注入的次数是否大于第一预设次数,若是,则增加缓冲池的节点数量;确定第一预设时长内对缓冲池进行遍历注入的次数是否小于第二预设次数,若是,则减少缓冲池的节点数量。
可选地,第一预设次数与缓冲池的节点数量正相关,第二预设次数与缓冲池的节点数量正相关。
可选地,每次缓冲池的节点数量变化幅值和该次缓冲池的节点数量变化之前的值正相关。
可选地,第二获取模块具体用于:
定期获取第一预设时长内对缓冲池进行遍历注入的次数以及基准注入次数,基准注入次数与缓冲池的节点数量正相关;
根据基准注入次数得到第一预设次数和第二预设次数,第一预设次数大于基准注入次数且与基准注入次数正相关,第二预设次数小于基准注入次数且与基准注入次数正相关;
在每次增加缓冲池的节点数量之后,本次增加之后的缓冲池节点数量和本次增加之前的缓冲池节点数量之比等于第一预设次数和基准注入次数之比;
在每次减少缓冲池的节点数量之后,本次减少之后的缓冲池节点数量和本次减少之前的缓冲池节点数量之比等于第二预设次数和基准注入次数之比。
可选地,第二获取模块具体用于:
定期获取第一预设时长内对缓冲池进行遍历注入的次数N、缓冲池中的节点数量m和任务节点数量p;
确定N、m和p在第二预设时长内是否无变化,若是,则对缓冲池进行复位;
对缓冲池进行复位包括:
撤销缓冲池中所有任务节点所对应的任务和执行器之间的任务分配关系,将缓冲池中所有的任务节点所对应的任务注入至任务池,使任务节点变为空节点,以使缓冲池被清空;
将任务池中的任务注入清空后的缓冲池,使缓冲池中的所有空节点变为任务节点,并将注入缓冲池的任务分配给执行器。
应理解以上图8-图9所示装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。再如,当以上某个模块通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central ProcessingUnit,CPU)或其它可以调用程序的处理器。
本申请实施例还提供一种任务分配设备,如图10所示,图10为本申请实施例中一种任务分配设备的结构框图,该任务分配设备包括:处理器610和存储器620,存储器620用于存储至少一条指令,指令由处理器610加载并执行时以实现上述实施例中的方法。处理器610的数量可以为一个或多个,图8中以一个处理器610为例,处理器610和存储器620可以通过总线或者其他方式连接,图10中以通过总线连接为例。
存储器620作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的传输方法对应的程序指令/模块。处理器610通过运行存储在存储器620中的非暂态软件程序、指令以及模块,从而执行各种功能应用以及数据处理,即实现上述任意方法实施例中的方法。
存储器620可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;以及必要数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。
该任务分配设备例如可以为服务器,应用于如图1所示的任务调度***中,作为其中的任务分配装置11,其中,执行器集合12例如可以为不同的服务器,同一个执行器集合12中的多个执行器120例如可以为服务器中配置的不同进程,缓冲池13和任务池14可以由任务分配装置11或者其他服务器中的存储数据区形成。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述实施例所述的方法。
此外,本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行上述实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种任务分配方法,其特征在于,包括:
获取缓冲池中的任务节点数量;
确定所述缓冲池中的任务节点数量是否小于注入阈值,若是,则对所述缓冲池进行一次遍历注入,并将注入所述缓冲池的任务分配给执行器,所述对所述缓冲池进行一次遍历注入包括:遍历所述缓冲池中的每个节点,将任务池中的任务注入空节点,使空节点变为任务节点;
当获取到所述执行器的任务执行结果时,使所述执行后的任务在所述缓冲池中的对应节点变为空节点;
定期获取第一预设时长内对所述缓冲池进行遍历注入的次数;
确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否满足预设条件,若是,则调节所述缓冲池的节点数量;
所述定期获取第一预设时长内对所述缓冲池进行遍历注入的次数的过程包括:
定期获取第一预设时长内对缓冲池进行遍历注入的次数以及基准注入次数,基准注入次数与缓冲池的节点数量正相关;
根据所述基准注入次数得到第一预设次数和第二预设次数,所述第一预设次数大于所述基准注入次数且与所述基准注入次数正相关,所述第二预设次数小于所述基准注入次数且与所述基准注入次数正相关;
在每次增加所述缓冲池的节点数量之后,本次增加之后的缓冲池节点数量和本次增加之前的缓冲池节点数量之比等于所述第一预设次数和所述基准注入次数之比;
在每次减少所述缓冲池的节点数量之后,本次减少之后的缓冲池节点数量和本次减少之前的缓冲池节点数量之比等于所述第二预设次数和所述基准注入次数之比。
2.根据权利要求1所述的方法,其特征在于,
所述注入阈值与所述缓冲池的节点数量正相关。
3.根据权利要求1所述的方法,其特征在于,
所述确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否满足预设条件,若是,则调节所述缓冲池的节点数量的过程包括:
确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否大于第一预设次数,若是,则增加所述缓冲池的节点数量;
确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否小于第二预设次数,若是,则减少所述缓冲池的节点数量。
4.根据权利要求3所述的方法,其特征在于,
所述第一预设次数与所述缓冲池的节点数量正相关,所述第二预设次数与所述缓冲池的节点数量正相关。
5.根据权利要求3所述的方法,其特征在于,
每次所述缓冲池的节点数量变化幅值和该次所述缓冲池的节点数量变化之前的值正相关。
6.一种任务分配装置,其特征在于,包括:
第一获取模块,用于获取缓冲池中的任务节点数量;
注入模块,用于确定所述缓冲池中的任务节点数量是否小于注入阈值,若是,则对所述缓冲池进行一次遍历注入,并将注入所述缓冲池的任务分配给执行器,所述对所述缓冲池进行一次遍历注入包括:遍历所述缓冲池中的每个节点,将任务池中的任务注入空节点,使空节点变为任务节点;
执行结果处理模块,用于当获取到所述执行器的任务执行结果时,使所述执行后的任务在所述缓冲池中的对应节点变为空节点;
第二获取模块,用于定期获取第一预设时长内对所述缓冲池进行遍历注入的次数;
节点数量调节模块,用于确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否满足预设条件,若是,则调节所述缓冲池的节点数量;
所述第二获取模块具体用于:
定期获取第一预设时长内对缓冲池进行遍历注入的次数以及基准注入次数,基准注入次数与缓冲池的节点数量正相关;
根据所述基准注入次数得到第一预设次数和第二预设次数,所述第一预设次数大于所述基准注入次数且与所述基准注入次数正相关,所述第二预设次数小于所述基准注入次数且与所述基准注入次数正相关;
在每次增加所述缓冲池的节点数量之后,本次增加之后的缓冲池节点数量和本次增加之前的缓冲池节点数量之比等于所述第一预设次数和所述基准注入次数之比;
在每次减少所述缓冲池的节点数量之后,本次减少之后的缓冲池节点数量和本次减少之前的缓冲池节点数量之比等于所述第二预设次数和所述基准注入次数之比。
7.根据权利要求6所述的装置,其特征在于,
所述注入阈值与所述缓冲池的节点数量正相关。
8.根据权利要求6所述的装置,其特征在于,
所述节点数量调节模块具体用于:
确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否大于第一预设次数,若是,则增加所述缓冲池的节点数量;
确定所述第一预设时长内对所述缓冲池进行遍历注入的次数是否小于第二预设次数,若是,则减少所述缓冲池的节点数量。
9.根据权利要求8所述的装置,其特征在于,
所述第一预设次数与所述缓冲池的节点数量正相关,所述第二预设次数与所述缓冲池的节点数量正相关。
10.根据权利要求8所述的装置,其特征在于,
每次所述缓冲池的节点数量变化幅值和该次所述缓冲池的节点数量变化之前的值正相关。
11.一种任务分配设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储至少一条指令,所述指令由所述处理器加载并执行时以实现如权利要求1至5中任意一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如权利要求1至5中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910895064.5A CN111324428B (zh) | 2019-09-20 | 2019-09-20 | 任务分配方法、装置、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910895064.5A CN111324428B (zh) | 2019-09-20 | 2019-09-20 | 任务分配方法、装置、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111324428A CN111324428A (zh) | 2020-06-23 |
CN111324428B true CN111324428B (zh) | 2023-08-22 |
Family
ID=71166863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910895064.5A Active CN111324428B (zh) | 2019-09-20 | 2019-09-20 | 任务分配方法、装置、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111324428B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781801A (en) * | 1995-12-20 | 1998-07-14 | Emc Corporation | Method and apparatus for receive buffer management in multi-sender communication systems |
US5784698A (en) * | 1995-12-05 | 1998-07-21 | International Business Machines Corporation | Dynamic memory allocation that enalbes efficient use of buffer pool memory segments |
WO2002019168A1 (en) * | 2000-08-25 | 2002-03-07 | Hayes Scott R | Heuristic automated method for ideal bufferpool tuning in a computer database |
CN103605567A (zh) * | 2013-10-29 | 2014-02-26 | 河海大学 | 面向实时性需求变化的云计算任务调度方法 |
CN104580396A (zh) * | 2014-12-19 | 2015-04-29 | 华为技术有限公司 | 一种任务调度方法、节点及*** |
WO2017113278A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 数据处理方法、装置和*** |
CN107153573A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 分布式任务处理方法和装置 |
CN108510150A (zh) * | 2018-02-01 | 2018-09-07 | 东华大学 | 一种基于边缘计算的纺纱cps及其实时任务处理方法 |
WO2018219480A1 (en) * | 2017-05-29 | 2018-12-06 | Barcelona Supercomputing Center - Centro Nacional De Supercomputación | Managing task dependency |
-
2019
- 2019-09-20 CN CN201910895064.5A patent/CN111324428B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784698A (en) * | 1995-12-05 | 1998-07-21 | International Business Machines Corporation | Dynamic memory allocation that enalbes efficient use of buffer pool memory segments |
US5781801A (en) * | 1995-12-20 | 1998-07-14 | Emc Corporation | Method and apparatus for receive buffer management in multi-sender communication systems |
WO2002019168A1 (en) * | 2000-08-25 | 2002-03-07 | Hayes Scott R | Heuristic automated method for ideal bufferpool tuning in a computer database |
CN103605567A (zh) * | 2013-10-29 | 2014-02-26 | 河海大学 | 面向实时性需求变化的云计算任务调度方法 |
CN104580396A (zh) * | 2014-12-19 | 2015-04-29 | 华为技术有限公司 | 一种任务调度方法、节点及*** |
WO2017113278A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 数据处理方法、装置和*** |
CN107153573A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 分布式任务处理方法和装置 |
WO2018219480A1 (en) * | 2017-05-29 | 2018-12-06 | Barcelona Supercomputing Center - Centro Nacional De Supercomputación | Managing task dependency |
CN108510150A (zh) * | 2018-02-01 | 2018-09-07 | 东华大学 | 一种基于边缘计算的纺纱cps及其实时任务处理方法 |
Non-Patent Citations (1)
Title |
---|
云计算中任务分配研究;蒋维成;李兰英;刘华春;柳军;;信息技术(09);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111324428A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108897628B (zh) | 一种分布式锁的实现方法、装置及电子设备 | |
CN106712981B (zh) | 一种节点变更通知方法及装置 | |
CN111309644B (zh) | 一种内存分配方法、装置和计算机可读存储介质 | |
CN107026879B (zh) | 一种数据缓存方法及后台应用*** | |
US11675622B2 (en) | Leader election with lifetime term | |
US9152457B2 (en) | Processing request management | |
CN111158892B (zh) | 一种任务队列生成方法、装置及设备 | |
CN114168490A (zh) | 确定内存回收阈值的方法及相关设备 | |
CN103475520B (zh) | 一种分布式网络中的事务处理控制方法及装置 | |
CN109889406B (zh) | 用于管理网络连接的方法、装置、设备和存储介质 | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
CN111324428B (zh) | 任务分配方法、装置、设备和计算机可读存储介质 | |
CN111400241B (zh) | 数据重构方法和装置 | |
US9858185B1 (en) | Multi-tier data storage using inclusive/exclusive burst buffer caching based on reference counts | |
CN111143063A (zh) | 任务的资源预约方法及装置 | |
CN112905322B (zh) | 资源加锁的方法、计算设备及计算机存储介质 | |
CN112395063B (zh) | 一种动态多线程调度方法及*** | |
CN112035498B (zh) | 数据块调度方法、装置、调度层节点及存储层节点 | |
CN111752704B (zh) | 一种分布式存储文件***mds日志落盘方法及装置 | |
CN112506896B (zh) | 一种数据删除方法、装置及电子设备 | |
JP6551049B2 (ja) | 帯域制御回路、演算処理装置、および装置の帯域制御方法 | |
CN115599845B (zh) | 一种业务执行的方法、装置、存储介质及电子设备 | |
CN109710179B (zh) | 一种存储服务质量控制方法及装置 | |
US10901792B2 (en) | Distribution of resources among actor instances | |
CN114465958B (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 |