首页> 中国专利> 承诺感知调度器

承诺感知调度器

摘要

一种系统(100),该系统包括:一个或多个虚拟机(166)的分布式网络,该一个或多个虚拟机具有专用于用户的承诺虚拟机(168)的第一部分和按需虚拟机(169)的第二部分。该系统还可以包括工作负载调度器(184),该工作负载调度器被配置成接收与用户相关联的工作负载(232)。调度器可以确定是将给定工作负载调度为由第一部分和第二部分中的虚拟机的组合执行还是由仅包括在第一部分中的虚拟机执行。如果在第一时间的给定工作负载的预期资源消耗水平和虚拟机的第一部分的第一消耗水平之和小于或等于包括在第一部分中的资源的总量,则可以将给定工作负载调度为由仅第一部分中的虚拟机在第一时间执行。

著录项

  • 公开/公告号CN112955870A

    专利类型发明专利

  • 公开/公告日2021-06-11

    原文格式PDF

  • 申请/专利权人 谷歌有限责任公司;

    申请/专利号CN201980063961.8

  • 发明设计人 克日什托夫·杜莱巴;

    申请日2019-12-11

  • 分类号G06F9/50(20060101);

  • 代理机构11219 中原信达知识产权代理有限责任公司;

  • 代理人周亚荣;邓聪惠

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 11:21:00

说明书

相关申请的交叉引用

本申请要求2019年4月24日提交的美国临时专利申请No.62/837,755的申请日的权益,其公开内容通过引用并入本文。

背景技术

分布式网络向客户提供可扩展的计算资源。客户能够取决于客户的需要而度量在任何给定时间消耗的资源量。附加地,客户可能对计算资源要求承诺,由此客户所要求的资源通常以降低的成本专用于客户。此类承诺允许客户在任何时间使用多达一定量的并发资源,而高于那个量的任何资源使用被以通常诸如按需费率的较高的费率收费。

客户的需要可以包括等待时间敏感的工作负载和等待时间容忍的工作负载两者。在等待时间容忍的工作负载的情况下,如果客户要求的已分配资源已经在使用中并且客户将需要为附加资源的使用付费,则立即启动工作负载可能是不利的。然而,在等待时间敏感的工作负载的情况下,使工作负载延迟可能是不利的。

发明内容

一种分布式系统中的调度器能够针对给定工作负载,确定是将该给定工作负载调度为仅由分布式系统中的专用计算资源执行还是由分布式系统中的专用计算资源和非专用计算资源两者的组合执行。这种确定可以对照用于执行工作负载的时间敏感性来使执行工作负载的成本平衡,因为并非所有资源都可以被同等地评定,并且并非所有工作负载都可以是同等地时间敏感的。例如,专用计算资源可以由用户以打折扣的固定费率提前分配,然而非专用计算资源可以供用户使用以用于根据需要但以不打折扣的、按需费率的分配。附加地,一些工作负载可以是等待时间敏感的并且需要立即或几乎立即注意,然而其他工作负载可以是等待时间容忍的并且可以被延迟达一定时间。基于这些因素调度工作负载可以为用户节省资源和成本。

附图说明

图1是图示根据本公开的各方面的示例系统的框图。

图2是图示根据本公开的各方面的调度器的另一框图。

图3是图示根据本公开的各方面的示例工作负载的图。

图4是图示根据本公开的各方面的示例方法的流程图。

具体实施方式

技术通常涉及一种用于调度等待时间容忍的工作负载的系统。该系统可以包括在调度等待时间容忍的工作负载时考虑专用于用户的已分配资源的调度器或调度程序。该程序还能够考虑已分配资源在当前时间和将来时间两者的消耗状态,诸如在当前时间的消耗状态、在稍后的时间内调度的项目以及预报的消耗状态。

在一些实现方式中,调度程序能够被存储在具有跨一个或多个数据中心的多个虚拟机的分布式网络中。

在一个实现方式中,当调度程序接收到要调度的工作负载项目时,这些项目可以在缓冲器中排队。每个项目可以与特定工作负载相关联。在一些实现方式中,可以按预期为执行工作负载所需要的虚拟机(VM)核的量而测量工作负载的大小。在其他实现方式中,可以按预期为执行工作负载所需要的随机存取存储器的量而测量工作负载的大小。在其他实现方式中,可以考虑核和RAM两者。

在一些实现方式中,每个任务可以进一步与优先级水平相关联。优先级水平可以指示给定工作负载是等待时间敏感的还是等待时间容忍的以及到什么程度。优先级水平可以为到应该执行工作负载时的期限,诸如开始期限。例如,期限可以指示从当工作负载被发送到调度器时起直到必须开始执行工作负载为止的时间量。这可使调度器能够使对用于等待时间容忍的工作负载的用户的承诺资源的消耗最小化,同时确保等待时间敏感的工作负载被适当地处理并且等待时间容忍的工作负载被及时执行。

在一些实现方式中,如果工作负载未被调度为被立即执行,则可以基于对将来资源利用的预测或预报来为稍后的时间调度它。预报可以基于用户的历史使用模式。模式可以指示足够的承诺资源很可能或甚至最可能可用于执行工作负载的即将到来的时间。然后可能将工作负载调度为在那个即将到来的时间被进行。

在一些情况下,当用户的承诺资源总是接近其极限运行时,可能不存在足够的承诺资源将可用于适合整个工作负载的任何时间。在这样的情况下,调度器可以基于预报总资源利用很可能最小的时间,然后为那个时间调度任务。

以上实现方式能够确保对承诺资源的使用被最大化,并且还确保对非承诺资源的使用被最小化。这进而能够为用户节省资源和成本,因为对非承诺资源的使用通常比对承诺资源的使用成本更高。

图1是图示包括分布式数据库的示例系统的框图。图1图示示例系统100。系统100包括一个或多个虚拟机166的分布式网络,每个虚拟机具有专用于用户的承诺虚拟机168的第一部分和按需虚拟机169的第二部分。系统还可以包括被配置成接收与用户相关联的工作负载232的工作负载调度器184。调度器可以确定是将给定工作负载调度为由第一部分和第二部分中的虚拟机的组合执行还是由包括在仅第一部分中的虚拟机执行。如果在第一时间的给定工作负载的预期资源消耗水平和虚拟机的第一部分的第一消耗水平之和小于或等于包括在第一部分中的资源的总量,则可以将给定工作负载调度为由仅第一部分中的虚拟机在第一时间执行。

根据实施例,系统100包括分布式数据库,该分布式数据库可以包括多个数据中心162、172、182。每个数据中心可以与相应的主机或服务器160、170、180相关联。服务器160、170,180可以例如通过网络150彼此通信。服务器160、170、180可以进一步与诸如客户端计算系统或客户端110、120的多个客户端设备进行通信。

客户端110、120中的每一个均可以包括处理器112和存储器114。存储器114可以包括数据116和指令118中的任何一个或组合。包括在存储器114中的数据116可以由处理器110基于指令118来分析或以其他方式处理。客户端110、120可以通过传送或接收操作、通过网络150与一个或多个服务器160、170、180传递数据116。虽然示出了仅几个客户端,但是应该理解,大量客户端设备可以通过网络150与分布式数据库进行通信。

每个数据中心162、172、182可以包括许多存储设备164,诸如硬盘驱动器、随机存取存储器、磁盘、磁盘阵列、磁带驱动器或任何其他类型的存储设备。数据中心162、172、182可以实现许多架构和技术中的任何一种,包括但不限于直接附连存储(DAS)、网络附连存储(NAS)、存储区域网络(SAN)、光纤通道(FC)、以太网光纤通道(FCoE)、混合架构网络等。数据中心除了包括存储设备之外还可以包括许多其他设备,诸如敷设电缆、路由器等。另外,在一些示例中数据中心162、172、182可以为虚拟化环境。

每个服务器160、170、180可以包括许多处理器。可以利用处理器作为用于从客户端110、120接收的工作负载,诸如由客户端卸载以由服务器执行的计算任务的计算资源。处理器可以为虚拟机166,为此可以在包括在分布式网络100的各种数据中心162、172、182中的虚拟机之间划分给定工作负载。出于图示的目的,虚拟机166在图1中被示出为被包括在数据中心162中,但是虚拟机可以分布在数据中心之间。虚拟机166可以累积地提供一定量的处理能力(例如,一定量的处理器或核)以及一定量的随机存取存储器以用于完成被提供给数据中心162、172、182的各种任务或工作负载。

分布式网络100的虚拟机166的第一部分168可以专用于给定用户,由此可以使虚拟机的第一部分168始终保持可用于完成从给定用户的客户端设备接收的工作负载。剩余虚拟机166中的全部或一些可以构成给定用户可能有权利用但是不专用于给定用户的第二部分169。例如,虚拟机169的第二部分可以供用户以按需资源消耗成本使用,然而虚拟机的第一部分可以供用户以固定费率资源消耗成本使用。在这样的示例中,固定费率成本可能已由用户预付费,并且与按需成本比较可能打折扣。按需成本本身可以为固定量,或者可以取决于诸如实际或一般的服务器需求和业务、一天的时间、可用的剩余带宽等的各种因素而变化。

数据中心162、172、182可以被定位为彼此相距相当大的距离。出于本公开的目的,数据中心可以足够近,使得给定工作负载可以跨数据中心的虚拟机散开。在这方面,数据中心可以被包括在公共地区中。在其他情况下,数据中心可以跨公共区域内的多个地区散开。在又另外的情况下,数据中心可以跨多个地区散开,诸如被定位在世界各个位置中。

虽然示出了仅几个服务器,但是应该理解,可以在分布式数据库中包括任何数目的服务器。类似地,虽然每个服务器160、170、180被示出为与它自己的数据中心相关联,但是应该理解,在其他示例中服务器可以与一个或多个较小的数据库相关联。例如,一个数据库可以包括多个服务器。分布式系统的示例在美国专利申请No.13/905,637中被进一步描述,该申请通过引用整体地并入本文。

数据中心162、172、182还可以包括存储在存储设备中的调度器174。调度器174可以被配置成接收通过网络从客户端110、120发送的工作负载,并且调度要由虚拟机166执行的工作负载。

图2是图示示例调度器174的框图。调度器174可以包括指令210和数据220的组合。指令210可以包括用于促进从客户端接收的工作负载的调度的操作。这些操作可以用于确定工作负载将被执行的时间。例如,为了确定是否在给定时间执行工作负载,指令210可以包括用于确定专用计算资源(例如,图1的虚拟机166的第一部分168)是否可用于在给定时间完成工作负载的可用性检查操作212以及用于确定工作负载的时间敏感性是否在给定时间内的优先级检查操作214。可以提供工作负载重新调度操作218以便推迟工作负载的调度直到稍后的时间。可以包括资源消耗预报操作218以便预测在将来时间的资源的可用性。在下面的示例方法中更详细地描述这些和附加操作。

数据220可以包括各种数字和统计,据此可以做出调度器的调度确定。一些数字可以为固定值,然而其他值可以随着时间的推移而变化。例如,数据220可以包括专用计算资源(例如,图1的虚拟机166的第一部分168)的消耗水平222、专用计算资源的阈值消耗水平224、指示专用计算资源在过去时间跨度之上的消耗水平的历史使用数据226、以及指示专用计算资源在将来时间跨度之上的预测或预报消耗水平的预报数据228。在下面的示例方法中更详细地描述这些和附加值。

附加地,调度器174可以包括用于存储从客户端接收的工作负载232的缓冲器230。可以通过缓冲器使工作负载以先进先出方式排队,由此工作负载可以由调度器按照它们被接收的次序调度。

图3是图示示例缓冲器230的图。在图3的示例中,示出了工作负载——工作负载_1、工作负载_2、工作负载_3、工作负载_4至工作负载_n。每个工作负载根据名称被标识,并且还包括指示工作负载的诸如消耗成本和优先级水平的其他属性的值。

消耗成本可以指示工作负载的预期消耗水平,诸如在执行工作负载时预期消耗多少虚拟机。在一些示例中,消耗成本可以为核的数目。在其他示例中,消耗成本可以为随机存取存储器的量。在图3的示例中,消耗成本指示核的数目和随机存取存储器的量中的每一个,并且可以独立地或相结合地在调度工作负载的同时考虑这些值中的每一个。

优先级水平可以为工作负载的紧急性的指示。例如,可以将第一值(对应于“紧急”)指派给等待时间敏感的工作负载,然而可以将不同的第二值(对应于“非紧急”)指派给等待时间容忍的工作负载。在图3的示例中,优先级水平指示开始期限,该开始期限可以为要开始的工作负载的时间量。在这方面,调度器可以跟踪从当工作负载被接收时起的时间量,并且可以在由优先级水平指示的时间量内调度要在给定时间执行的工作负载。

图4是图示用于调度在调度器处接收的多个工作负载的示例方法400的流程图。在框410处,调度器接收多个工作负载。可以通过分布式系统的网络从对其来说在分布式系统中存在许多专用虚拟机的给定用户的一个或多个客户端设备接收工作负载。工作负载可以按照它们被接收的次序在队列或缓冲器中被排序。

在框420处,调度器可以选择队列中的顶部项目。例如,调度器可以访问队列中的诸如图3的示例中的工作负载_1的顶部项目的属性。

在框430处,调度器可以确定是将工作负载调度为由专用虚拟机和非专用虚拟机的组合还是由仅专用虚拟机执行。例如,对于给定第一时间,确定可以基于在第一时间的给定工作负载的预期资源消耗水平和专用虚拟机的第一消耗水平之和是否小于或等于包括在专用虚拟机中的资源的总量。专用虚拟机的第一消耗水平可以由调度器随着工作负载被指派给虚拟机来跟踪。

在框440处,如果在第一时间的预期资源消耗水平和第一消耗水平之和小于或等于包括在专用虚拟机中的资源的总量,则调度器可以将工作负载调度为由仅专用虚拟机在第一时间执行。换句话说,由于在第一时间在专用虚拟机处有足够的资源可用,所以调度器可以确定要使用剩余可用的专用虚拟机的全部或一部分来执行整个工作负载,而不必使用非专用虚拟机中的任一个。

相反地,如果在第一时间的预期资源消耗水平与第一消耗水平之和大于包括在专用虚拟机中的资源的总量,则工作负载调度器可以将工作负载调度为由专用虚拟机和非专用虚拟机的组合执行。换句话说,由于在专用虚拟机处没有足够的资源可用,所以调度器可以确定要使用剩余可用的专用虚拟机来执行工作负载的一部分,并且使用非专用虚拟机来执行工作负载的剩余部分。

在一些示例中,可以基于工作负载的优先级水平来进一步确定将工作负载调度为由专用虚拟机和非专用虚拟机的组合执行。例如,在框450处,工作负载调度器可以基于优先级水平来确定是否将工作负载调度为由仅专用虚拟机执行。例如,如果优先级水平是工作负载为紧急的指示,或者如果优先级水平是指示到时必须开始工作负载并且第一时间在开始期限处或在开始期限之后的开始期限,则在框460处,调度器可以将工作负载调度为由专用虚拟机和非专用虚拟机的组合在第一时间执行。相反地,如果优先级水平是工作负载为不紧急的指示,或者优先级水平是到时必须开始工作负载并且第一时间在开始期限之前的开始期限,则在框470处,调度器可以将工作负载调度为在晚于第一时间的不同的第二时间被执行。在第二时间,工作负载可以仅由专用虚拟机执行。

为第二时间调度工作负载可以涉及确定足够的专用资源可用的时间。为了做出这样的确定,调度器可以接收资源消耗预报。资源消耗预报可以指示专用虚拟机在将来的各个时间的预期资源消耗水平。调度器然后可以选择具有足够低的预期资源消耗水平的将来时间(例如,使得在被加到预期资源消耗水平时的工作负载的消耗水平小于或等于包括在专用虚拟机中的资源的总量)。在一些示例中,调度器可以在预报中包括的可能选项当中选择具有最低预期资源消耗水平的时间。

