CN118132260A - 资源调度方法、装置、设备、介质和程序产品 - Google Patents
资源调度方法、装置、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN118132260A CN118132260A CN202410248212.5A CN202410248212A CN118132260A CN 118132260 A CN118132260 A CN 118132260A CN 202410248212 A CN202410248212 A CN 202410248212A CN 118132260 A CN118132260 A CN 118132260A
- Authority
- CN
- China
- Prior art keywords
- resource
- host
- hosts
- target host
- determining
- 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
- 238000012545 processing Methods 0.000 claims abstract description 95
- 230000004044 response Effects 0.000 claims abstract description 7
- 230000005540 biological transmission Effects 0.000 claims description 67
- 230000015654 memory Effects 0.000 claims description 56
- 238000004590 computer program Methods 0.000 claims description 25
- 238000004422 calculation algorithm Methods 0.000 claims description 22
- 238000010276 construction Methods 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Abstract
本公开提供了一种资源调度方法、装置、设备、介质和程序产品,可以应用于计算机技术、金融科技技术领域,该方法包括:响应于任务处理请求,基于任务处理请求包括的目标任务的资源需求量,确定当前资源社区包括的多个主机各自的可用状态,其中,当前资源社区是基于目标任务,在多个资源社区中确定的;基于多个主机各自的可用状态,从多个主机中确定目标主机;以及向与目标主机对应的资源调度器发送任务处理请求包括的任务处理指令和针对目标主机的任务分配指令,以便与目标主机对应的资源调度器根据任务分配指令,向目标主机发送任务处理指令。
Description
技术领域
本公开涉及计算机技术、金融科技技术领域,具体地涉及一种资源调度方法、装置、设备、介质和程序产品。
背景技术
随着计算机技术的发展,使用分布式系统进行资源调度越来越普遍。现有的分布式系统资源调度方式通常是,由单体调度器负责分布式系统中全部的资源分配与任务调度。
在实施本公开的过程中,发明人发现,在单体调度中,调度器承担了全部的任务,并且容易到达性能瓶颈,一旦单体调度器出现故障,整个系统的资源调度都会瘫痪。
发明内容
鉴于上述问题,本公开提供了资源调度方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种资源调度方法,包括:响应于任务处理请求,基于任务处理请求包括的目标任务的资源需求量,确定当前资源社区包括的多个主机各自的可用状态,其中,当前资源社区是基于目标任务,在多个资源社区中确定的;基于多个主机各自的可用状态,从多个主机中确定目标主机;以及向与目标主机对应的资源调度器发送任务处理请求包括的任务处理指令和针对目标主机的任务分配指令,以便与目标主机对应的资源调度器根据任务分配指令,向目标主机发送任务处理指令。
根据本公开的实施例,多个资源社区是按照以下步骤确定的:获取分布式系统内多个主机各自的主机信息,其中,主机信息包括多个主机各自的主机内存和传输速率;根据主机信息,确定主机分布图,其中,主机分布图中的节点属性包括主机内存,边权重包括传输速率;基于主机分布图,利用社区构建算法,将分布式系统划分为多个资源社区。
根据本公开的实施例,基于多个主机各自的可用状态,从多个主机中确定目标主机,包括:在多个主机中确定可用主机;确定可用主机的第一可用内存;以及在可用主机中确定目标主机,其中,目标主机为第一可用内存最小的可用主机。
根据本公开的实施例,向与目标主机对应的资源调度器发送任务处理请求包括的任务处理指令和针对目标主机的任务分配指令,包括:根据多个主机与资源调度器的对应关系,确定与目标主机对应的资源调度器;向与目标主机对应的资源调度器发送任务处理指令和任务分配指令;在与目标主机对应的资源调度器与目标主机之间的传输路径可用的情况下,将传输路径确定为传输通道;在与目标主机对应的资源调度器与目标主机之间的传输路径不可用的情况下,基于多个主机各自的传输速率,利用最短路径算法确定传输通道;以及控制资源调度器基于传输通道,向目标主机发送任务处理指令。
根据本公开的实施例,资源调度方法还包括:在多个主机各自的可用状态均为不可用的情况下,从其他资源社区的多个主机中确定外部目标主机;以及向与外部目标主机对应的其他资源社区发送任务处理指令和任务分配指令。
根据本公开的实施例,在多个主机各自的可用状态均为不可用的情况下,从其他资源社区的多个主机中确定外部目标主机,包括:在多个主机各自的可用状态均为不可用的情况下,获取其他资源社区的多个主机的可用状态;根据其他资源社区的多个主机的可用状态,在其他资源社区的多个主机中确定外部可用主机;确定外部可用主机的第二可用内存;以及在外部可用主机中确定外部目标主机,其中,外部目标主机为第二可用内存最小的外部可用主机。
根据本公开的实施例,基于主机分布图,利用社区构建算法,将分布式系统划分为多个资源社区,包括:重复以下操作直至多个临时社区不发生变化:将主机分布图划分为多个临时社区,每个临时社区对应于主机分布图中的一个主机;基于主机分布图中的当前节点的节点属性,确定将当前节点和与当前节点相邻的邻居节点合并的增益度;在增益度大于增益阈值的情况下,将当前节点与邻居节点合并,更新临时社区;在增益度小于增益阈值的情况下,不更新临时社区;将多个临时社区确定为多个资源社区。
本公开的第二方面提供了一种资源调度装置,包括:
状态确定模块,用于响应于任务处理请求,基于任务处理请求包括的目标任务的资源需求量,确定当前资源社区包括的多个主机各自的可用状态,其中,当前资源社区是基于目标任务,在多个资源社区中确定的;
主机确定模块,用于基于多个主机各自的可用状态,从多个主机中确定目标主机;以及
指令发送模块,用于向与目标主机对应的资源调度器发送任务处理请求包括的任务处理指令和针对目标主机的任务分配指令,以便与目标主机对应的资源调度器根据任务分配指令,向目标主机发送任务处理指令。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述资源调度方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述资源调度方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述资源调度方法。
根据本公开的实施例,根据分配到当前资源社区的任务处理请求,确定当前资源社区中的多个主机各自的可用状态,从而确定用于执行任务处理请求的目标主机,生成任务分配指令,并由资源计算处理器将任务分配指令发送至与目标主机对应的资源调度器,以便资源调度器根据任务分配指令向目标主机发送任务处理指令。通过设置资源计算处理器和资源调度器,将当前资源社区内的中心式调度转化为双层调度。对资源计算处理器而言,仅在确定目标主机后,对当前资源社区内的多个资源调度器进行指令转发,无需将任务处理请求下发至具体的目标主机,因此减少了指令转发的地址,提高了资源调度效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的资源调度方法、装置、设备、介质和程序产品的应用场景图;
图2示意性示出了根据本公开实施例的资源调度方法的流程图;
图3示意性示出了根据本公开实施例的资源调度方法的当前资源社区的结构图;
图4示意性示出了根据本公开实施例的资源调度方法多个资源社区的结构图;
图5示意性示出了根据本公开实施例的资源调度装置的结构框图;以及
图6示意性示出了根据本公开实施例的适于实现资源调度方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本发明的技术方案中,所涉及的用户信息(包括但不限于用户个人信息、用户图像信息、用户设备信息,例如位置信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、存储、使用、加工、传输、提供、公开和应用等处理,均遵守相关法律法规和标准,采取了必要保密措施,不违背公序良俗,并提供有相应的操作入口,供用户选择授权或者拒绝。
在利用个人信息进行自动化决策的场景下,本发明实施例提供的方法、设备和系统均为用户提供相应的操作入口,供用户选择同意或者拒绝自动化决策结果;若用户选择拒绝,则进入专家决策流程。此处的表述“自动化决策”是指通过计算机程序自动分析、评估个人的行为习惯、兴趣爱好或者经济、健康、信用状况等,并进行决策的活动。此处的表述“专家决策”是指专门从事某一领域的工作、具有专门的经验、知识和技能并达到一定的专业水平的人员进行决策的活动。
现有技术中,还存在通过两层调度器进行资源分配与任务调度的方式,其中,一层调度器负责资源的管理与分配,另外一层包括多个调度器,每个调度器管理分布式系统中的部分资源分配与任务调度,相较于单体调度,两层调度拥有更高的灵活性和扩展性,两层调度框架将资源的管理和任务的分配分层管理。但两层调度的第二层只能获得局部资源视图,无法实现全局最优调度。
本公开的实施例提供了一种资源调度方法,包括:响应于任务处理请求,基于任务处理请求包括的目标任务的资源需求量,确定当前资源社区包括的多个主机各自的可用状态,其中,当前资源社区是基于目标任务,在多个资源社区中确定的;基于多个主机各自的可用状态,从多个主机中确定目标主机;以及向与目标主机对应的资源调度器发送任务处理请求包括的任务处理指令和针对目标主机的任务分配指令,以便与目标主机对应的资源调度器根据任务分配指令,向目标主机发送任务处理指令。
图1示意性示出了根据本公开实施例的资源调度方法、装置、设备、介质和程序产品的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103、网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的资源调度方法一般可以由服务器105执行。相应地,本公开实施例所提供的资源调度装置一般可以设置于服务器105中。本公开实施例所提供的资源调度方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的资源调度装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图4对公开实施例的资源调度方法进行详细描述。
图2示意性示出了根据本公开实施例的资源调度方法的流程图。
如图2所示,该实施例的资源调度方法包括操作S210~操作S230。
在操作S210,响应于任务处理请求,基于任务处理请求包括的目标任务的资源需求量,确定当前资源社区包括的多个主机各自的可用状态,其中,当前资源社区是基于目标任务,在多个资源社区中确定的。
在操作S220,基于多个主机各自的可用状态,从多个主机中确定目标主机。
在操作S230,向与目标主机对应的资源调度器发送任务处理请求包括的任务处理指令和针对目标主机的任务分配指令,以便与目标主机对应的资源调度器根据任务分配指令,向目标主机发送任务处理指令。
根据本公开的实施例,在存在待执行的目标任务的情况下,资源计算处理器接收到任务处理请求,其中,任务处理请求包括执行目标任务需要的资源需求量等信息。基于资源需求量,确定当前资源社区包括的多个主机各自的可用状态,其中,内存状态满足资源需求量的主机的可用状态为可用。当前资源社区中存在多个主机、一个资源计算处理器和多个资源调度器,其中,每个资源调度器存储有部分主机的地址,可以向其存储的该部分主机转发任务处理指令,每个主机仅受到一个资源调度器的管理,资源计算处理器存储有多个主机各自的资源情况以及各个资源调度器与多个主机的对应关系。
根据本公开的实施例,基于多个主机各自的可用状态,从多个主机中选择内存状态满足资源需求量的主机,再从内存状态满足资源需求量的主机中,确定用于执行与任务处理请求对应的目标任务的目标主机。
根据本公开的实施例,在确定目标主机后,资源计算处理器确定与目标主机对应的目标资源调度器,将任务处理请求包括的任务处理指令和针对目标主机的任务分配指令发送至目标资源调度器,其中,任务分配指令包括任务处理指令的标识和目标主机的地址,目标资源调度器根据目标主机的地址,将对应的任务处理指令发送至目标主机。
根据本公开的实施例,根据分配到当前资源社区的任务处理请求,确定当前资源社区中的多个主机各自的可用状态,从而确定用于执行任务处理请求的目标主机,生成任务分配指令,并由资源计算处理器将任务分配指令发送至与目标主机对应的资源调度器,以便资源调度器根据任务分配指令向目标主机发送任务处理指令。通过设置资源计算处理器和资源调度器,将当前资源社区内的中心式调度转化为双层调度。对资源计算处理器而言,仅在确定目标主机后,对当前资源社区内的多个资源调度器进行指令转发,无需将任务处理请求下发至具体的目标主机,因此减少了指令转发的地址,提高了资源调度效率。
根据本公开的实施例,多个资源社区是按照以下步骤确定的:获取分布式系统内多个主机各自的主机信息,其中,主机信息包括多个主机各自的主机内存和传输速率;根据主机信息,确定主机分布图,其中,主机分布图中的节点属性包括主机内存,边权重包括传输速率;基于主机分布图,利用社区构建算法,将分布式系统划分为多个资源社区。
根据本公开的实施例,获取分布式系统内多个主机各自的主机内存和传输速率等主机信息,将主机抽象成节点,构建主机分布图,其中,主机分布图中的节点属性包括主机内存,边用于表征主机间的信息传输,边权重为主机间的传输速率。
根据本公开的实施例,基于主机分布图,利用鲁汶(Louvain)等社区构建算法,将分布式系统划分为多个资源社区,其中,社区构建算法需要确保划分完成的资源社区之间耦合度低,资源社区内部的内聚度高。
根据本公开的实施例,通过社区构建算法,将分布式系统划分为多个资源社区,简化了系统结构。同时由于各个资源社区内部高内聚,各个资源社区之间低耦合,能够使得资源社区内部的资源调度更高效。
根据本公开的实施例,基于多个主机各自的可用状态,从多个主机中确定目标主机,包括:在多个主机中确定可用主机;确定可用主机的第一可用内存;以及在可用主机中确定目标主机,其中,目标主机为第一可用内存最小的可用主机。
根据本公开的实施例,从多个主机中确定可用性表征当前主机的内存状态满足资源需求量的主机,作为可用主机。在仅存在一个可用主机的情况下,将可用主机确定为目标主机;在存在多个可用主机的情况下,确定多个可用主机各自的第一可用内存,其中,第一可用内存为可用主机当前能够用于执行目标任务的可用内存量,将第一可用内存最小的可用主机确定为目标主机。
根据本公开的实施例,将内存状态满足资源需求量的主机确定为可用主机,能够确保可用主机满足执行任务处理请求对应的目标任务的要求,从而确保目标任务能够正常执行。从多个可用主机中,将第一可用内存最小的可用主机确定为目标主机,能够提高资源利用率,避免使用可用内存较大的可用主机执行目标任务后,其他主机无法执行内存需求量更高的其他任务处理请求的问题,确保分布式系统的正常运行。
根据本公开的实施例,向与目标主机对应的资源调度器发送任务处理请求包括的任务处理指令和针对目标主机的任务分配指令,包括:根据多个主机与资源调度器的对应关系,确定与目标主机对应的资源调度器;向与目标主机对应的资源调度器发送任务处理指令和任务分配指令;在与目标主机对应的资源调度器与目标主机之间的传输路径可用的情况下,将传输路径确定为传输通道;在与目标主机对应的资源调度器与目标主机之间的传输路径不可用的情况下,基于多个主机各自的传输速率,利用最短路径算法确定传输通道;以及控制资源调度器基于传输通道,向目标主机发送任务处理指令。
根据本公开的实施例,根据多个主机与资源调度器的对应关系,确定与目标主机对应的资源调度器,将任务处理指令和任务分配指令发送至该资源调度器。资源调度器根据任务分配执行,确定用于执行目标任务的主机,并判断资源调度器与目标主机之间的传输路径是否可用,其中,在资源调度器与目标主机之间的传输路径空闲的情况下,传输路径可用。在资源调度器与目标主机之间的传输路径被其他任务占用的情况下,传输路径不可用。
根据本公开的实施例,在传输路径可用的情况下,将传输路径确定为传输通道。在传输路径不可用的情况下,将多个主机的传输速率的倒数作为边的权重,利用迪杰斯特拉算法或弗洛伊德算法等最短路径算法,寻找最短路径作为传输通道。控制资源调度器基于传输通道,将任务处理指令发送至目标主机,以便目标主机根据任务处理指令执行目标任务。
根据本公开的实施例,在传输路径不可用的情况下,还可以等待直至传输路径可用,并将传输路径确定为传输通道,控制资源调度器基于传输通道,将任务处理指令发送至目标主机。
根据本公开的实施例,在传输路径被占用等不可用的情况下,使用最短路径算法确定传输通道,其中,由于变权重为传输速率的倒数,因此最短路径算法寻得的最优路径为传输速率最高的路径,将该路径作为传输通道,能够确保任务处理请求尽快被响应,提高分布式系统的任务处理效率。
根据本公开的实施例,资源调度方法还包括:将任务处理指令发送至目标主机后,资源调度器向资源计算处理器发送提醒,资源计算处理器根据接收到的提醒,更新目标主机的资源情况。
图3示意性示出了根据本公开实施例的资源调度方法的当前资源社区的结构图。
如图3所示,该当前资源社区1包括一个资源计算处理器和N个资源调度器,每个资源调度器管理资源社区1中的多个处理器,资源计算处理器中存储有多个主机各自的资源情况、N个资源调度器各自的地址和每个资源调度器与其管理的多个主机的对应关系。其中,多个处理器之间可以互相通信连接。
根据本公开的实施例,资源计算处理器接收到目标任务的任务处理请求,根据多个主机各自的资源情况和任务处理请求,确定用于执行目标任务的目标主机,并生成任务分配指令。基于每个资源调度器与其管理的多个主机的对应关系,确定与目标主机对应的资源调度器。将任务分配指令发送至资源调度器。资源调度器根据任务分配指令,将任务处理请求发送至目标主机,以使得目标主机根据任务分配指令执行目标任务。
根据本公开的实施例,资源调度方法还包括:在多个主机各自的可用状态均为不可用的情况下,从其他资源社区的多个主机中确定外部目标主机;以及向与外部目标主机对应的其他资源社区发送任务处理指令和任务分配指令。
根据本公开的实施例,资源计算处理器还存储有分布式系统中其他资源社区的多个主机各自的资源情况。在当前资源社区的多个主机各自的可用状态均为不可用的情况下,表征当前资源社区中没有能够执行目标任务的主机,资源计算处理器根据其他资源社区的多个主机各自的资源情况,确定能够用于执行目标任务的外部目标主机。并将任务处理指令和任务分配指令发送至外部目标主机对应的其他资源社区的资源计算处理器,以便其他资源社区的资源计算处理器根据任务分配指令,将任务处理指令转发至外部目标主机。
根据本公开的实施例,在多个主机各自的可用状态均为不可用的情况下,从其他资源社区的多个主机中确定外部目标主机,包括:在多个主机各自的可用状态均为不可用的情况下,获取其他资源社区的多个主机的可用状态;根据其他资源社区的多个主机的可用状态,在其他资源社区的多个主机中确定外部可用主机;确定外部可用主机的第二可用内存;以及在外部可用主机中确定外部目标主机,其中,外部目标主机为第二可用内存最小的外部可用主机。
根据本公开的实施例,在当前资源社区的多个主机各自的可用状态均为不可用的情况下,根据其他资源社区的多个主机各自的资源情况,获取其他资源社区的多个主机的可用状态。将其他资源社区的多个主机中可用状态为可用的主机确定为外部可用主机,在仅存在一个外部可用主机的情况下,将外部可用主机确定为外部目标主机;在存在多个外部可用主机的情况下,确定多个外部可用主机各自的第二可用内存,其中,第二可用内存为外部可用主机当前能够用于执行目标任务的可用内存量,将第二可用内存最小的外部可用主机确定为外部目标主机。
根据本公开的实施例,在当前资源社区内的多个主机的可用状态均为不可用的情况下,根据其他资源社区的多个主机各自的资源情况,利用与在当前资源社区中确定目标主机相同的方法,确定其他资源社区中用于执行任务处理请求的外部目标主机。以确保任务处理请求尽快被响应,避免任务队列堵塞。
根据本公开的实施例,资源调度方法还包括:当前资源社区的资源计算处理器完成对主机的资源情况的更新后,将更新结果转发至其他资源社区的资源计算处理器,以确保分布式系统重的所有资源计算处理器存储的主机的资源情况的时效性,避免由于资源情况更新不及时导致的资源调度失败。
图4示意性示出了根据本公开实施例的资源调度方法多个资源社区的结构图。
如图4所示,分布式系统被划分为多个资源社区,以资源社区2和资源社区3为例,资源社区2中的资源计算处理器2和资源社区3中的资源计算处理器3共享对方的资源社区中多个主机各自的资源情况。通过各个资源社区的资源计算处理器之间两两相连,确保每个资源计算处理器能够获取分布式系统中全部主机各自的资源情况。
在当前资源社区内的多个主机的可用状态均为不可用的情况下,根据其他资源社区的多个主机各自的资源情况,利用与在当前资源社区中确定目标主机相同的方法,确定其他资源社区中用于执行任务处理请求的外部目标主机。并将任务分配指令和任务处理指令发送至外部目标主机所属的资源社区的资源计算处理器。由该资源社区的资源计算处理器在该资源社区内部根据任务分配指令进行资源调度。
根据本公开的实施例,基于主机分布图,利用社区构建算法,将分布式系统划分为多个资源社区,包括:重复以下操作直至多个临时社区不发生变化:将主机分布图划分为多个临时社区,每个临时社区对应于主机分布图中的一个主机;基于主机分布图中的当前节点的节点属性,确定将当前节点和与当前节点相邻的邻居节点合并的增益度;在增益度大于增益阈值的情况下,将当前节点与邻居节点合并,更新临时社区;在增益度小于增益阈值的情况下,不更新临时社区;将多个临时社区确定为多个资源社区。
根据本公开的实施例,分布式系统和图结构具有天然的契合性,能够很容易抽象成图数据结构,分布式系统中的主机对应图结构中的节点信息,用于存储各主机资源信息。各主机间的网络结构构成图结构的边。在分布式系统中,各主机之间两两互联,因此构建的图结构为完全图,但由于各主机之间的网络传输通道带宽和速率不同,因此,仅从分布式系统的结构能够构建出带权完全图结构。
根据本公开的实施例,在执行资源调度方法前,按照以下操作,利用社区构建算法将分布式系统划分为多个资源社区:根据主机分布图中的多个主机,将主机分布图划分为多个临时社区,其中每个临时社区对应于主机分布图中的一个主机。基于主机分布图中的当前节点的节点属性和边权重,确定将当前节点和与当前节点相邻的邻居节点合并的增益度,其中,可以根据Louvain算法的增益度计算公式计算增益度。在增益度大于预设的增益阈值的情况下,表征将当前节点和邻居节点合并后的社区划分方式优于当前社区划分方式,因此将当前节点和邻居节点合并,并更新临时社区。在增益度小于预设的增益阈值的情况下,表征当前节点和邻居节点合并后的社区划分方式差于当前社区划分方式,例如,将邻居节点加入当前节点所在社区后,社区的内聚度下降,因此,不更新临时社区。
根据本公开的实施例,在任意两个临时社区合并后的增益度都小于增益阈值的情况下,临时社区不会再发生更新,将当前的多个临时社区确定为多个资源社区,完成分布式系统的划分。
根据本公开的实施例,利用社区构建算法,将分布式系统划分为多个资源社区,通过合并后的增益度与增益度阈值的比较结果,确保各个资源社区内部的高内聚度和资源社区之间的低耦合度,简化了系统结构,提高了资源调度的效率。
基于上述资源调度方法,本公开还提供了一种资源调度装置。以下将结合图5对该装置进行详细描述。
图5示意性示出了根据本公开实施例的资源调度装置的结构框图。
如图5所示,该实施例的资源调度装置500包括状态确定模块510、主机确定模块520和指令发送模块530。
状态确定模块510用于响应于任务处理请求,基于任务处理请求包括的目标任务的资源需求量,确定当前资源社区包括的多个主机各自的可用状态,其中,当前资源社区是基于目标任务,在多个资源社区中确定的。在一实施例中,状态确定模块510可以用于执行前文描述的操作S210,在此不再赘述。
主机确定模块520用于基于多个主机各自的可用状态,从多个主机中确定目标主机。在一实施例中,主机确定模块520可以用于执行前文描述的操作S220,在此不再赘述。
指令发送模块530用于向与目标主机对应的资源调度器发送任务处理请求包括的任务处理指令和针对目标主机的任务分配指令,以便与目标主机对应的资源调度器根据任务分配指令,向目标主机发送任务处理指令。在一实施例中,指令发送模块530可以用于执行前文描述的操作S230,在此不再赘述。
根据本公开的实施例,资源调度装置500还包括信息获取模块、分布图确定模块和社区构建模块。
信息获取模块,用于获取分布式系统内多个主机各自的主机信息,其中,主机信息包括多个主机各自的主机内存和传输速率。
分布图确定模块,用于根据主机信息,确定主机分布图,其中,主机分布图中的节点属性包括主机内存,边权重包括传输速率。
社区构建模块,用于基于主机分布图,利用社区构建算法,将分布式系统划分为多个资源社区。
根据本公开的实施例,主机确定模块520包括可用主机确定单元、第一内存确定单元和主机确定单元。
可用主机确定单元,用于在多个主机中确定可用主机。
第一内存确定单元,用于确定可用主机的第一可用内存。
主机确定单元,用于在可用主机中确定目标主机,其中,目标主机为第一可用内存最小的可用主机。
根据本公开的实施例,指令发送模块530包括调度器确定单元、指令发送单元、通道确定单元、通道选择单元和指令转发单元。
调度器确定单元,用于根据多个主机与资源调度器的对应关系,确定与目标主机对应的资源调度器。
指令发送单元,用于向与目标主机对应的资源调度器发送任务处理指令和任务分配指令。
通道确定单元,用于在与目标主机对应的资源调度器与目标主机之间的传输路径可用的情况下,将传输路径确定为传输通道。
通道选择单元,用于在与目标主机对应的资源调度器与目标主机之间的传输路径不可用的情况下,基于多个主机各自的传输速率,利用最短路径算法确定传输通道。
指令转发单元,用于控制资源调度器基于传输通道,向目标主机发送任务处理指令。
根据本公开的实施例,资源调度装置500还包括外部主机确定模块和指令转发模块。
外部主机确定模块,用于在多个主机各自的可用状态均为不可用的情况下,从其他资源社区的多个主机中确定外部目标主机。
指令转发模块,用于向与外部目标主机对应的其他资源社区发送任务处理指令和任务分配指令。
根据本公开的实施例,外部主机确定模块包括状态确定单元、外部可用主机确定单元、第二内存确定单元和外部主机确定单元。
状态确定单元,用于在多个主机各自的可用状态均为不可用的情况下,获取其他资源社区的多个主机的可用状态。
外部可用主机确定单元,用于根据其他资源社区的多个主机的可用状态,在其他资源社区的多个主机中确定外部可用主机。
第二内存确定单元,用于确定外部可用主机的第二可用内存。
外部主机确定单元,用于在外部可用主机中确定外部目标主机,其中,外部目标主机为第二可用内存最小的外部可用主机。
根据本公开的实施例,社区构建模块包括临时社区划分单元、增益度计算单元、临时社区更新单元、临时社区保持单元和社区确定单元。
临时社区划分单元,用于将主机分布图划分为多个临时社区,每个临时社区对应于主机分布图中的一个主机。
增益度计算单元,用于基于主机分布图中的当前节点的节点属性,确定将当前节点和与当前节点相邻的邻居节点合并的增益度。
临时社区更新单元,用于在增益度大于增益阈值的情况下,将当前节点与邻居节点合并,更新临时社区。
临时社区保持单元,用于在增益度小于增益阈值的情况下,不更新临时社区。
社区确定单元,用于将多个临时社区确定为多个资源社区。
根据本公开的实施例,状态确定模块510、主机确定模块520和指令发送模块530中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,状态确定模块510、主机确定模块520和指令发送模块530中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,状态确定模块510、主机确定模块520和指令发送模块530中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现资源调度方法的电子设备的方框图。
如图6所示,根据本公开实施例的电子设备600包括处理器601,其可以根据存储在只读存储器ROM602中的程序或者从存储部分608加载到随机访问存储器RAM603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 603中,存储有电子设备600操作所需的各种程序和数据。处理器601、ROM602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 602和RAM 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。电子设备600还可以包括连接至输入/输出(I/O)接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至输入/输出(I/O)接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例的方法。
在该计算机程序被处理器601执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分609被下载和安装,和/或从可拆卸介质611被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种资源调度方法,其特征在于,所述方法包括:
响应于任务处理请求,基于所述任务处理请求包括的目标任务的资源需求量,确定当前资源社区包括的多个主机各自的可用状态,其中,所述当前资源社区是基于所述目标任务,在多个资源社区中确定的;
基于所述多个主机各自的可用状态,从所述多个主机中确定目标主机;以及
向与所述目标主机对应的资源调度器发送所述任务处理请求包括的任务处理指令和针对所述目标主机的任务分配指令,以便与所述目标主机对应的资源调度器根据所述任务分配指令,向所述目标主机发送所述任务处理指令。
2.根据权利要求1所述的方法,其特征在于,所述多个资源社区是按照以下步骤确定的:
获取所述分布式系统内所述多个主机各自的所述主机信息,其中,所述主机信息包括多个主机各自的主机内存和传输速率;
根据所述主机信息,确定主机分布图,其中,所述主机分布图中的节点属性包括所述主机内存,边权重包括所述传输速率;以及
基于所述主机分布图,利用社区构建算法,将所述分布式系统划分为所述多个资源社区。
3.根据权利要求1所述的方法,其特征在于,所述基于所述多个主机各自的可用状态,从所述多个主机中确定目标主机,包括:
在所述多个主机中确定可用主机;
确定所述可用主机的第一可用内存;以及
在所述可用主机中确定所述目标主机,其中,所述目标主机为所述第一可用内存最小的所述可用主机。
4.根据权利要求2所述的方法,其特征在于,所述向与所述目标主机对应的资源调度器发送所述任务处理请求包括的任务处理指令和针对所述目标主机的任务分配指令,包括:
根据所述多个主机与资源调度器的对应关系,确定与所述目标主机对应的资源调度器;
向与所述目标主机对应的资源调度器发送所述任务处理指令和所述任务分配指令;
在与所述目标主机对应的资源调度器与所述目标主机之间的传输路径可用的情况下,将所述传输路径确定为传输通道;
在与所述目标主机对应的资源调度器与所述目标主机之间的传输路径不可用的情况下,基于所述多个主机各自的所述传输速率,利用最短路径算法确定所述传输通道;以及
控制所述资源调度器基于所述传输通道,向所述目标主机发送所述任务处理指令。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述多个主机各自的可用状态均为不可用的情况下,从其他资源社区的多个主机中确定外部目标主机;以及
向与所述外部目标主机对应的所述其他资源社区发送所述任务处理指令和所述任务分配指令。
6.根据权利要求5所述的方法,其特征在于,所述在所述多个主机各自的可用状态均为不可用的情况下,从其他资源社区的多个主机中确定外部目标主机,包括:
在所述多个主机各自的可用状态均为不可用的情况下,获取所述其他资源社区的多个主机的可用状态;
根据所述其他资源社区的多个主机的可用状态,在所述其他资源社区的多个主机中确定所述外部可用主机;
确定所述外部可用主机的第二可用内存;以及
在所述外部可用主机中确定所述外部目标主机,其中,所述外部目标主机为所述第二可用内存最小的所述外部可用主机。
7.根据权利要求2所述的方法,其特征在于,基于所述主机分布图,利用社区构建算法,将所述分布式系统划分为所述多个资源社区,包括:
重复以下操作直至多个临时社区不发生变化:
将所述主机分布图划分为多个临时社区,每个所述临时社区对应于所述主机分布图中的一个所述主机;
基于所述主机分布图中的当前节点的所述节点属性,确定将所述当前节点和与所述当前节点相邻的邻居节点合并的增益度;
在所述增益度大于增益阈值的情况下,将所述当前节点与所述邻居节点合并,更新所述临时社区;
在所述增益度小于所述增益阈值的情况下,不更新所述临时社区;以及
将所述多个临时社区确定为所述多个资源社区。
8.一种资源调度装置,其特征在于,所述装置包括:
状态确定模块,用于响应于任务处理请求,基于所述任务处理请求包括的目标任务的资源需求量,确定当前资源社区包括的多个主机各自的可用状态,其中,所述当前资源社区是基于所述目标任务,在多个资源社区中确定的;
主机确定模块,用于基于所述多个主机各自的可用状态,从所述多个主机中确定目标主机;以及
指令发送模块,用于向与所述目标主机对应的资源调度器发送所述任务处理请求包括的任务处理指令和针对所述目标主机的任务分配指令,以便与所述目标主机对应的资源调度器根据所述任务分配指令,向所述目标主机发送所述任务处理指令。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个计算机程序,
其特征在于,所述一个或多个处理器执行所述一个或多个计算机程序以实现根据权利要求1~7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现根据权利要求1~7中任一项所述方法的步骤。
11.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序被处理器执行时实现根据权利要求1~7中任一项所述方法的步骤。
Publications (1)
Publication Number | Publication Date |
---|---|
CN118132260A true CN118132260A (zh) | 2024-06-04 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11842208B2 (en) | Virtual provisioning with implementation resource boundary awareness | |
US10834140B1 (en) | Public service network job processing | |
US10013662B2 (en) | Virtual resource cost tracking with dedicated implementation resources | |
CN109600798B (zh) | 一种网络切片中多域资源分配方法及装置 | |
CN110516984B (zh) | 用于生成配送路径信息的方法和装置 | |
CN109743202B (zh) | 数据的管理方法、装置、设备及可读存储介质 | |
CN112600761A (zh) | 一种资源分配的方法、装置及存储介质 | |
US20140129598A1 (en) | Dynamic management of log persistence | |
CN111044062B (zh) | 路径规划、推荐方法和装置 | |
Kar et al. | Cost optimization of omnidirectional offloading in two-tier cloud–edge federated systems | |
CN112860421B (zh) | 用于作业处理的方法、设备和计算机程序产品 | |
Kaur et al. | Real‐time trust aware scheduling in fog‐cloud systems | |
CN118132260A (zh) | 资源调度方法、装置、设备、介质和程序产品 | |
US20230196182A1 (en) | Database resource management using predictive models | |
Huang et al. | A new approach for service migration in cloud‐based e‐commerce using an optimization algorithm | |
US10652308B2 (en) | Cognitive storage management for a mobile computing device | |
CN112860422B (zh) | 用于作业处理的方法、设备和计算机程序产品 | |
CN114429403A (zh) | 在误报内容减轻方面在社交网络和付费策展内容制作者之间调解 | |
Hsu et al. | Effective memory reusability based on user distributions in a cloud architecture to support manufacturing ubiquitous computing | |
CN114020469A (zh) | 基于边缘节点的多任务学习方法、装置、介质与设备 | |
CN114760360A (zh) | 请求响应方法、装置、电子设备及计算机可读存储介质 | |
CN114816736A (zh) | 业务处理方法、装置、设备和介质 | |
US11977922B2 (en) | Resource reuse for pipeline workloads | |
US11500399B2 (en) | Adjustable control of fluid processing networks based on proportions of server effort | |
CN114745316B (zh) | 路由方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |