首页> 中国专利> 工作流执行中系统资源的公平共享

工作流执行中系统资源的公平共享

摘要

一种方法可以被实践在向多个租户提供计算资源的分布式计算环境中。该方法包括用于向租户分配有限的系统资源集合的动作。该方法包括标识资源切片。该方法还包括标识执行的租户工作负载。检查点特性被标识,用于执行的租户工作负载。基于检查点特性和资源切片,任务驱逐事件被标识。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-29

    授权

    授权

  • 2017-06-06

    实质审查的生效 IPC(主分类):G06F9/48 申请日:20150820

    实质审查的生效

  • 2017-05-10

    公开

    公开

说明书

背景技术

计算系统的互连已经促进了分布式计算系统(诸如,所谓的“云”计算系统)。在本描述中,“云计算”可以是用于使得能够普适、方便、按需地网络访问可配置计算资源(例如,网络、服务器、存储、应用、服务等)的共享池的系统或资源,在减少的管理工作或服务提供商的互动的情况下,可配置计算资源可以被提供和发布。云模型可以包括各种特性(例如,按需自助服务、广泛的网络访问、资源池、快速弹性、可度量的服务等)、服务模型(例如,软件即服务(“SaaS”)、平台即服务(“PaaS”)、基础设施即服务(“IaaS”))和部署模型(例如,私有云、社区云、公共云、混合云等)。

一些云提供商使用分区的按比例放大方法来允许服务缩放以增加使用。服务实现了支持已知用户集合的缩放单元(有限资源集合)的概念。当(Hit)现有缩放单元的用户限制被达到时,通过增加所需要的附加的缩放单元来增加容量。用户限制被定义为给定数目的用户,这些用户将被关联到执行其所有工作负载请求的缩放单元。

缩放单元内的可用资源集合是有限和固定的,但是系统必须能够处理由所关联的用户请求的变化的工作负载加载,而不会在工作负载保证执行时间的方面妥协最终用户服务水平协议(SLA)。存在可能解决该问题的各种方法。

一种方式是动态地向外扩展或向上扩展。这种方法需要基于当前需求因素,系统资源的及时添加或删除。对实时运行的服务实现这样的方法需要一组难以实现和维护的依赖因子,更不用说当弹性扩展或收缩时由于时间考虑在容量方面需要的缓冲器。

另一种解决方案是基于工作流分析,来确定工作负载持续时间。目的是防止超过某个持续时间的工作负载运行。该解决方案可能很难实现。例如,工作流可以包含单个调用,该单个调用在内部被实现为被阻止调用的无限循环。此外,限制用户被允许在工作流中使用的活动集合创建了不好的用户体验。

本文要求保护的主题不限于解决任何缺点或仅在诸如以上描述的环境中操作的实施例。相反,仅提供该背景以图示其中可以实践本文所描述的一些实施例的一个示例性技术领域。

发明内容

本文所图示的一个实施例包括一种方法,该方法可在分布式计算环境中实践,该分布式计算环境向多个租户提供计算资源。该方法包括用于向租户分配系统资源的有限集合的动作。该方法包括标识资源切片。该方法还包括标识执行的租户工作负载。检查点特性被标识,用于执行的租户工作负载。基于检查点特性和资源切片,标识任务驱逐事件。

另一个实施例包括云服务,其被配置为向云服务的租户公平地分配资源的有限集合。云服务包括调度服务。调度服务被配置为从云服务的租户接收工作负载。云服务包括多个工作器(Worker),其被耦合到调度服务。工作器被配置为从调度服务接收工作负载。工作器被配置为结合对工作负载的检查点设置的评估,基于资源切片执行来自租户的工作负载,使得任务驱逐事件基于资源切片和工作负载检查点设置。

提供本发明内容来以简化形式介绍选择的概念,该选择的概念将在以下详细描述中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用作帮助确定所要求保护的主题的范围。

附加的特征和优点将在下面的描述中阐述,并且部分地将从描述中显而易见,或者可以通过本文的教导的实践而了解。本发明的特征和优点可以通过在所附权利要求中特别指出的仪器和组合来实现和获得。从下面的描述和所附权利要求中,本发明的特征将变得更加显而易见,或者可以通过如下所述的本发明的实践来了解本发明的特征。

附图说明

为了描述可以获得以上记载的和其他的优点和特征的方式,将通过参考在附图中图示的具体实施例来呈现上面简要描述的主题的更具体的描述。应当理解,这些附图仅描绘了典型的实施例,并且因此不被认为是范围上的限制,将通过使用附图以附加的特点和细节来描述和解释实施例,其中:

图1图示了被配置为公平分配云资源的基于云的系统;

图2图示了当时间切片到期时发生的驱逐事件;

图3图示了在时间切片的预定部分中发生的驱逐事件;

