用于资源调度的方法和设备与流程

文档序号:11147489阅读:834来源:国知局
用于资源调度的方法和设备与制造工艺

本申请涉及计算机领域,尤其涉及一种用于资源调度的技术。



背景技术:

资源调度是云计算必备的基础功能,资源调度效果的好坏直接决定了云计算的稳定性和成本。通常需要隔离的资源很多,比如CPU(中央处理器)、内存、IO(输入/输出)等,到目前为止,发展出来的资源调度的方法有许多种,为了最大化资源利用率,一般会在一台机器上运行多个任务,但是如果我们进行了资源限制,限制资源的大小量直接决定了任务的死活,比如内存隔离限制,如果任务超过内存限制,那么就会触发OOM(Out of Memory,内存溢出),这个任务就会被不优雅的杀掉。对于一个云产品的使用者来说,任务被杀掉显然会影响业务的运行,而当前通用的做法都是重启任务,但是仍然会让用户感觉不舒服,因为一个任务经常是多个进程或线程,原本一个进程或者线程导致的资源超限,也让其他进程或线程跟着遭殃。



技术实现要素:

本申请要解决的技术问题是,提供一种资源调度的方法,以能够在资源超限时合理调度资源,以提高云计算的稳定性,并使用户无感知,进而提高用户使用体验。

为此,根据本申请的一个方面提供的一种在控制设备端用于资源调度的方法,其中,所述方法包括:

获取处理任务的私有资源池的资源使用状态;

若所述私有资源池的资源超限,则将所述私有资源池当前所处理的任务的全部或部分工作转移至公共资源池。

进一步地,将所述私有资源池当前所处理的任务的全部或部分工作转移至公共资源池包括:

向所述资源分配设备请求阻塞用户的私有资源池资源申请;

将所述私有资源池当前所处理的任务的全部或部分工作转移至公共资源池;

转移完成后,向所述资源分配设备请求结束阻塞所述私有资源池资源申请。

进一步地,将当前所处理的任务的全部或部分工作转移至公共资源池包括:

将当前处理的任务中导致所述私有资源池的资源超限的工作转移至所述公共资源池。

进一步地,所述方法还包括:获取所述共有资源池的资源使用状态;若所述共有资源池的资源未超限,则请求所述公共资源池继续执行所述转移的任务的全部或部分工作,若所述公共资源池的资源超限,则结束当前导致所述公共资源池资源超限的任务。

进一步地,所述方法还包括:在所述私有资源池的资源超限时,向导致所述私有资源池的资源超限的任务所对应的用户发送当前资源超限消息。

进一步地,所述方法还包括:将所述私有资源池当前所处理的任务的全部或部分工作转移至公共资源池后,继续获取所述私有资源池的资源使用状态,若所述私有资源池的资源空闲,则将所述转移的任务的全部或部分工作再转移回所述私有资源池。

进一步地,将所述转移的任务的全部或部分工作再转移回所述私有资源池包括:

向资源分配设备请求阻塞用户的私有资源池资源申请;

将所述转移的任务的全部或部分工作再转移回所述私有资源池;

转移完成后,向所述资源分配设备请求结束阻塞所述私有资源池资源申请。

根据本申请另一方面提供的一种在资源分配设备端用于资源调度的方法,其中,所述方法包括:

获取用户的私有资源池资源申请,为所述用户分配私有资源池的资 源;

基于控制设备的阻塞所述用户的私有资源池资源申请的请求,阻塞用户的私有资源池资源申请;

基于所述控制设备的结束阻塞所述私有资源池资源申请的请求,结束阻塞所述私有资源池资源申请。

根据本申请再一方面提供的一种用于资源调度的控制设备,其中,所述控制设备包括:

私有资源池状态获取装置,用于获取处理任务的私有资源池的资源使用状态;

资源转移装置,用于若所述私有资源池的资源超限,则将所述私有资源池当前所处理的任务的全部或部分工作转移至公共资源池。

进一步地,所述资源转移装置用于包括:

向所述资源分配设备请求阻塞用户的私有资源池资源申请;

将所述私有资源池当前所处理的任务的全部或部分工作转移至公共资源池;

转移完成后,向所述资源分配设备请求结束阻塞所述私有资源池资源申请。

进一步地,所述资源转移装置用于:

将当前处理的任务中导致所述私有资源池的资源超限的工作转移至所述公共资源池。

进一步地,所述控制设备包括:

消息发送装置,用于在所述私有资源池的资源超限时,向导致所述私有资源池的资源超限的任务所对应的用户发送当前资源超限消息。

进一步地,所述控制设备还包括:

共有资源池状态获取装置,用于获取所述共有资源池的资源使用状态;

共有资源池处理控制装置,用于若所述共有资源池的资源未超限,则请求所述公共资源池继续执行所述转移的任务的全部或部分工作,若所述公共资源池的资源超限,则结束当前导致所述公共资源池资源超限的任 务。

进一步地,所述控制设备还包括:

资源转回装置,用于在所述转移的任务的全部或部分工作转移至所述公共资源池后,继续获取所述私有资源池的资源使用状态,若所述私有资源池的资源空闲,则将所述转移的任务的全部或部分工作再转移回所述私有资源池。

进一步地,所述资源转回装置用于包括:

向资源分配设备请求阻塞用户的私有资源池资源申请;

将所述转移的任务的全部或部分工作再转移回所述私有资源池;

转移完成后,向所述资源分配设备请求结束阻塞所述私有资源池资源申请。

根据本申请另一方面提供的一种用于资源调度的资源分配设备,其中,所述资源分配设备包括:

申请获取装置,用于获取用户的私有资源池资源申请,为所述用户分配私有资源池的资源;

申请阻塞装置,用于基于控制设备的阻塞所述用户的私有资源池资源申请的请求,阻塞用户的私有资源池资源申请;

申请解阻装置,用于基于所述控制设备的结束阻塞所述私有资源池资源申请的请求,结束阻塞所述私有资源池资源申请。

与现有技术相比,根据本申请实施例的资源调度的方法和设备,在私有资源池的资源超限时,将所述私有资源池当前所处理的任务的全部或部分工作转移至公共资源池,以能够在资源超限时合理调度资源,以提高云计算的稳定性,并使用户无感知,进而提高用户使用体验。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请一方面提供的一种在控制设备端用于资源调度的方法流程图;

图2示出根据本申请又一方面提供的一种在资源分配设备端用于资源调度的方法流程图;

图3示出根据本申请一优选实施例中控制设备与资源分配设备配合实现资源调度的过程示意图;

图4示出根据本申请再一方面提供的一种在资源分配设备端用于资源调度的设备示意图;

图5示出根据本申请另一方面提供的用于资源调度的资源分配设备示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

图1示出根据本申请一方面提供的一种在控制设备端用于资源调度的方法,其中,所述方法包括:

步骤S11:获取处理任务的私有资源池的资源使用状态;

步骤S12:若所述私有资源池的资源超限,则将所述私有资源池当前所处理的任务的全部或部分工作转移至公共资源池。

具体地,任务默认在私有资源池中执行,因此当有任务时,需向资源分配设备发起私有资源池的资源申请,资源分配设备会基于资源申请为任务分配私有资源池。

在此,所述私有资源池可以是一个私有资源设备提供,也可以是包括若干私有资源设备的私有资源设备组提供。所述共有资源池可以是一个共有资源设备提供,也可以是包括若干共有资源设备的共有资源设备组提供,所述私有资源设备或私有资源设备组与所述共有资源设备或共有资源设备组可以是设置在同一网络设备端,也可以设置在不同的网络设备端。

