资源调度方法、装置、电子设备及存储介质与流程

文档序号:31877391发布日期:2022-10-21 22:06阅读:34来源:国知局
资源调度方法、装置、电子设备及存储介质与流程

1.本发明涉及云网络的资源调度处理技术,尤其涉及资源调度方法、装置、电子设备及存储介质。


背景技术:

2.随着计算机技术的不断发展,云服务器(cvm cloud virtual machine)可以提供安全可靠的弹性计算服务,还可以提供不同的实例类型来满足用户特定的使用场景。这些实例类型由cpu、内存、存储和网络组成不同的组合,当云服务器的运行过程进行资源调度时,资源调度的速度直接影响云数据中心的资源利用率和用户体验。调度优先保障的是用户可以分配到资源,然后是如何最优的分配资源,即提高资源利用率。相关技术的调度算法,包括binpack算法,其缺陷在于没有考虑多类优先级任务的场景。在此类场景下使用,会导致更高优先级的任务资源碎片化;重调度算法,缺陷在于需要将已运行的任务杀死再启动,对任务有影响,并且无法重启的任务不能使用该方法;虚拟化/池化技术,缺陷在于影响任务的运行速度;预测任务的结束时间,缺陷在于往往难以获得较高的准确率,进而无法实际使用。


技术实现要素:

3.有鉴于此,本发明实施例提供一种资源调度方法、装置、电子设备及存储介质,能够基于集群资源中的资源碎片率,灵活确定与集群资源相匹配的资源调度模式,通过强制高低优亲和模式和温和高低优亲和模式既能够减少集群资源中的资源碎片率,使得资源的利用效率提升,又能够保证高优先级任务的及时处理,保证云服务器用户的数据处理速度,提高用户的使用体验。
4.本发明实施例的技术方案是这样实现的:
5.本发明实施例提供了一种资源调度方法,所述方法包括:
6.接收待处理任务,并将所述待处理任务提交至集群资源管理器;
7.通过所述集群资源管理器,确定集群资源中的资源碎片率;
8.基于所述集群资源中的资源碎片率,确定与所述集群资源相匹配的资源调度模式,其中,所述资源调度模式包括:强制高低优亲和模式和温和高低优亲和模式;
9.响应于与所述集群资源相匹配的资源调度模式,根据所述待处理任务的优先级对待处理任务配置相应的集群资源。
10.本发明实施例还提供了一种资源调度装置,包括:
11.信息传输模块,用于接收待处理任务,并将所述待处理任务提交至集群资源管理器;
12.信息处理模块,用于通过所述集群资源管理器,确定集群资源中的资源碎片率;
13.所述信息处理模块,用于基于所述集群资源中的资源碎片率,确定与所述集群资源相匹配的资源调度模式,其中,所述资源调度模式包括:强制高低优亲和模式和温和高低
优亲和模式;
14.所述信息处理模块,用于响应于与所述集群资源相匹配的资源调度模式,根据所述待处理任务的优先级对待处理任务配置相应的集群资源。
15.本发明实施例还提供了一种电子设备,所述电子设备包括:
16.存储器,用于存储可执行指令;
17.处理器,用于运行所述存储器存储的可执行指令时,实现前序的资源调度方法。
18.本发明实施例还提供了一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时实现前序的资源调度方法。
19.本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例所提供的资源调度方法。
20.本发明实施例具有以下有益效果:
21.本发明实施例通过接收待处理任务,并将所述待处理任务提交至集群资源管理器;通过所述集群资源管理器,确定集群资源中的资源碎片率;基于所述集群资源中的资源碎片率,确定与所述集群资源相匹配的资源调度模式,其中,所述资源调度模式包括:强制高低优亲和模式和温和高低优亲和模式;响应于与所述集群资源相匹配的资源调度模式,根据所述待处理任务的优先级对待处理任务配置相应的集群资源。由此可以基于集群资源中的资源碎片率,灵活确定与集群资源相匹配的资源调度模式,通过强制高低优亲和模式和温和高低优亲和模式既能够减少集群资源中的资源碎片率,使得资源的利用效率提升,又能够保证高优先级任务的及时处理,保证云服务器用户的数据处理速度,提高用户的使用体验。
附图说明
22.图1为本发明实施例提供的资源调度方法的使用场景示意图;
23.图2为本发明实施例提供的资源调度装置的组成结构示意图;
24.图3为本发明实施例提供的资源调度方法一个可选的流程示意图;
25.图4为本发明实施例提供的资源调度方法一个可选的流程示意图;
26.图5为本发明实施例中一个资源调度方法的测试过程示意图;
27.图6为本发明实施例提供的资源调度方法一个可选的流程示意图。
具体实施方式
28.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
29.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
30.对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语
进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
31.1)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
32.2)终端,包括但不限于:普通终端、专用终端,其中所述普通终端与发送通道保持长连接和/或短连接,所述专用终端与所述发送通道保持长连接。
33.3)客户端,终端中实现特定功能的载体,例如移动客户端(app)是移动终端中特定功能的载体,例如执行报表制作的功能或者进行报表展示的功能。
34.4)组件(component),是小程序的视图的功能模块,也称为前端组件,页面中的按钮、标题、表格、侧边栏、内容和页脚等,组件包括模块化的代码以便于在小程序的不同的页面中重复使用。
35.5)服务器集群(server cluste),指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。服务器集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。在本技术中所提供的服务器集群硬盘故障处理方法中,可以应用于云服务器使用场景和分布式服务器使用场景,实现对不同使用场景中的服务器硬盘的状态检测与故障修复,具体来说,云服务器(cvm cloud virtual machine)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比传统的单一物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器供用户的业务进程使用,并存储云服务器用户的数据。而分布式服务器使用环境中用户的数据和程序可以不位于一个服务器上,而是分散到多个服务器中,同样的,分布式服务器的使用环境也需要配置大量的硬盘,也需要通过本技术所提供的服务器集群硬盘故障处理方法实现服务器硬盘的状态检测与故障修复。
36.图1为本发明实施例提供的资源调度方法的使用场景示意图,参见图1,随着计算机技术的不断发展,云服务器(cloud virtual machine,cvm)可以提供安全可靠的弹性计算服务,还可以提供不同的实例类型来满足用户特定的使用场景。终端(包括终端10-1和终端10-2)上设置有能够执行不同功能相应客户端其中,所属客户端为终端(包括终端10-1和终端10-2)通过网络300从相应的云服务器200中获取不同的信息,并可以在云服务器中部署不同的业务。终端通过网络300连接云服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。云服务器所提供的这些实例类型由cpu、内存、存储和网络组成不同的组合,并将用户的业务数据存储在云服务器的硬盘中,但是在云服务器的运行中由于任务处理过程中会产生大量的资源碎片,造成资源的冗余,降低了云服务器网络的处理速度,影响任务处理速度,影响云服务器网络的使用效果。在本发明所提供的实施例中云服务器200中所运行的云服务器应用可以是在不同编程语言的软件代码环境中所编写的,代码对象可以是不同类型的代码实体。例如,在c语言的软件代码中,一个代码对象可以是一个函数。在java语言的软件代码中,一个代码对象可以是一个类,ios端oc语言中可以是一段目标代码。在c++语言的软件代码中,一个代码对象可以是一个类或一个函数以执行来自于不同终端的处理指令。其中本技术中不再对名云服务器的编译环境的来源进行区分。
37.下面对本发明实施例的资源调度装置的结构做详细说明,资源调度装置可以各种形式来实施,如带有资源调度装置处理功能的专用终端,也可以为设置有资源调度装置处理功能的服务器,例如前序图1中的云服务器200。图2为本发明实施例提供的资源调度装置的组成结构示意图,可以理解,图2仅仅示出了资源调度装置的示例性结构而非全部结构,根据需要可以实施图2示出的部分结构或全部结构。
38.本发明实施例提供的资源调度装置包括:至少一个处理器201、存储器202、用户接口203和至少一个网络接口204。资源调度装置中的各个组件通过总线系统205耦合在一起。可以理解,总线系统205用于实现这些组件之间的连接通信。总线系统205除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统205。
39.其中,用户接口203可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
40.可以理解,存储器202可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。本发明实施例中的存储器202能够存储数据以支持终端(如10-1)的操作。这些数据的示例包括:用于在终端(如10-1)上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序。
41.在一些实施例中,本发明实施例提供的资源调度装置可以采用软硬件结合的方式实现,作为示例,本发明实施例提供的资源调度装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的资源调度方法。例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)或其他电子元件。
42.作为本发明实施例提供的资源调度装置采用软硬件结合实施的示例,本发明实施例所提供的资源调度装置可以直接体现为由处理器201执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器202,处理器201读取存储器202中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器201以及连接到总线205的其他组件)完成本发明实施例提供的资源调度方法。
43.作为示例,处理器201可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
44.作为本发明实施例提供的资源调度装置采用硬件实施的示例,本发明实施例所提供的装置可以直接采用硬件译码处理器形式的处理器201来执行完成,例如,被一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)或其他电子元件执行实现本发明实施例提供的资源调度方法。
45.本发明实施例中的存储器202用于存储各种类型的数据以支持资源调度装置的操作。这些数据的示例包括:用于在资源调度装置上操作的任何可执行指令,如可执行指令,实现本发明实施例的从资源调度方法的程序可以包含在可执行指令中。
46.在另一些实施例中,本发明实施例提供的资源调度装置可以采用软件方式实现,图2示出了存储在存储器202中的资源调度装置,其可以是程序和插件等形式的软件,并包括一系列的模块,作为存储器202中存储的程序的示例,可以包括资源调度装置,资源调度装置中包括以下的软件模块信息传输模块2081和信息处理模块2082。当资源调度装置中的软件模块被处理器201读取到ram中并执行时,将实现本发明实施例提供的资源调度方法,其中,资源调度装置中各个软件模块的功能,包括:
47.信息传输模块2081,用于接收待处理任务,并将所述待处理任务提交至集群资源管理器。
48.信息处理模块2082,用于通过所述集群资源管理器,确定集群资源中的资源碎片率。
49.所述信息处理模块2082,用于基于所述集群资源中的资源碎片率,确定与所述集群资源相匹配的资源调度模式,其中,所述资源调度模式包括:强制高低优亲和模式和温和高低优亲和模式。
50.所述信息处理模块2082,用于响应于与所述集群资源相匹配的资源调度模式,根据所述待处理任务的优先级对待处理任务配置相应的集群资源。
51.根据图2所示的电子设备,在本技术的一个方面中,本技术还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述资源调度方法的各种可选实现方式中所提供的方法。
52.为了克服云服务器网络在使用中所造成的资源碎片过多影响任务处理速度的缺陷,参考图3,图3为本发明实施例提供的资源调度方法一个可选的流程示意图,可以理解地,图3所示的步骤可以由运行资源调度装置的各种电子设备执行,例如可以是如带有资源调度功能的专用终端、服务器或者服务器集群控制器、云网络服务器的控制终端。其中,带有资源调度装置的专用终端可以封装于图1所示的云服务器200中,以执行前序图2所示的资源调度装置中的相应软件模块。下面针对图3示出的步骤进行说明。
53.步骤301:资源调度装置接收待处理任务,并将所述待处理任务提交至集群资源管理器。
54.其中,本发明实施例可结合云技术实现,云技术(cloud technology)是指在广域网或局域网内将硬件、软件及网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术,也可理解为基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术及应用技术等的总称。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站,因此云技术需要以云计算作为支撑。
55.需要说明的是,云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使
用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池平台,简称云平台,一般称为基础设施即服务(iaas,infrastructure as a service),在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(可为虚拟化机器,包含操作系统)、存储设备和网络设备。对于用户使用云服务器存储数据或者部署不同应用进程时,监听服务器集群硬盘的运行参数,可以及时的发现可能出现的服务器集群硬盘故障,避免由于出现失效警告的服务器集群硬盘故障造成的用户数据丢失。
56.以通过云服务器网络实现本技术所提供的资源调度方法为例,通过云计算服务器的不同服务集群前端接收待处理任务;触发所述不同服务集群中的系统接入组件,并通过所述不同服务集群中的系统接入组件将所述待处理任务提交至与所述不同服务集群相匹配的集群资源管理器。其中,该前端可以为web ui组件,用于接收用户填写的spark相关参数,并根据该spark相关参数生成作业数据。其中,集群管理器(cluster manager)即可以是yarn、mesos或kubernetes等开源资源调度平台。spark本身已经支持了这些开源平台,即spark组件和clustermanager组件间的协议是兼容的。driver是作业驱动器,work node是工作节点,executor是任务执行组件,task是最小的执行单位。进一步地,结构化数据的程序包(spark sql)是spark用来操作结构化数据的程序包,通过该spark sql,可以使用sql语言来查询数据,该spark sql支持多种数据源,比如数据仓库工具(hive)表等。该流式计算的组件是spark提供的对实时数据进行流式计算的组件,提供了用来操作数据流的应用程序编程接口(api application programming interface)。
57.步骤302:资源调度装置通过所述集群资源管理器,确定集群资源中的资源碎片率。
58.在本发明的一些实施例中,基于所述集群资源中的资源碎片率,确定与所述集群资源相匹配的资源调度模式,可以通过以下方式实现:
59.确定与所述集群资源管理器相匹配的资源碎片率阈值;当所述集群资源中的资源碎片率大于所述资源碎片率阈值时,确定与所述集群资源相匹配的资源调度模式为温和高低优亲和模式;当所述集群资源中的资源碎片率小于等于所述资源碎片率阈值时,确定与所述集群资源相匹配的资源调度模式为强制高低优亲和模式;需要说明的是,由于集群资源管理器所面临的的任务处理环境复杂,对于并发任务较多的资源调度环境,可以不进行动态调整,仅使用强制高低优亲和模式进行资源调度,同样的,对于并系统资源消耗较少的的资源调度环境,可以不进行动态调整,仅使用温和高低优亲和模式进行资源调度,减少进行资源调度过程中相应集群资源管理器的负载。
60.确定与所述集群资源管理器相匹配的资源碎片率及对应阈值;资源碎片率可以由公式1得出,公式1亦可以根据场景需要进行调整:
[0061][0062]
其中,本技术所使用的云计算平台使用的机器均带有8份资源,公式1中高优整机空闲数量指8份资源空闲或被低优任务使用的机器数量,高优空闲资源数量为低优任务资源数和空闲资源数之和,在使用中,资源碎片率阈值根据经验可以设置为0.8,可以根据使用场景的特征选择其他阈值。
[0063]
在本发明的一些实施例中,可以触发与所述集群资源管理器相匹配的监控进程;
通过与所述集群资源管理器相匹配的监控进程,对所述集群资源中的资源碎片率进行实时监控;当所述集群资源中的资源碎片率达到所述资源碎片率阈值时,对与所述集群资源相匹配的资源调度模式进行动态调整。由于云服务器网络的集群资源数量在变化,可能由运营商不间断的增加新的云服务器,同时云服务器网络所接收的任务的数量也在变化,实时监控碎片数量可以灵活地调整资源调度模式,使得云网络产品的用户获得更好的使用体验。
[0064]
步骤303:资源调度装置基于所述集群资源中的资源碎片率,确定与所述集群资源相匹配的资源调度模式。
[0065]
其中,所述资源调度模式包括:强制高低优亲和模式和温和高低优亲和模式。
[0066]
步骤304:资源调度装置响应于与所述集群资源相匹配的资源调度模式,根据所述待处理任务的优先级对待处理任务配置相应的集群资源。
[0067]
在本发明的一些实施例中,当所述资源调度模式为温和高低优亲和模式时,确定所述集群资源中的节点资源的总量;触发温和高低优亲和模式的资源调度子进程,通过所述资源调度子进程根据所述待处理任务的优先级对待处理任务配置相应的集群资源;或者触发温和高低优亲和模式的资源抢占子进程,通过所述资源抢占子进程根据所述待处理任务的优先级对待处理任务配置相应的集群资源。下面通过图4进一步说明,温和高低优亲和模式的工作过程。
[0068]
参考图4,图4为本发明实施例提供的资源调度方法一个可选的流程示意图,可以理解地,图4所示的步骤可以由运行资源调度装置的各种电子设备执行,例如可以是如带有资源调度功能的专用终端、服务器或者服务器集群控制器、云网络服务器的控制终端。其中,带有资源调度装置的专用终端可以封装于图1所示的云服务器200中,以执行前序图2所示的资源调度装置中的相应软件模块。下面针对图3示出的步骤进行说明。
[0069]
步骤401:通过资源调度子进程根据所述待处理任务的优先级对待处理任务配置相应的集群资源时,判断所述集群资源中的空闲节点资源是否满足所述待处理任务。
[0070]
步骤402:当所述集群资源中的空闲节点资源满足所述待处理任务时,通过所述空闲节点资源处理待处理任务。
[0071]
其中,资源调度子进程的处理算法可以由公式2表示:
[0072][0073]
其中,c表示资源数,c_同优先级代表节点上同优先级的资源数,其余同理。
[0074]
其中,资源调度子进程的处理算法可以通过以下伪代码表示:
[0075]
func calculatescoresoftallocate(node,task){
[0076]
score=node.capacity//初始化分数是节点资源总量。目的是让score大于等于0
[0077]
if task.requiredresource》node.idle
[0078]
return 0//如果空闲资源不满足任务需求,则没有分数
[0079]
if task.priority==highpriority{//如果是高优任务
[0080]
score+=node.highusageresource*w_2-node.lowusageresource*w_3//越多资源被同优先级占据,则分数更高。highusageresource表示被高优占据的资源量。假设节点
上有两个任务:高优a需求1份资源和低优b需求2份资源,节点资源总量是8。对于待调度的高优,返回分数7。
[0081]
}else{//如果是低优任务
[0082]
score+=node.lowusageresource*weight_2-node.highusageresource*weight_3//同上
[0083]
}
[0084]
return score//返回分数
[0085]
}
[0086]
其中w_2和w_3是用于调节同优先级和异优先级资源的权重。在本技术所使用的云计算平台,根据经验均设置为1。
[0087]
步骤403:当所述集群资源中的空闲节点资源不满足所述待处理任务时,将所述待处理任务中优先级相同的任务配置于集群资源中相同的节点中,以减少集群资源中的资源碎片率。
[0088]
为了实现减少资源碎片数量,资源抢占子进程可以将待处理任务配置于优先级相同的任务占用资源更多的集群节点中,通过增加空闲集群节点的数量,达到减少集群资源中的资源碎片数量的效果。
[0089]
步骤404:通过资源调度子进程根据所述待处理任务的优先级对待处理任务配置相应的集群资源时,判断所述集群资源中的空闲节点资源是否满足所述待处理任务中的高优先级任务。
[0090]
其中,资源调度子进程的处理过程可以通过以下伪代码表示:
[0091]
unc calculatescoresoftpreempt(node,task){
[0092]
if task.priority==lowpriority
[0093]
return 0//只计算高优,因为低优不能抢占(没有更低优先级的任务可以被它抢占)。低优任务分数返回0
[0094]
if task.requiredresource》node.highidleresource||
[0095]
return 0//如果空闲资源不满足任务需求,则分数0。highidleresource等于idle(空闲)+lowusageresource(低优使用的资源),因为空闲和低优占据的资源都可以被高优使用。
[0096]
return node.highusageresource//越多资源被同优先级占据,则分数更高。此处因为可以抢占低优任务,因此不将低优资源量纳入计算。由此,既能够减少集群资源中的资源碎片率,使得资源的利用效率提升,又能够保证高优先级任务的及时处理。
[0097]
步骤405:当所述集群资源中的空闲节点资源满足待处理任务中的高优先级任务时,通过所述空闲节点资源处理待处理任务中的高优先级任务。
[0098]
步骤406:当所述集群资源中的空闲节点资源不满足待处理任务中的高优先级任务时,将高优先级任务中优先级相同的任务配置于集群资源中相同的节点中,以减少集群资源中的资源碎片率。
[0099]
在本发明的一些实施例中,当所述资源调度模式为强制高低优亲和模式时,确定所述集群资源中的承载高优先级任务节点资源;遍历所述集群资源中的承载高优先级任务节点资源,当所述承载高优先级任务节点资源承载低优先级任务时,通过待处理任务中的
高优先级任务抢占承载低优先级任务的任务节点。
[0100]
其中,强制高低优亲和模式分数计算可以由以公式3表示:
[0101][0102]
强制高低优亲和模式亦可以由伪代码表示为:
[0103]
func calculatescorehard(node,task){
[0104]
if task.requiredresource》node.highidleresource
[0105]
return 0//如果空闲资源不满足任务需求,则分数0
[0106]
return node.highusageresource/node.capacity*w_1节点上的资源被高优任务使用的量作为该节点的分数。因为越多资源被同优先级占据,分数越高。
[0107][0108]
其中w_1是用于调节高低优算法的权重。在本技术所使用的云计算平台,根据经验设置为1,由此,强制高低优亲和模式可以实现高优任务的碎卡问题完全不受低优任务调度
的影响。
[0109]
参考图5,图5为本发明实施例中一个资源调度方法的测试过程示意图,下面以对本技术提供的资源调度方法进行测试。其中,测试环境集群中有两个节点,每个节点上有8份资源。评估阶段的指标包括:因资源碎片创建失败的资源量:当高优因资源碎片创建失败时,该指标加上该任务所需的总资源量。这直观地反映了有多少卡数因为碎片而失败。该值越低说明算法越好;因资源碎片创建失败时集群中低优+空闲资源量平均值。因为低优+空闲资源量都是高优可以使用的资源。如果失败时空闲资源较多,则说明算法较差。该值越低说明算法越好。
[0110]
测试结果参考表1,
[0111][0112]
表1
[0113]
对于binpack模式,节点1上有高低优两个任务,分别占据4份资源,此时待调度的高优会调度到节点2上。如果此时再下发一个高优8份资源,则无法调度。虽然在两个节点上有4份空闲资源和4份低优资源,但分布在两个节点上。
[0114]
对于温和高低优亲和模式,会尽量避免高低优放在同一个节点上。因此高低优分别在节点1和2上,下发高优4份,调度到节点1上。此时再下发高优8份,则可以调度到节点2上,抢占低优任务。
[0115]
但是温和高低优亲和模式无法完全保障高低优不在同一个节点上,此时还是会产生碎片问题。而强制高低优亲和模式,会强制保障高优不会因为低优而产生碎片问题。当高
优4份下发时,会强制放到节点1上,即使节点2是空闲的。此时再下发高优8份,则可以调度到节点2上。
[0116]
在本发明的一些实施例中,可以对所述待处理任务进行解析,获取所述待处理任务的优先级标识;根据所述待处理任务的优先级标识,对所接收的待处理任务的优先级进行排序;根据所述待处理任务的优先级,创建相应的待处理任务队列。由此可以实现对不同客户的差异化处理。同时遍历待处理任务队列,确定优先级最高的待处理任务;确定所述网络资源中各个链路的链路质量;对所述优先级最高的待处理任务配置所述网络资源中链路质量最高的链路,以实现通过所配置的链路对所述待处理任务队列中的待处理任务进行传输。由此可以基于集群资源中的资源碎片率,灵活确定与集群资源相匹配的资源调度模式,通过强制高低优亲和模式和温和高低优亲和模式既能够减少集群资源中的资源碎片率,使得资源的利用效率提升,又能够保证高优先级任务的及时处理,保证云服务器用户的数据处理速度,提高用户的使用体验。
[0117]
下面以集群资源管理器为微信服务器的资源管理器为例,对本发明所涉及的资源调度方法进行说明,其中,结合图1所示的本发明实施例的资源调度方法的使用环境示意图;终端(包括终端11-1和终端11-2)上设置有能够执行不同功能相应客户端,其中,所属客户端为终端(包括终端11-1和终端11-2)通过网络300从相应的云服务器200中通过微信应用程序获取不同的信息进行浏览,终端通过网络300连接云服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输,其中,云服务器200运行与微信应用程序相匹配的集群资源管理器,实现资源的调度,其中,机器均带有8份资源用于接受集群资源管理器的配置,资源碎片率阈值为0.8,对于微信服务器的资源管理器的资源调度过程,参考图6,图6为本发明实施例提供的资源调度方法一个可选的流程示意图,下面针对图6示出的步骤进行说明。
[0118]
步骤601:通过云计算服务器的不同服务集群前端接收待处理任务。
[0119]
步骤602:集群资源管理器获取待处理任务,并确定集群资源中的资源碎片率与资源碎片率阈值的关系。
[0120]
步骤603:判断集群资源中的资源碎片率是否大于资源碎片率阈值,如果是,执行步骤604,否则执行步骤605。
[0121]
步骤604:触发温和高低优亲和模式。
[0122]
步骤605:触发强制高低优亲和模式。
[0123]
步骤606:遍历待处理任务队列,确定优先级最高的待处理任务,配置网络资源中链路质量最高的链路。
[0124]
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1