图4图示了基于存在于时间切片的预定部分中的检查点设置被扩展的时间切片;

图5图示了基于存在于时间切片的预定部分中的检查点设置被扩展的时间切片;以及

图6图示出了用于向分布式计算系统的多个租户提供资源的方法。

具体实施方式

本文所图示的一些实施例为工作负载实现保证的执行资源切片,作为确保系统资源的公平共享的方式,该工作负载可以被持续化、驱逐并且稍后从最后持续化状态(即,被设置检查点的工作负载)恢复。可以切割各种不同的资源。例如,可以实现一个或多个系统资源的时间切片。因此,例如,切片可以是处理器的定时量、存储器访问的定时量、存储访问的定时量、网络使用的定时量或其组合中的一个或多个。备选地或附加地,资源切片可以是多个命令(例如,脚本活动)。备选地或附加地,资源切片可以是多个处理器操作。备选地或附加地,资源切片可以是一定量的网络资源,诸如在网络上传输的数据量。备选地或附加地,资源切片可以是一定量的存储资源,诸如去往存储设备和来自存储设备的一定量的I/O。备选地或附加地,资源切片可以是沙箱(Sandbox)执行环境资源。备选地或附加地,资源切片可以是一定量的存储器资源等。尽管多个不同的资源切片可以被单独或组合地使用,下面的示例在时间切片的背景中示出,但是可以替换其他资源切片。

现在参考图1,示出了一个示例。在图1所示的示例中,云服务100为云服务100的租户102-1、102-2、102-3至102-n执行工作负载。在所示的示例中,租户向调度服务106发送工作负载104-1、104-2、104-3到104-m。调度服务106向各个工作器108-1、108-2至108-p分配工作负载。工作器使用云服务100的某些资源。

为确保公平地共享资源,在工作负载被驱逐之前,可以允许工作负载仅使用给定量的资源以给予执行其他工作负载的机会。如果工作负载没有在驱逐时完成,则工作负载将在调度服务106中重新排队,使得它们可以被给予使用云服务资源的另一回合(Turn)。

在一个典型示例中,资源被时间切片。因此,例如,工作负载可以被给予一定量的时间来完成、或者到达检查点,其中工作负载上的工作可以容易地持续化,使得当工作负载再次被分配给工作器时,工作负载可以从持续化状态继续。如果工作负载达到检查点并且仍然持续,则工作负载可以被驱逐。这将持续已经为工作负载执行的工作。如果工作负载超过时间量(或在其他实施例中为其他资源切片分配),则即使状态不能被持续,也驱逐工作负载。这将导致工作负载上的已完成工作的损失。因此,可以将工作负载分配给工作器,诸如工作器108-1。在该示例中,工作器将执行工作负载,直到预定的时间量到期。如果时间到期而没有持续工作负载,则工作负载将被驱逐。如果工作负载达到检查点并且被持续,在这种情况下工作负载也将被驱逐。

注意,公平性不一定意味着资源被均匀地划分。公平性可以考虑几个不同的因素,该几个不同的因素导致一些租户被提供有比其他租户更大的资源份额。例如,与其他租户相比,已经为更高的服务等级支付额外费用的租户可以被分配有更大的资源份额实施为更大的资源切片。附加地,如下面将详细描述的,当工作负载符合某些标准时,云服务100可以提供用于使用资源的更多灵活性作为激励。

具体地,实施例可以激励检查点设置。以某种方式检查点设置其工作负载的租户可以在资源切片的限制中给予一些灵活性。因此,例如,一些实施例可以考虑到检查点的邻近点,作为用于确定何时驱逐工作负载的启发式(Heuristic)方法的一部分。租户可以在其工作负载中构造检查点设置,以确保禁止邻近点来使其工作负载被给予良好的处理。

以下图示了其中资源切片是处理器的时间切片的示例。然而,应当理解,如上所述,可以备选地或附加地使用其他资源切片。因此,以下示例不应被解释为仅将资源切片的范围限制为时间切片。

一些实施例可以使用可从华盛顿州雷蒙德市的微软公司获得的AzureAutomation Service工作负载管理来实现。然而,实施例实际上可以被任何多租户系统使用,该多租户系统必须提供系统资源的公平共享,该多租户系统运行各种持续时间(或其他资源描述)的工作负载,该多租户系统支持运行时间状态持续性。

在所示示例中,来自租户的工作负载请求(例如,请求104-1到104-m)被放置在工作器队列(例如,队列110-1、110-2到110-p)中的一个队列中,工作器108-1到108-p基于系统资源可用性,从工作器队列中从拾取工作负载请求。每个工作器负责处理单个队列。

当工作负载被加载到存储器中时,记录时间。在运行时,工作负载可以持续多次。由工作流作者决定工作负载何时持续。取决于执行时间切片何时到期以及上次何时持续工作负载,工作负载被驱逐。可以实现各种驱逐规则。示出了一些具体示例。