接着,在步骤S12中,将当前所处理的任务的全部或部分工作转移至公共资源池的过程,将当前处理的任务中导致所述私有资源池的资源超限的工作转移至所述公共资源池。具体地,向所述资源分配设备请求阻塞用户的私有资源池资源申请包括:将所述私有资源池当前所处理的任务的全 部或部分工作转移至公共资源池;转移完成后,向所述资源分配设备请求结束阻塞所述私有资源池资源申请。从而当前任务的资源使用量就会下降,自动结束阻塞的状态,此任务其他进程或线程将会继续运行,对于用户将会无感知。

进一步地,所述方法还包括:在所述私有资源池的资源超限时,向导致所述私有资源池的资源超限的任务所对应的用户发送当前资源超限消息。向用户发送当前资源超限的消息的时间可以是在所述步骤S12的资源转移之前,也可以是在所述私有资源池的资源超限的任务转移至公共资源池之后一段时间,用以提示用户发生过资源超限情况,用户可以根据消息提示选择请求扩大相应私有资源池资源的资源容量,避免再次发生资源超限情况。

接着,由公共资源池处理这些任务的工作,包括任务的线程或进程,如果公共资源池也放不下这些进程或线程,才将比较耗资源的若干进程或线程所在的任务强制停止掉强制结束掉,这样可以保证系统的稳定。

此外,根据相应用户的历史资源超限的情况,可以在公共资源池中选择继续处理进程或线程,或者对于导致资源超限次数过多的用户的任务的线程或进程,直接强制结束。

进一步地,所述方法还包括:获取所述共有资源池的资源使用状态;若所述共有资源池的资源未超限,则请求所述公共资源池继续执行所述转移的任务的全部或部分工作,若所述公共资源池的资源超限,则结束当前导致所述公共资源池资源超限的任务。

对于已经被移出的工作,如果公共资源池很空闲,被移出的进程或线程将可以继续运行;否则取消这些进程或线程的工作;在原任务资源组有足够资源的时候,将其移回原任务组。如果公共资源池达到资源限制时,那么将其里面比较耗资源的若干进程或线程所在的任务强制停止掉。

进一步地,所述方法还包括:将所述私有资源池当前所处理的任务的全部或部分工作转移至公共资源池后,继续获取所述私有资源池的资源使用状态,若所述私有资源池的资源空闲,则将所述转移的任务的全部或部分工作再转移回所述私有资源池。

进一步地,当私有资源池的资源空闲时,可以直接将所转移的任务的全部或部分工作再转移回所述私有资源池。在优选地实施例中,为避免转移过程中,用户的私有资源池资源申请影响转移工作,也可以在转移过程之前先阻塞用户的私有资源池资源申请,具体地,将所述转移的任务的全部或部分工作再转移回所述私有资源池包括:向资源分配设备请求阻塞用户的私有资源池资源申请;将所述转移的任务的全部或部分工作再转移回所述私有资源池;转移完成后,向所述资源分配设备请求结束阻塞所述私有资源池资源申请。

图2示出根据本申请又一方面提供的一种在资源分配设备端用于资源调度的方法,其中,所述方法包括:

步骤S21:获取用户的私有资源池资源申请,为所述用户分配私有资源池的资源;

步骤S22:基于控制设备的阻塞所述用户的私有资源池资源申请的请求,阻塞用户的私有资源池资源申请;

步骤S23:基于所述控制设备的结束阻塞所述私有资源池资源申请的请求,结束阻塞所述私有资源池资源申请。

在此,通过所述资源管理设备2为用户分配私有资源池的资源,并在控制设备的请求,阻塞私有资源池资源申请,以便控制设备将任务的全部或部分工作转移到共有资源池时,并在转移结束根据控制设备的请求结束阻塞,继续根据用户的资源申请为用户的任务分配私有资源池。