在框480处,调度器可以基于先前确定来调整专用虚拟机的消耗水平。例如,如果工作负载的全部或一部分被调度为由专用虚拟机在第一时间执行,则工作负载调度器可以将指派给专用虚拟机的工作负载的部分加到第一消耗水平。类似地,如果工作负载被调度为在第二时间被执行,则调度器可以将在第二时间指派给专用虚拟机的工作负载的部分加到专用虚拟机在第二时间的第二消耗水平。换句话说,在工作负载已被调度之后,调度器可以更新系统以指示专用虚拟机的剩余可用性以说明由所调度的工作负载占用的消耗。

在框490处,调度器可以检查队列以确定是否存在任何剩余未调度的工作负载。如果在队列中未剩余工作负载,则方法可以结束。如果在队列中剩余一个或多个工作负载,则操作可以回复到框420,并且可以选择队列中的下一个工作负载以供调度。调度过程可以针对队列中的每一工作负载重复,直到所有项目已被调度为止。

在图4的以上示例中,调度器在继续到下一个工作负载之前立即调度每个工作负载。然而,在另一示例中,如果调度器未调度要在第一时间执行的工作负载,则调度器可以替代地确定要推迟调度工作负载直到稍后的时间。推迟等待时间容忍的工作负载的调度可以是有益的,因为它释放要在不久的将来(当专用资源相对有限时)指派给更多等待时间敏感的工作负载的有限专用资源,同时推迟更少等待时间敏感的工作负载直到稍后的时间(当专用资源不太受比较限制时)。如果调度被推迟直到稍后的时间,则在该稍后的时间,可以将框430-480的操作应用于已推迟的工作负载以确定是否在已推迟的时间调度。

另外,在图4的以上示例中,调度器被描述为在考虑工作负载的优先级水平之前首先确定足够的资源是否可用于开始工作负载。然而,在其他示例方法中,调度器可以首先确定工作负载的优先级水平,并且然后取决于专用虚拟机的可用性而确定是否是为第一时间调度工作负载。例如,如果第一时间是当前时间,则可以优选地避免将等待时间容忍的工作负载调度为在更多等待时间敏感的工作负载正在队列中等待被调度的情况下被立即执行。因此,专用虚拟机的当前可用资源可以被保留用于不久将被接收或者已被接收但仍然尚未被调度的紧急工作负载。

参考前述资源消耗预报,预报可以基于历史使用数据。历史使用数据可以指示专用计算资源在各个过去时间的消耗水平。例如,历史使用数据可以指示在一天的给定时间、一周的给定天、一年的给定天或以上的任何组合的资源消耗。这些过去的指示可以用于预测专用虚拟机在将来可比较时间处的资源消耗怎么样。例如,给定区域或地区(例如,美国中部、东欧地区)中的专用虚拟机的历史使用数据可以指示在该区域或地区处的整夜小时期间的相对低资源消耗。再例如,历史使用数据可以指示在周末期间的低资源消耗。这些指示在专用虚拟机在将来整夜小时期间或在将来周末期间将可用时的预报中是有用的。

在一个示例中,可以使用确定性算法来执行基于历史使用数据的预报,诸如计算出在给定时间(例如,一天的时间、一周中的天等)内的资源消耗的均值、中值或模式。在另一示例中,可以使用机器学习模型来执行预报。可以使用诸如历史使用数据的训练数据来教导机器学习模型。附加地或替选地,可以动态地训练机器学习模型,由此当新的资源消耗数据变得可用时,机器学习算法本身能够基于新的资源消耗数据被更新,以便改进对资源可用性的将来预报。在这方面,机器学习模型可以被包括在分布式系统中,并且可以由调度器访问以便做出明智的预报和调度确定。在以上示例中,机器学习模型可以为监督或强化学习算法的形式,诸如回归算法、马尔可夫决策过程、神经网络等。

在一些情况下,资源消耗预报可能不指示可以通过专用计算资源完成给定工作负载的任何时间,诸如如果工作负载需要比用户已预付费多的资源。在这样的情况下,调度器仍可以使用预报来确定何时可以开始工作负载的最佳时间,诸如当预期最大量的专用资源可用时的时间。

为了图示图4的示例方法,考虑已在分布式系统中为1000个核和1000GB的RAM预付费的用户。该用户可以为个人或公司。在任何一种情况下,用户可以与多个客户端设备相关联,由此用户已预付费的专用核和RAM可以用于完成从用户的客户端设备中的任一个接收的工作负载。