例如,参考图2,当执行时间切片到期时,驱逐在执行时间切片的最后10%(或一些其他选择的百分比或部分)中不具有任何检查点的工作负载。参考图3,在执行时间切片的最后10%(或一些其他选择的百分比或部分)中具有检查点的工作负载在它们持续之后被驱逐。该行为导致更好的客户体验,因为当重新激活时,工作负载从检查点继续其执行。

在一个变体中,实施例可以通过允许它们运行多于时间切片高达10%(或一些其他选定的百分比或部分)以“奖励”具有频繁检查点的工作负载来激励检查点设置的行为。如图4和图5所示,允许在时间切片的最后10%(或一些其他选定的百分比或部分)中具有检查点的工作负载运行多于时间切片的10%(或一些其他选定的百分比或部分)或直到它们被驱逐(参见图4)或持续(参见图5)。

被驱逐的工作负载的运行时间状态不被改变,但是指示工作负载不再在存储器中的描述被附接到工作负载。例如,“正在运行”的工作负载变为“正在运行、等待资源”。

实施例可以容许被驱逐的工作负载分配给不同的工作器作为将多个工作器之间的工作负载分布平均的方式。实施例可以在做出工作负载布置决定时考虑工作器上的资源利用的直接历史。被驱逐的工作负载被放置在可用工作队列之一(例如,110-1到110-p之一)的后部处。可以随机选择或基于工作器资源可用性来选择可用队列。

当新分配的工作器(例如,108-1至108-p中的一个)从队列再次拾取工作负载时,从最后可用的检查点重新激活工作负载。

在工作流中存在围绕检查点的促进该执行模型的一些最佳实践。用户应该确保工作负载经常持续,并且执行是幂等的(即,如果工作负载从检查点多次运行,则结果是相同的)。如果工作负载不包含检查点或者不设法在多个尝试之后从现有检查点进展,继而实施例可以将其标记为“失败”并且停止尝试将其重新激活。还可以向租户通知失败。在一些实施例中,实施例可以通知租户,如果其被设置检查点或具有更频繁的检查点设置,则工作负载将更可能成功。

现在以下的讨论涉及可以被执行的多个方法或方法动作。尽管可以以某个顺序或作为以特定顺序发生的流程图中图示的顺序来讨论方法动作,但是除非特别说明或由于动作取决于在动作之前完成的另一动作来执行所需要,否则不需要特定顺序。

现在参考图6,图示了方法600。方法600可以被实践在向多个租户提供计算资源的分布式计算环境中。该方法包括用于向租户(以公平的方式)分配有限的系统资源集合的动作。该方法包括标识资源切片(动作602)。例如,资源切片可以是以下中的一个或多个:时间切片、多个命令(例如,脚本活动)、处理器资源、网络资源、存储资源、沙箱执行环境资源、存储器使用、I/O等。

在一些实施例中,资源切片是动态可配置的。因此,例如,资源切片可以取决于多个不同因子在幅度上改变。在一个示例中,基于手动设置资源切片可以动态地重新配置。因此,云服务处的管理员可以手动地设置资源切片的大小。备选地或附加地,资源切片可基于负载动态地可配置。因此,例如,如果存在对资源的低需求,则资源切片可以大于存在对资源的高需求的情况。备选地或附加地,可以基于一天中的时间、一年中的时间、季节等来动态地配置资源切片。因此,例如,与一年中其他较少需求的季节期间相比,处理电子商务租户的云服务在节假日购物季节期间可以具有较小的资源切片分配。

方法600还包括标识执行的租户工作负载(动作604)。例如,实施例可以标识在工作器(例如,工作器108-1到108-p之一)上执行的工作负载。

方法600还包括标识用于执行租户工作负载的检查点特性(动作606)。工作流将标识工作流中可由云服务标识的检查点。这可以包括标识工作流中是否存在检查点、检查点存在于工作流中的哪里、对于工作流多长时间执行一次检查点设置、对于工作流执行检查点设置的一致性如何等。

基于检查点特性和资源切片,方法600还包括标识任务驱逐事件(动作608)。检查点的位置可以影响任务驱逐事件如何发生以及何时发生。例如,在一些实施例中,标识任务驱逐事件包括:当资源切片到期之前检查点设置发生时,在资源切片到期之前驱逐租户工作负载。其示例在上面图3中示出。

备选地或附加地,标识任务驱逐事件包括:在检查点设置发生在资源切片到期的预定扩展内时,在资源切片到期的某一预定扩展内驱逐租户工作负载。其示例在上面的图5中示出。

方法600还可以包括在没有检查点设置预定次数的情况下,确定租户工作负载继续被驱逐。因此,方法600包括执行校正功能。因此,例如,如图2所示,工作负载可以在其可以被设置检查点之前被驱逐。被驱逐的工作负载可以被重新调度并且重试一次或多次。