图3示出根据本申请一优选实施例中控制设备与资源分配设备配合实现资源调度的过程示意图。具体地,用户任务在私有资源组中进行,并向资源分配设备申请资源。当某个用户任务达到资源限制时,先让申请资源的请求暂时阻塞住;再将这个任务的若干工作移到公共资源池,从而这个任务的资源使用量就会下降,自动结束阻塞的状态,此任务其他进程或线程将会继续运行,对于用户将会无感知。如果公共资源池也放不下这些进程或线程,那么才将原任务强制结束掉,这样可以保证系统的稳定。对于已经被移出的工作,如果公共资源池很空闲,被移出的进程或线程将可以继续运行;否则取消这些进程或线程的工作;在原任务资源组有足够资源 的时候,将其移回原任务组。如果公共资源池达到资源限制时,那么将其里面比较耗资源的若干进程或线程所在的任务强制停止掉。

图4示出根据本申请再一方面提供的一种用于资源调度的控制设备,其中,所述控制设备1包括:

私有资源池状态获取装置11,用于获取处理任务的私有资源池的资源使用状态;

资源转移装置12,用于若所述私有资源池的资源超限,则将所述私有资源池当前所处理的任务的全部或部分工作转移至公共资源池。

在此,所述控制设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、PDA等,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。本领域技术人员应能理解,其他的触摸控制设备同样适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

本领域技术人员应能理解上述控制设备1仅为举例,其他现有的或今后可能出现的控制设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地或者按照设定的或实时调整的工作模式要求,直至所述设备停止工作。

具体地,任务默认在私有资源池中执行,因此当有任务时,需向资源分配设备发起私有资源池的资源申请,资源分配设备会基于资源申请为任务分配私有资源池。

在此,所述私有资源池可以是一个私有资源设备提供,也可以是包括若干私有资源设备的私有资源设备组提供。所述共有资源池可以是一个共有资源设备提供,也可以是包括若干共有资源设备的共有资源设备组提供,所述私有资源设备或私有资源设备组与所述共有资源设备或共有资源设备组可以是设置在同一网络设备端,也可以设置在不同的网络设备端。

具体地,所述资源转移装置12将当前所处理的任务的全部或部分工作转移至公共资源池的过程,将当前处理的任务中导致所述私有资源池的资源超限的工作转移至所述公共资源池,所述资源转移装置12的资源转移过程包括首先向所述资源分配设备请求阻塞用户的私有资源池资源申请;将所述私有资源池当前所处理的任务的全部或部分工作转移至公共资源池;转移完成后,向所述资源分配设备请求结束阻塞所述私有资源池资源申请。从而当前任务的资源使用量就会下降,自动结束阻塞的状态,此任务其他进程或线程将会继续运行,对于用户将会无感知。

进一步地,所述控制设备还包括:消息发送装置,用于在所述私有资源池的资源超限时,向导致所述私有资源池的资源超限的任务所对应的用户发送当前资源超限消息。向用户发送当前资源超限的消息的时间可以是在资源转移之前,也可以是在所述私有资源池的资源超限的任务转移至公共资源池之后一段时间,用以提示用户发生过资源超限情况,用户可以根据消息提示选择请求扩大相应私有资源池资源的资源容量,避免再次发生资源超限情况。

接着,由公共资源池处理这些任务的工作,包括任务的线程或进程,如果公共资源池也放不下这些进程或线程,才将比较耗资源的若干进程或线程所在的任务强制停止掉强制结束掉,这样可以保证系统的稳定。

此外,根据相应用户的历史资源超限的情况,可以在公共资源池中选择继续处理进程或线程,或者对于导致资源超限次数过多的用户的任务的线程或进程,直接强制结束。

进一步地,所述控制设备1还包括:共有资源池状态获取装置,用于获取所述共有资源池的资源使用状态;共有资源池处理控制装置,用于若所述共有资源池的资源未超限,则请求所述公共资源池继续执行所述转移的任务的全部或部分工作,若所述公共资源池的资源超限,则结束当前导致所述公共资源池资源超限的任务。

