CN116095177A - 一种分层分簇调度方法、系统、介质及设备 - Google Patents
一种分层分簇调度方法、系统、介质及设备 Download PDFInfo
- Publication number
- CN116095177A CN116095177A CN202310082477.8A CN202310082477A CN116095177A CN 116095177 A CN116095177 A CN 116095177A CN 202310082477 A CN202310082477 A CN 202310082477A CN 116095177 A CN116095177 A CN 116095177A
- Authority
- CN
- China
- Prior art keywords
- delay
- cluster
- node
- scheduling
- cpu
- 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
Images
Classifications
-
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种分层分簇调度方法、系统、介质及设备,采集集群的各类资源数据、生成节点延迟矩阵;根据调度任务的一般容忍调用响应时间选择合适的延迟分层调度,查找当前选择的延迟分层是否存在,如果不存在则使用完全子图划分方法对集群节点组成的图进行分簇,分簇完成后将分簇信息以不同延迟标准分层保存,如果存在则读取当前延迟分层的分簇信息;然后依据簇群优先级公式计算各个簇群的优先级,选择优先级高的簇群进行调度。本发明通过将任务限制在簇群中调度,能够显著降低由节点间高延迟带来的任务响应时间过大的性能开销。
Description
技术领域
本发明属于云计算资源调度技术领域,具体涉及一种分层分簇调度方法、系统、介质及设备。
背景技术
面对日益增长的数据计算需求,构建一个灵活的新型分布式高性能低延迟计算系统显得尤为重要。新型分布式高性能低延迟计算系统通过体系资源的优化调度、单元的分布式协同和信息的聚合提高系统整体计算能力和资源利用效率。其中,“面向大数据处理的高性能计算”主要是建立在云计算的相关技术之上的,云计算是谷歌在“Google 101计划”中提出的概念,目前分为集中式云计算和边缘云计算。新型分布式高性能低延迟计算集群一方面与集中式云计算集群所处的局域网环境不同,另一方面也与边缘云计算集群的计算卸载不同,它建立在地理上跨度很广的大范围专用网中,网络拓扑结构不稳定,带宽资源有限,节点间的网络延迟差异大,中心节点的计算能力强,边缘节点不具备计算能力,因此中心节点的高性能计算存在着由网络延迟过高导致的计算瓶颈。
在面向大数据处理的高性能计算背后存在着大量具有低时延需求的任务,这类任务对任务间的调用响应时间要求严苛,需要集群的调度器在调度时将任务分配到合适的节点上运行,从而尽可能地降低任务间的调用响应时间,同时这类任务也关心同类型任务的分布状态,需要避免大量同类型任务集中到单个节点。目前没有一个完整的解决方案去合理调度这类任务,因此如何在地理跨度广的专用网环境下实现出一个便于部署这类低时延需求任务的分布式调度方法成为亟需解决的问题。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种分层分簇调度方法、系统、介质及设备,用于解决针对地理分布集群中存在的网络拓扑结构不稳定,带宽资源有限,节点间的网络延迟差异大性能瓶颈的技术问题,能够显著减少任务间的调用响应时间。
本发明采用以下技术方案:
一种分层分簇调度方法,包括以下步骤:
S1、采集地理分布集群中的资源数据,生成节点延迟矩阵;
S2、指定待调度任务的一般容忍调用响应时间;
S3、根据步骤S2得到的调度任务一般容忍调用响应时间选择合适的延迟分层调度,判断当前选择的延迟分层;
S4、当步骤S3不存在当前选择的延迟分层,将步骤S1得到的节点延迟矩阵以步骤S2得到的待调度任务的一般容忍调用响应时间作为延迟标准进行划分,对节点延迟矩阵进行建图,使用完全子图划分方法对新建图分簇,然后将分簇信息以该延迟标准命名的分层保存;
S5、当步骤S3存在当前选择的延迟分层,读取当前延迟分层的分簇信息或步骤S4得到的分簇信息,根据分簇选择算法计算各个簇群的优先级,选择优先级高的簇群进行调度,将待调度任务限制在对应簇群中,实现分层分簇调度。
具体的,步骤S1中,资源数据包括节点CPU资源拥有总量、节点CPU资源可分配总量、节点内存资源拥有总量和节点内存资源可分配总量。
具体的,步骤S4中,将步骤S1采集到的节点延迟矩阵以步骤S2得到的待调度任务的一般容忍调用响应时间作为延迟标准进行划分具体为:
S401、在获取延迟矩阵后,先遍历整个矩阵将小于延迟标准的延迟值置0,作为给定延迟层的邻接矩阵;
S402、判断邻接矩阵内是否存在节点;如果存在节点,进行步骤S403;否则跳到步骤S405;
S403、根据分支界限法找到当前邻接矩阵组成的图中的最大团,并记录该最大团的节点,作为给定延迟层的一个簇群;
S404、将最大团节点从延迟矩阵中移出,返回步骤S402;
S405、给记录的簇群编号并存入给定延迟层内。
具体的,步骤S5中,计算各个簇群的优先级具体为:
S501、遍历选定的延迟层内的所有簇群,对每个簇群依次进行节点遍历操作,在节点遍历中,查找节点内的所有已部署任务对内存资源和CPU资源的使用量,求和分别得到内存资源使用总量USedMemery和CPU资源使用总量UsedCPU;
S502、在步骤S501的基础上加上将要被调度的任务链需求的内存资源量和CPU资源量得到簇群内存消耗总量NeedMemery和簇群的CPU消耗总量NeedCPU;
S503、查找簇群内每个节点里内存和CPU两种资源拥有总量,对簇内每个节点进行求和得到簇群内存资源总量TotalMemery和CPU资源总量TotalCPU;
S504、在该延迟层上,对于每个簇群分别得到簇群的内存资源分数ScoreMemery和CPU资源分数ScoreCPU;
S505、加权计算簇群总分数,将总分数作为簇群选择的优先级。
进一步的,步骤S504中,如果簇群内存消耗总量NeedMemery大于簇群内存资源总量TotalMemery或者簇群CPU消耗总量NeedCPU大于CPU资源总量TotalCPU,设置ScoreMemery或ScoreCPU为0。
进一步的,步骤S505中,簇群总分数ScoreCluster具体计算如下:
更进一步的,簇群的内存资源分数ScoreMemery和CPU资源分数ScoreCPU具体计算如下:
第二方面,本发明实施例提供了一种分层分簇调度系统,包括:
采集模块,用于采集地理分布集群中的资源数据,生成节点延迟矩阵;
时间模块,用于指定待调度任务的一般容忍调用响应时间;
判断模块,用于根据时间模块得到的调度任务一般容忍调用响应时间选择合适的延迟分层调度,判断当前选择的延迟分层;
划分模块,用于当判断模块不存在当前选择的延迟分层,将采集模块得到的节点延迟矩阵以时间模块得到的待调度任务的一般容忍调用响应时间作为延迟标准进行划分,对节点延迟矩阵进行建图,使用完全子图划分方法对新建图分簇,然后将分簇信息以对应延迟标准命名的分层保存;
调度模块,用于当判断模块存在当前选择的延迟分层,读取当前延迟分层的分簇信息或直接读取划分模块得到的分簇信息,根据分簇选择算法计算各个簇群的优先级,选择优先级高的簇群进行调度,将待调度任务限制在对应簇群中,实现分层分簇调度。
第三方面,一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述分层分簇调度方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,包括计算机程序,所述计算机程序被处理器执行时实现上述分层分簇调度方法的步骤。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种分层分簇调度方法,采集集群的各类资源数据、生成节点延迟矩阵;根据调度任务的一般容忍调用响应时间选择合适的延迟分层调度,查找当前选择的延迟分层是否存在,如果不存在则使用完全子图划分方法对集群节点组成的图进行分簇,分簇完成后将分簇信息以不同延迟标准分层保存,如果存在则读取当前延迟分层的分簇信息;然后依据簇群优先级公式计算各个簇群的优先级,选择优先级高的簇群进行调度;本发明通过将任务限制在簇群中调度,能够显著降低由节点间高延迟带来的任务响应时间过大的性能开销。
进一步的,资源数据包括节点CPU资源拥有总量、节点CPU资源可分配总量、节点内存资源拥有总量和节点内存资源可分配总量设置的好处在于:充分利用了每个物理节点的资源,因此在部署应用程序节点后,每个物理节点的资源尽可能被均衡分配,可以避免所有微服务放置在一个节点的问题,更好地发散了微服务的分布。
进一步的,将步骤S1采集到的节点延迟矩阵以步骤S2得到的待调度任务的一般容忍调用响应时间作为延迟标准进行划分,可以将大于一般容忍调用响应时间的延迟边在分簇前断开,可以有效降低分簇算法的执行时间。
进一步的,计算各个簇群的优先级,是为了均衡使用各个簇群的各类系统资源,避免单个低延迟簇群被频繁使用,使得整个计算系统的计算资源不均衡使用。
进一步的,要求簇群内存消耗总量NeedMemery大于簇群内存资源总量TotalMemery或者簇群CPU消耗总量NeedCPU大于CPU资源总量TotalCPU,设置ScoreMemery或ScoreCPU为0,如果保持该分数为负值,会导致求解ScoreCluster的值出现偏差,因为簇群分数是CPU和内存分数的均值。
进一步的,簇群总分数ScoreCluster设置的目的是为了均衡使用各个簇群的各类系统资源,CPU和内存分数的均值越小,代表该簇群的这两类资源剩余量越少,该簇群应该被更少调度,系统应该选择资源余量多的簇群进行调度计算。
进一步的,簇群的内存资源分数ScoreMemery和CPU资源分数ScoreCPU设置的目的很好的反映了计算簇群的两类典型资源的使用情况,该分数越大,说明簇群的资源余量越多。
可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
综上所述,本发明提出的分层分簇调度方法、系统、介质及设备能够在平衡计算资源性能的同时减少任务的调用延迟,满足在地理跨度广的专用网环境下调度部署低时延任务的需求。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明的原理图;
图2为6个节点组成的集群示意图;其中,(a)为节点间的延迟示意图,(b)为按照延迟标准划分好的邻接矩阵;
图3为本发明对6节点集群的分簇示意图;
图4为本发明对6节点集群的分簇的资源示意图;
图5为本发明在微服务调用响应时间的性能测试示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述预设范围等,但这些预设范围不应限于这些术语。这些术语仅用来将预设范围彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一预设范围也可以被称为第二预设范围,类似地,第二预设范围也可以被称为第一预设范围。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
在附图中示出了根据本发明公开实施例的各种结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
本发明提供了一种分层分簇调度方法,首先建立基于任务指定延迟标准的延迟矩阵,进而通过完全子图搜索方法划分集群网络,通过簇群选择算法将任务限定在满足延迟标准且资源足够的簇群中进行调度使得待调度任务避开了高延迟节点,降低了任务的调用响应时间。
请参阅图1,本发明一种分层分簇调度方法,包括以下步骤:
S1、采集地理分布集群中的各类资源数据;
各类资源数据包括节点CPU资源拥有总量、节点CPU资源可分配总量、节点内存资源拥有总量、节点内存资源可分配总量和节点延迟矩阵。
S2、指定待调度任务的一般容忍调用响应时间;
S3、根据步骤S2得到的调度任务一般容忍调用响应时间选择合适的延迟分层调度,查找当前选择的延迟分层是否存在,如果不存在,则进行步骤S4对节点延迟矩阵进行划分,如果存在则读取当前延迟分层的分簇信息,并跳到步骤S5;
S4、将步骤S1采集到的节点延迟矩阵以步骤S2得到的待调度任务的一般容忍调用响应时间作为延迟标准进行划分,对节点延迟矩阵进行建图,使用完全子图划分方法对新建图分簇,然后将分簇信息以该延迟标准命名的分层保存;
S401、在获取延迟矩阵后,先遍历整个矩阵将小于延迟标准的延迟值置0,作为给定延迟层的邻接矩阵;
S402、判断邻接矩阵内是否存在节点;如果存在节点,进行步骤S403;否则跳到步骤S405;
S403、根据分支界限法找到当前邻接矩阵组成的图中的最大团,并记录该最大团的节点,作为给定延迟层的一个簇群;
S404、将最大团节点从延迟矩阵中移出,返回步骤S402;
S405、给记录的簇群编号并存入给定延迟层内。
S5、根据分簇选择算法计算各个簇群的优先级,选择优先级高的簇群进行调度,将待调度任务限制在该簇群中;
S501、选定延迟层后,遍历该延迟层内的所有簇群,对每个簇群依次进行节点遍历操作,在节点遍历中,查找节点内的所有已部署任务对内存资源和CPU资源的使用量,求和分别得到内存资源使用总量UsedMemery和CPU资源使用总量UsedCPU;
S502、在步骤S501的基础上加上将要被调度的任务链需求的内存资源量和CPU资源量得到簇群内存消耗总量NeedMemery和簇群的CPU消耗总量NeedCPU;
S503、查找簇群内每个节点里内存和CPU两种资源拥有总量,对簇内每个节点进行求和得到簇群内存资源总量TotalMemery和CPU资源总量TotalCPU;
S504、在该延迟层上,对于每个簇群分别得到簇群的内存资源分数ScoreMemery和CPU资源分数ScoreCPU;
簇群的内存资源分数ScoreMemery和CPU资源分数ScoreCPU具体计算如下:
如果簇群内存消耗总量NeedMemery大于簇群内存资源总量TotalMemery或者簇群CPU消耗总量NeedCPU大于CPU资源总量TotalCPU,那么直接设置ScoreMemery或ScoreCPU为0。
S505、加权计算簇群总分数,总分数作为簇群选择的优先级,分数越高,被选择调度的概率越高。
簇群总分数ScoreCluster具体计算如下:
S6、在簇群内的调度则使用传统的调度方法或者特殊的调度方法,以完成任务与集群节点的绑定。
本发明再一个实施例中,提供一种分层分簇调度系统,该系统能够用于实现上述分层分簇调度方法,具体的,该分层分簇调度系统包括采集模块、时间模块、判断模块、划分模块以及调度模块。
其中,采集模块,采集地理分布集群中的资源数据,生成节点延迟矩阵;
时间模块,指定待调度任务的一般容忍调用响应时间;
判断模块,根据时间模块得到的调度任务一般容忍调用响应时间选择合适的延迟分层调度,判断当前选择的延迟分层;
划分模块,当判断模块不存在当前选择的延迟分层,将采集模块得到的节点延迟矩阵以时间模块得到的待调度任务的一般容忍调用响应时间作为延迟标准进行划分,对节点延迟矩阵进行建图,使用完全子图划分方法对新建图分簇,然后将分簇信息以对应延迟标准命名的分层保存;
调度模块,当判断模块存在当前选择的延迟分层,读取当前延迟分层的分簇信息或直接读取划分模块得到的分簇信息,根据分簇选择算法计算各个簇群的优先级,选择优先级高的簇群进行调度,将待调度任务限制在对应簇群中,实现分层分簇调度。
本发明再一个实施例中,提供了一种终端设备,该终端设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor、DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器可以用于分层分簇调度方法的操作,包括:
采集地理分布集群中的资源数据,生成节点延迟矩阵;指定待调度任务的一般容忍调用响应时间;根据调度任务一般容忍调用响应时间选择合适的延迟分层调度,判断当前选择的延迟分层;当不存在当前选择的延迟分层,将节点延迟矩阵以待调度任务的一般容忍调用响应时间作为延迟标准进行划分,对节点延迟矩阵进行建图,使用完全子图划分方法对新建图分簇,然后将分簇信息以该延迟标准命名的分层保存;当存在当前选择的延迟分层,读取当前延迟分层的分簇信息或得到的分簇信息,根据分簇选择算法计算各个簇群的优先级,选择优先级高的簇群进行调度,将待调度任务限制在对应簇群中,实现分层分簇调度。
本发明再一个实施例中,本发明还提供了一种存储介质,具体为计算机可读存储介质(Memory),所述计算机可读存储介质是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括终端设备中的内置存储介质,当然也可以包括终端设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(Non-Volatile Memory),例如至少一个磁盘存储器。
可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关分层分簇调度方法的相应步骤;计算机可读存储介质中的一条或一条以上指令由处理器加载并执行如下步骤:
采集地理分布集群中的资源数据,生成节点延迟矩阵;指定待调度任务的一般容忍调用响应时间;根据调度任务一般容忍调用响应时间选择合适的延迟分层调度,判断当前选择的延迟分层;当不存在当前选择的延迟分层,将节点延迟矩阵以待调度任务的一般容忍调用响应时间作为延迟标准进行划分,对节点延迟矩阵进行建图,使用完全子图划分方法对新建图分簇,然后将分簇信息以该延迟标准命名的分层保存;当存在当前选择的延迟分层,读取当前延迟分层的分簇信息或得到的分簇信息,根据分簇选择算法计算各个簇群的优先级,选择优先级高的簇群进行调度,将待调度任务限制在对应簇群中,实现分层分簇调度。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图2,将当前集群按延迟标准划分簇群以生成延迟层具体为:
(1)删除大于延迟要求的边,以图2中的6节点集群为例,指定延迟标准为50ms,得到图2中(b)所示的延迟邻接矩阵;
(2)在邻接矩阵组成的图中找到一个最大团为{节点1,节点2,节点3};
(3)取出找到的最大团中的节点创建集群分簇1;
(4)从邻接矩阵图中移除该最大团中这些节点;
(5)邻接矩阵不为空,返回步骤2,寻找新邻接矩阵图的最大团为{节点4,节点5};
(6)取出找到的最大团中的节点创建集群分簇2;
(7)从邻接矩阵图中移除该最大团中这些节点;
(8)邻接矩阵不为空,返回步骤2,寻找新邻接矩阵图的最大团为{节点6};
(9)取出找到的最大团中的节点创建集群分簇3;
(10)邻接矩阵为空,记录的簇群编号,存入给定延迟层。
请参阅图3,系统调度任务时仅在分簇1,分簇2和分簇3中进行选择,单个簇群内两两节点间的延迟严格小于任务给定延迟50ms,任务的延迟需求得到了满足,同时,根据分簇的资源分数进行优先级排序,使得计算资源能够被均衡分配使用。
请参阅图4,分簇1的CPU占比为0.19、内存占比为0.28;分簇2的CPU占比为0.56、内存占比为0.48;分簇3的CPU占比为0.69、内存占比为0.63;
然后根据公式(1)、(2)和(3)计算分簇的内存分数、CPU分数和分簇调度优先级,得到如下结果:
分簇1的CPU分数为8.1、内存分数为7.2、调度优先级为7.65;
分簇2的CPU分数为4.4、内存分数为5.2、调度优先级为4.80;
分簇3的CPU分数为3.1、内存分数为3.7、调度优先级为3.40。
最后根据计算出的分簇优先级,选择优先级值最大的分簇1进行调度。
请参阅图5,在微服务调用响应时间的性能测试中,设定集群为20个云节点,任务调用链为30个且链长为4。对于所有参数设置,均运行10个测量值,以消除随机变量和任务部署顺序对实验带来的影响。得到各任务调用链的平均调用响应时间,其中基准为Kubernetes集群的默认Best-Effort调度算法和Sampaio提出的HFF算法(启发式算法Heuristic First Fit,通过最小化节点间流量并尽可能少地保留节点来调度应用程序的微服务),任务调用链的总响应时间平均分别为275.30ms和192.35ms,可以明显看出HFF调度算法的响应时间值分布范围更大,受到集群网络性能影响大。而本专利提出的强服务质量的分簇调度算法,任务调用链的调用延迟整体最低,任务调用链的总响应时间平均为43.84ms,强服务质量的分簇调度算法相较于默认BE调度算法在任务调用链的总响应时间上有84.1%的性能提升,相比于HFF算法提升了77.6%。
综上所述,本发明一种分层分簇调度方法、系统、介质及设备,能够在平衡计算资源性能的同时显著降低由节点间高延迟带来的任务响应时间过大的性能开销。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等,需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (10)
1.一种分层分簇调度方法,其特征在于,包括以下步骤:
S1、采集地理分布集群中的资源数据,生成节点延迟矩阵;
S2、指定待调度任务的一般容忍调用响应时间;
S3、根据步骤S2得到的调度任务一般容忍调用响应时间选择合适的延迟分层调度,判断当前选择的延迟分层;
S4、当步骤S3不存在当前选择的延迟分层,将步骤S1得到的节点延迟矩阵以步骤S2得到的待调度任务的一般容忍调用响应时间作为延迟标准进行划分,对节点延迟矩阵进行建图,使用完全子图划分方法对新建图分簇,然后将分簇信息以该延迟标准命名的分层保存;
S5、当步骤S3存在当前选择的延迟分层,读取当前延迟分层的分簇信息或步骤S4得到的分簇信息,根据分簇选择算法计算各个簇群的优先级,选择优先级高的簇群进行调度,将待调度任务限制在对应簇群中,实现分层分簇调度。
2.根据权利要求1所述的分层分簇调度方法,其特征在于,步骤S1中,资源数据包括节点CPU资源拥有总量、节点CPU资源可分配总量、节点内存资源拥有总量和节点内存资源可分配总量。
3.根据权利要求1所述的分层分簇调度方法,其特征在于,步骤S4中,将步骤S1采集到的节点延迟矩阵以步骤S2得到的待调度任务的一般容忍调用响应时间作为延迟标准进行划分具体为:
S401、在获取延迟矩阵后,先遍历整个矩阵将小于延迟标准的延迟值置0,作为给定延迟层的邻接矩阵;
S402、判断邻接矩阵内是否存在节点;如果存在节点,进行步骤S403;否则跳到步骤S405;
S403、根据分支界限法找到当前邻接矩阵组成的图中的最大团,并记录该最大团的节点,作为给定延迟层的一个簇群;
S404、将最大团节点从延迟矩阵中移出,返回步骤S402;
S405、给记录的簇群编号并存入给定延迟层内。
4.根据权利要求1所述的分层分簇调度方法,其特征在于,步骤S5中,计算各个簇群的优先级具体为:
S501、遍历选定的延迟层内的所有簇群,对每个簇群依次进行节点遍历操作,在节点遍历中,查找节点内的所有已部署任务对内存资源和CPU资源的使用量,求和分别得到内存资源使用总量UsedMemery和CPU资源使用总量UsedCPU;
S502、在步骤S501的基础上加上将要被调度的任务链需求的内存资源量和CPU资源量得到簇群内存消耗总量NeedMemery和簇群的CPU消耗总量NeedCPU;
S503、查找簇群内每个节点里内存和CPU两种资源拥有总量,对簇内每个节点进行求和得到簇群内存资源总量TotalMemery和CPU资源总量TotalCPU;
S504、在该延迟层上,对于每个簇群分别得到簇群的内存资源分数ScoreMemery和CPU资源分数ScoreCPU;
S505、加权计算簇群总分数,将总分数作为簇群选择的优先级。
5.根据权利要求4所述的分层分簇调度方法,其特征在于,步骤S504中,如果簇群内存消耗总量NeedMemery大于簇群内存资源总量TotalMemery或者簇群CPU消耗总量NeedCPU大于CPU资源总量TotalcPU,设置ScoreMemery或ScoreCPU为0。
8.一种分层分簇调度系统,其特征在于,包括:
采集模块,采集地理分布集群中的资源数据,生成节点延迟矩阵;
时间模块,指定待调度任务的一般容忍调用响应时间;
判断模块,根据时间模块得到的调度任务一般容忍调用响应时间选择合适的延迟分层调度,判断当前选择的延迟分层;
划分模块,当判断模块不存在当前选择的延迟分层,将采集模块得到的节点延迟矩阵以时间模块得到的待调度任务的一般容忍调用响应时间作为延迟标准进行划分,对节点延迟矩阵进行建图,使用完全子图划分方法对新建图分簇,然后将分簇信息以对应延迟标准命名的分层保存;
调度模块,当判断模块存在当前选择的延迟分层,读取当前延迟分层的分簇信息或直接读取划分模块得到的分簇信息,根据分簇选择算法计算各个簇群的优先级,选择优先级高的簇群进行调度,将待调度任务限制在对应簇群中,实现分层分簇调度。
9.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行权利要求1至7任一所述的方法。
10.一种计算设备,其特征在于,包括:
一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至7任一所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310082477.8A CN116095177A (zh) | 2023-02-03 | 2023-02-03 | 一种分层分簇调度方法、系统、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310082477.8A CN116095177A (zh) | 2023-02-03 | 2023-02-03 | 一种分层分簇调度方法、系统、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116095177A true CN116095177A (zh) | 2023-05-09 |
Family
ID=86206129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310082477.8A Pending CN116095177A (zh) | 2023-02-03 | 2023-02-03 | 一种分层分簇调度方法、系统、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116095177A (zh) |
-
2023
- 2023-02-03 CN CN202310082477.8A patent/CN116095177A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200167184A1 (en) | System and Method for Optimizing Placements of Virtual Machines on Hypervisor Hosts | |
CN111880936B (zh) | 资源调度方法、装置、容器集群、计算机设备和存储介质 | |
CN113886034A (zh) | 任务调度方法、系统、电子设备及存储介质 | |
CN115220921B (zh) | 资源调度方法及相关装置、图形处理器、摄像器件和介质 | |
CN105991478A (zh) | 服务器资源分配方法及其系统 | |
CN102981912A (zh) | 一种资源分配方法及系统 | |
CN112540841A (zh) | 任务调度的方法、装置、处理器与电子设备 | |
KR20100004605A (ko) | 네트워크 시스템 상에서의 작업 노드 선택방법 및 그시스템 | |
CN113672391A (zh) | 一种基于Kubernetes的并行计算任务调度方法与系统 | |
CN114625500A (zh) | 云环境下拓扑感知的微服务应用调度的方法及应用 | |
CN107360031B (zh) | 一种基于优化开销收益比的虚拟网络映射方法 | |
CN110167031B (zh) | 一种面向集中式基站的资源分配方法、设备及存储介质 | |
CN111553834A (zh) | 基于fpga的并发图数据预处理方法 | |
CN113391914A (zh) | 任务调度方法和装置 | |
CN116095177A (zh) | 一种分层分簇调度方法、系统、介质及设备 | |
CN116260876A (zh) | 基于K8s的AI应用调度方法、装置及电子设备 | |
CN116010051A (zh) | 一种联邦学习多任务调度方法及装置 | |
CN115914237A (zh) | 一种边缘环境下的深度学习任务调度方法、设备及介质 | |
CN111736899B (zh) | 一种网络处理器上寄存器的分配方法 | |
CN112948087A (zh) | 一种基于拓扑排序的任务调度方法及系统 | |
CN111124681B (zh) | 一种集群负载分配方法及装置 | |
CN105843735A (zh) | 一种终端内存的消耗方法及装置 | |
CN110780993A (zh) | 一种基于Kubernetes的资源调度优化的方法、设备及介质 | |
CN115454598B (zh) | 部分解耦数据中心的业务部署和资源分配方法 | |
CN114265556B (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 |