一旦工作负载已经被重试预定次数,则执行某些其他校正动作。这可以是对工作负载的校正动作。例如,校正动作可以包括终止工作负载以防止工作负载的未来重试。备选地或附加地,校正动作可以包括扩展资源切片以授予某些附加资源来执行工作负载。在一些实施例中,这可以通过高级购买、自动向租户收取附加的金额等来执行。备选地或附加地,这可以是关于租户执行的校正动作。例如,可以通知租户,归因于检查点设置不足,工作负载无法完成。在一些极端情况下,由于不符合检查点设置要求,租户可以被禁止使用云服务或者处于一些试用状态。

方法600还可以包括标识在工作负载队列上不存在负载,并且作为结果,即使该工作负载超过了通常会导致工作负载被驱逐的资源切片约束,也不执行某一事件。因此,例如,如果在工作负载队列中不存在其他待定的工作负载,并且工作负载应当已经被驱逐,则可以授予附加的资源以允许完成工作负载。

方法600还可以包括基于用户的检查点的使用来通知用户其工作负载的建设性处理(诸如,将资源切片扩展一定量)。例如,可以在周期性地提供的服务报告中,通知租户关于其工作负载的建设性处理的数量已经基于租户对检查点设置的使用而被授予。备选地或附加地,每当授予建设性处理时,可向租户发出警告。附加地或备选地,可以使用其他方法来警告用户有利的处理。

此外,该方法可以由包括一个或多个处理器以及诸如计算机存储器的计算机可读介质的计算机系统来实现。特别地,计算机存储器可以存储计算机可执行指令,当由一个或多个处理器执行时,计算机可执行指令导致执行诸如实施例中记载的动作的各种功能。

如下面更详细地讨论的,本发明的实施例可以包括或利用包括计算机硬件的专用或通用计算机。在本发明的范围内的实施例还包括物理的和其他的计算机可读介质,用于携带或存储计算机可执行指令和/或数据结构。这样的计算机可读介质可以是能够由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,以示例的方式而非限制的方式,本发明的实施例可以包括至少两种截然不同种类的计算机可读介质:物理计算机可读存储介质和传输计算机可读介质。

物理计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器(例如,CD、DVD等)、磁盘存储器或其他磁存储设备、或者可以用于以计算机可执行指令或数据结构的形式存储期望的程序代码装置、并且可以由通用或专用计算机访问的任何其他介质。

“网络”被定义为一个或多个数据链接,其实现在计算机系统和/或模块和/或其他电子设备之间电子数据的传输链接。当通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)向计算机传送或提供信息时,计算机适当地将该连接视为传输介质。传输介质可以包括网络和/或数据链接,网络和/或数据链接可以用于以计算机可执行指令或数据结构的形式携带期望的程序代码装置,并且可以由通用或专用计算机访问。上述的组合也包括在计算机可读介质的范围内。

此外,在到达各种计算机系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以从传输计算机可读介质被自动传递到物理计算机可读存储介质(反之亦然)。例如,在网络或数据链接之上所接收的计算机可执行指令或数据结构可以缓存在网络接口模块(例如,“NIC”)内的RAM中,然后被最终传递到计算机系统RAM和/或较计算机系统处的不易失计算机可读物理存储介质。因此,计算机可读物理存储介质可以包括在同样(或甚至主要)利用传输介质的计算机系统组件中。

计算机可执行指令包括例如使得通用计算机、专用计算机或专用处理设备执行某一功能或某一组功能的指令和数据。计算机可执行指令可以是例如二进制、诸如汇编语言的中间格式指令、或甚至源代码。尽管已经以对结构特征和/或方法动作专用的语言描述了主体,但是应当理解,所附权利要求中定义的主体不一定限于所描述的特征或以上所描述的动作。相反,所描述的特征和动作作为实现权利要求的示例形式被公开。

本领域技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等。本发明还可以在分布式系统环境中实践,其中通过网络链接(通过硬连线数据链接、无线数据链接、或通过硬连线和无线数据链接的组合)的本地和远程计算机系统均执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。

备选地或附加地,可以由一个或多个硬件逻辑组件至少部分地执行本文所描述的功能。例如,在非限制的情况下,可以使用的硬件逻辑组件的示例类型包括:现场可编程门阵列(FPGA)、程序特定集成电路(ASIC)、程序特定标准产品(ASSP)、片上系统系统(SOC)、复杂可编程逻辑器件(CPLD)等。

在不脱离本发明的精神或特性的情况下,本发明可以以其他具体形式实施。所描述的实施例在所有方面都被认为仅是示例性的而不是限制性的。因此,本发明的范围由所附权利要求来指示而不由前面的描述来指示。在权利要求的等同物的含义和范围内的所有改变将被包括在其范围内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号