对于已经被移出的工作,如果公共资源池很空闲,被移出的进程或线程将可以继续运行;否则取消这些进程或线程的工作;在原任务资源组有足够资源的时候,将其移回原任务组。如果公共资源池达到资源限制时,那么将其里面比较耗资源的若干进程或线程所在的任务强制停止掉。

进一步地,所述控制设备1还包括:资源转回装置,用于在所述转移的任务的全部或部分工作转移至所述公共资源池后,继续获取所述私有资源池的资源使用状态,若所述私有资源池的资源空闲,则将所述转移的任务的全部或部分工作再转移回所述私有资源池。

进一步地,当私有资源池的资源空闲时,可以直接将所转移的任务的全部或部分工作再转移回所述私有资源池。在优选地实施例中,为避免转移过程中,用户的私有资源池资源申请影响转移工作,也可以在转移过程之前先阻塞用户的私有资源池资源申请,具体地,所述资源转回装置将所述转移的任务的全部或部分工作再转移回所述私有资源池包括的过程包括:向资源分配设备请求阻塞用户的私有资源池资源申请;将所述转移的任务的全部或部分工作再转移回所述私有资源池;转移完成后,向所述资源分配设备请求结束阻塞所述私有资源池资源申请。

图5示出根据本申请另一方面提供一种用于资源调度的资源分配设备,其中,所述资源分配设备2包括:

申请获取装置21,用于获取用户的私有资源池资源申请,为所述用户分配私有资源池的资源;

申请阻塞装置22,用于基于控制设备的阻塞所述用户的私有资源池资源申请的请求,阻塞用户的私有资源池资源申请;

申请解阻装置23,用于基于所述控制设备的结束阻塞所述私有资源池资源申请的请求,结束阻塞所述私有资源池资源申请。

在此,所述资源分配设备2可由网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云等实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本领域技术人员应能理解上述网络设备仅为举例,其他现有的或今后可能出现的网络设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。在此,所述网络主机包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。此外,所述资源分配设备2与控制设备1可以在同一网络服务端或位于不同的网络服务端。

本领域技术人员应能理解上述资源分配设备2仅为举例,其他现有的或今后可能出现的资源分配设备2如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地或者按照设定的或实时调整的工作模式要求,直至所述设备停止工作。

通过所述资源管理设备2的申请获取装置21为用户分配私有资源池的资源,并且申请阻塞装置22在控制设备的请求,阻塞私有资源池资源申请,以便控制设备将任务的全部或部分工作转移到共有资源池时,申请解阻装置23在转移结束根据控制设备的请求结束阻塞,申请获取装置21继续根据用户的资源申请为用户的任务分配私有资源池。

具体参考图3,在控制设备与资源分配设备配合实现资源调度的过程中,用户任务在私有资源组中进行,并向资源分配设备申请资源。当某个用户任务达到资源限制时,先让申请资源的请求暂时阻塞住;再将这个任务的若干工作移到公共资源池,从而这个任务的资源使用量就会下降,自动结束阻塞的状态,此任务其他进程或线程将会继续运行,对于用户将会无感知。如果公共资源池也放不下这些进程或线程,那么才将原任务强制结束掉,这样可以保证系统的稳定。对于已经被移出的工作,如果公共资 源池很空闲,被移出的进程或线程将可以继续运行;否则取消这些进程或线程的工作;在原任务资源组有足够资源的时候,将其移回原任务组。如果公共资源池达到资源限制时,那么将其里面比较耗资源的若干进程或线程所在的任务强制停止掉。

与现有技术相比,根据本申请实施例的资源调度的方法和设备,在私有资源池的资源超限时,将所述私有资源池当前所处理的任务的全部或部分工作转移至公共资源池,以能够在资源超限时合理调度资源,以提高云计算的稳定性,并使用户无感知,进而提高用户使用体验。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括 在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1