来自用户的客户端设备的多个工作负载可以被存储在调度器缓冲器中,并以先进先出次序调度。为了示例起见,如果在第一时间(例如,第一时间是接收工作负载的时间)未使用500个核和700GB的RAM,并且如果缓冲器中的第一工作负载需要250个核和250GB的RAM,则可以为第一时间调度第一工作负载。既然现在未在使用250个核和450GB的RAM,可以更新可用资源的指示以说明已调度的第一工作负载。如果缓冲器中的第二工作负载需要250个核和500GB的RAM,则调度器可以确定在专用资源中没有剩余足够的存储器用于在不购买按需资源的情况下执行工作负载。如果第二工作负载被指示为具有低优先级水平,则调度器可以将工作负载调度为在稍后的时间(诸如在夜间)被执行。如果缓冲器中的第三工作负载需要400个核和450GB的RAM,则调度器可以确定在专用资源中没有足够的处理器可用于在不购买按需资源的情况下执行工作负载。然而,如果第三工作负载被指示为具有高优先级水平,则调度器然而可以将工作负载调度为在当前时间被执行,由此工作负载的至少一部分由包括在虚拟机中的按需核执行。

在调度第三工作负载时,用户的专用资源可能完全在使用中。调度器可以被配置成在定期基础上更新资源的消耗水平数据(例如,拉出资源消耗数据、资源消耗数据被推送给调度器)。例如,当工作负载完成时,调度器可以能够从当前消耗水平中扣除已结束工作负载的开销,使得可以将被调度的将来工作负载调度为通过最近释放的专用资源来执行。

以上示例假定用户已为处理器和存储器两者预付费。然而,在其他示例中,用户可能已为处理器或存储器中的仅一者预付费,并且调度器可以在确定足够的专用资源是否可用时仅考虑已预付费的特征。

在用户的资源被充分地使用的同时,可以为稍后的时间调度由调度器接收到的等待时间容忍的工作负载,并且可以将等待时间敏感的工作负载调度为被立即执行。例如,用户可以为要花费的资源或通过在给定天中处理工作负载所引发的成本设定预算。当已满足或超过预算时,可以将要关闭虚拟机的工作负载发送到调度器。工作负载可能是高度等待时间敏感的。因此,即使在接收到工作负载时所有专用资源都被占用,调度器也可以确定要将工作负载调度为由按需资源立即执行。

能够在合作者调度要完成的分批过程的情况下发现上述示例系统和方法的一个示例好处。每个合作者可能希望访问相同的专用虚拟机,并且分批过程可以为等待时间容忍的。因此,调度器可以将分批过程中的每一个调度为由专用虚拟机整夜执行,与在营业时间期间相反。而且,尽管合作者的客户端设备可能已将这些过程中的每一个调度为由专用虚拟机同时(例如,在午夜)执行。这将导致过程中的一些由专用虚拟机执行,而剩余过程由非专用按需虚拟机执行。相比之下,调度器能够使分批过程在一定时间跨度之上散开。例如,可以为午夜调度在调度器处接收的第一过程,而如果可用资源被第一过程占用,则可以为稍后的时间如凌晨2点调度由调度器接收的下一个过程。剩余过程可以同样地由调度器依照上述系统和方法调度。

以上示例系统和方法可以用于确保在同时管理用户的资源成本的同时,用户的等待时间最敏感的工作负载被迅速地处理。

除非另外陈述,否则前面的替选示例不是互相排斥的,而是可以被以各种组合实现以实现独特的优点。由于能够在不脱离由权利要求限定的主题的情况下利用以上讨论的特征的这些及其他变化和组合,所以应该通过图示的方式而不是通过限制由权利要求限定的主题的方式进行实施例的前面的描述。此外,本文描述的示例以及措词为“诸如”、“包括”等的子句的提供不应该被解释为将权利要求的主题限于具体示例;相反,示例旨在图示许多可能的实施例中的仅一个。另外,不同的附图中的相同的附图标记能够标识相同或类似的元件。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号