CN106663031B - 工作流执行中系统资源的公平共享 - Google Patents

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

Info

Publication number
CN106663031B
CN106663031B CN201580043865.9A CN201580043865A CN106663031B CN 106663031 B CN106663031 B CN 106663031B CN 201580043865 A CN201580043865 A CN 201580043865A CN 106663031 B CN106663031 B CN 106663031B
Authority
CN
China
Prior art keywords
workload
resource
computer system
resource slice
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.)
Active
Application number
CN201580043865.9A
Other languages
English (en)
Other versions
CN106663031A (zh
Inventor
N·兹拉蒂
F·M·T·乔
E·J·卡尔斯特罗姆
A·加格
I·塞杜克希恩
M·纳亚
M·埃内恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106663031A publication Critical patent/CN106663031A/zh
Application granted granted Critical
Publication of CN106663031B publication Critical patent/CN106663031B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Hardware Redundancy (AREA)

Abstract

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

Description

工作流执行中系统资源的公平共享
技术领域
本公开的实施例涉及系统资源的公平共享。
背景技术
计算系统的互连已经促进了分布式计算系统(诸如,所谓的“云”计算系统)。在本描述中,“云计算”可以是用于使得能够普适、方便、按需地网络访问可配置计算资源(例如,网络、服务器、存储、应用、服务等)的共享池的系统或资源,在减少的管理工作或服务提供商的互动的情况下,可配置计算资源可以被提供和发布。云模型可以包括各种特性(例如,按需自助服务、广泛的网络访问、资源池、快速弹性、可度量的服务等)、服务模型(例如,软件即服务(“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)等。
在不脱离本发明的精神或特性的情况下,本发明可以以其他具体形式实施。所描述的实施例在所有方面都被认为仅是示例性的而不是限制性的。因此,本发明的范围由所附权利要求来指示而不由前面的描述来指示。在权利要求的等同物的含义和范围内的所有改变将被包括在其范围内。

Claims (20)

1.一种用于有效地分配计算机系统的资源的有限集合来执行在一个或多个工作负载上的工作的方法,所述方法由所述计算机系统的一个或多个处理器执行,并且所述方法包括:
在确定所述计算机系统的资源之后,将所述计算机系统的资源进行切片来生成一个或多个资源切片,所述一个或多个资源切片可用于完成分配的工作负载;
在所述计算机系统处接收工作负载;
将所述工作负载分配给资源切片用于执行,其中队列与所述资源切片相关联,并且其中当所述工作负载等待被执行时,所述工作负载被放置在所述队列中;
在确定所述工作负载包括一个或多个检查点之后,确定所述工作负载的检查点中的至少一个检查点与所述资源切片的结束部分之间的邻域;
基于(1)所述工作负载的检查点中的所述至少一个检查点与所述资源切片的所述结束部分之间的所述邻域以及(2)所述资源切片的一个或多个的特性,确定用于从所述资源切片驱逐所述工作负载的驱逐时间;
在确定所述工作负载的检查点中的所述至少一个检查点与所述资源切片的所述结束部分之间的所述邻域满足邻域要求之后,使得所述资源切片在超出所述驱逐时间执行所述工作负载;以及
在所述驱逐时间已经过去之后,使得所述工作负载将从所述资源切片被驱逐。
2.根据权利要求1所述的方法,其中所述一个或多个资源切片是处理器使用的定时量的一个或多个。
3.根据权利要求1所述的方法,其中使得所述工作负载将从所述资源切片被驱逐包括:
在超出所述驱逐时间的预定扩展内,将所述工作负载从所述资源切片驱逐。
4.根据权利要求1所述的方法,其中所述资源切片包括以下中的一个或多个:时间切片、多个命令、一定量的处理器资源、一定量的网络资源、一定量的存储资源、一定量的沙盒执行环境资源、一定量的存储器或一定量的I/O。
5.根据权利要求1所述的方法,其中所述资源切片为动态地可配置。
6.根据权利要求1所述的方法,其中所述方法进一步包括:
确定所述工作负载在没有被完全地执行的情况下之前已经从资源切片所述被驱逐;以及
响应于确定所述工作负载没有被完全地执行,执行校正功能。
7.根据权利要求6所述的方法,其中所述校正功能包括终止所述工作负载。
8.根据权利要求6所述的方法,其中所述校正功能包括扩展所述资源切片。
9.根据权利要求1所述的方法,其中所述方法进一步包括:
确定不同的资源切片的不同队列为空;以及
响应于确定所述不同的资源切片没有任何排队的工作负载,扩展所述驱逐时间。
10.根据权利要求1所述的方法,其中所述方法进一步包括:
基于所述多个检查点,通知用户所述工作负载的建设性处理。
11.一种或多种物理计算机可读介质,所述计算机可读介质具有存储于其上的计算机可执行指令,所述计算机可执行指令由计算机系统的一个或多个处理器可执行,以通过使得所述计算机系统执行以下来使得所述计算机系统有效地分配所述计算机系统的资源的有限集合来执行在一个或多个工作负载上的工作:
在确定所述计算机系统的资源之后,将所述计算机系统的资源进行切片来生成一个或多个资源切片,所述一个或多个资源切片可用于完成分配的工作负载;
在所述计算机系统处接收工作负载;
将所述工作负载分配给资源切片用于执行,其中队列与所述资源切片相关联,并且其中当所述工作负载等待被执行时,所述工作负载被放置在所述队列中;
在确定所述工作负载包括一个或多个检查点之后,确定所述工作负载的检查点中的至少一个检查点与所述资源切片的结束部分之间的邻域;
基于(1)所述工作负载的检查点中的所述至少一个检查点与所述资源切片的所述结束部分之间的所述邻域以及(2)所述资源切片的一个或多个特性,确定用于从所述资源切片驱逐所述工作负载的驱逐时间;
在确定所述工作负载的检查点中的所述至少一个检查点与所述资源切片的所述结束部分之间的所述邻域满足邻域要求之后,使得所述资源切片在超出所述驱逐时间执行所述工作负载;以及
在所述驱逐时间已经过去之后,使得所述工作负载将从所述资源切片被驱逐。
12.根据权利要求11所述的计算机可读介质,其中所述计算机可执行指令的执行进一步使得所述计算机系统:
确定不同的资源切片的不同列队为空;以及
扩展所述驱逐时间。
13.根据权利要求11所述的计算机可读介质,其中所述计算机可执行指令的执行进一步使得所述计算机系统扩展所述资源切片。
14.根据权利要求11所述的计算机可读介质,其中所述计算机可执行指令的执行进一步使得所述计算机系统:
当预定数目的任务驱逐被执行时,终止所述工作负载。
15.一种计算机系统包括:
一个或多个处理器;以及
一个或多个计算机可读硬件存储设备,所述计算机可读硬件存储设备具有存储于其上的计算机可执行指令,所述计算机可执行指令由所述一个或多个处理器可执行以通过使得所述计算机系统执行以下来使得所述计算机系统有效地分配所述计算机系统的资源来执行在一个或多个工作负载上的工作:
在确定所述计算机系统的资源之后,将所述计算机系统的资源进行切片来生成一个或多个资源切片,所述一个或多个资源切片可用于完成分配的工作负载;
在所述计算机系统处接收工作负载;
将所述工作负载分配给资源切片用于执行,其中队列与所述资源切片相关联,并且其中当所述工作负载等待被执行时,所述工作负载被放置在所述队列中;
在确定所述工作负载包括一个或多个检查点之后,确定所述工作负载的检查点中的至少一个检查点与所述资源切片的结束部分之间的邻域;
至少部分地基于所述工作负载的检查点中的所述至少一个检查点与所述资源切片的所述结束部分之间的所述邻域,确定驱逐时间来从所述资源切片驱逐所述工作负载;
在确定所述工作负载的检查点中的所述至少一个检查点与所述资源切片的所述结束部分之间的所述邻域满足邻域要求之后,使得所述资源切片在超出所述驱逐时间执行所述工作负载;以及
在所述驱逐时间已经过去之后,使得所述工作负载将从所述资源切片被驱逐。
16.根据权利要求15所述的计算机系统,其中所述驱逐时间在额外费用的支付时可扩展。
17.根据权利要求15所述的计算机系统,其中所述计算机可执行指令的执行进一步使得所述计算机系统:
确定所述一个或多个检查点中的每个检查点位于所述工作负载的工作流中的哪里。
18.根据权利要求15所述的计算机系统,其中所述计算机可执行指令的执行进一步使得所述计算机系统:
确定所述工作负载是否未能被所述资源切片完全地执行;以及
在确定所述工作负载未能被完全地执行时,提供所述工作负载需要额外的检查点的通知。
19.根据权利要求15所述的计算机系统,其中使得所述资源切片执行所述工作负载包括:
当到达第一检查点时,第一次将所述工作负载存留到存储器;以及
在第一次将所述工作负载存留到存储器之后,使得所述资源切片继续执行所述工作负载。
20.根据权利要求19所述的计算机系统,其中使得所述资源切片执行所述工作负载进一步包括:
当到达第二检查点时,第二次将所述工作负载存留到存储器;以及
在第二次将所述工作负载存留到存储器之后,使得所述资源切片继续执行所述工作负载。
CN201580043865.9A 2014-08-21 2015-08-20 工作流执行中系统资源的公平共享 Active CN106663031B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/465,646 2014-08-21
US14/465,646 US9800519B2 (en) 2014-08-21 2014-08-21 Equitable sharing of system resources in workflow execution
PCT/US2015/045977 WO2016028945A1 (en) 2014-08-21 2015-08-20 Equitable sharing of system resources in workflow execution

Publications (2)

Publication Number Publication Date
CN106663031A CN106663031A (zh) 2017-05-10
CN106663031B true CN106663031B (zh) 2020-05-29

Family

ID=54011123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580043865.9A Active CN106663031B (zh) 2014-08-21 2015-08-20 工作流执行中系统资源的公平共享

Country Status (7)

Country Link
US (2) US9800519B2 (zh)
EP (1) EP3183651B1 (zh)
JP (1) JP6599439B2 (zh)
CN (1) CN106663031B (zh)
BR (1) BR112017002636B1 (zh)
RU (1) RU2697700C2 (zh)
WO (1) WO2016028945A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10079773B2 (en) * 2015-09-29 2018-09-18 International Business Machines Corporation Hierarchical fairshare of multi-dimensional resources
US10171378B2 (en) * 2015-11-10 2019-01-01 Impetus Technologies, Inc. System and method for allocating and reserving supervisors in a real-time distributed processing platform
US9548991B1 (en) * 2015-12-29 2017-01-17 International Business Machines Corporation Preventing application-level denial-of-service in a multi-tenant system using parametric-sensitive transaction weighting
CN108235434B (zh) * 2016-12-22 2021-11-02 中国电信股份有限公司 网络切片无线频谱资源管理方法、装置和系统
US10789247B2 (en) * 2018-05-22 2020-09-29 Microsoft Technology Licensing, Llc Tune resource setting levels for query execution
US10904303B2 (en) * 2018-05-31 2021-01-26 Salesforce.Com, Inc. Control message from streaming source to facilitate scaling
US11321139B2 (en) 2018-05-31 2022-05-03 Salesforce.Com, Inc. Streaming traffic pattern for public cloud auto scaling
CN110069334B (zh) * 2019-05-05 2020-08-04 重庆天蓬网络有限公司 一种基于包管理的分布式数据作业调度的方法和系统
US11544114B1 (en) * 2019-05-24 2023-01-03 F5, Inc. Methods for optimizing cloud-scale distributed asynchronous systems with idempotent workloads and devices thereof
CN112867162B (zh) * 2021-01-25 2023-04-07 中国联合网络通信集团有限公司 一种切片资源配置方法及装置
US11768704B2 (en) * 2021-04-28 2023-09-26 Red Hat, Inc. Increase assignment effectiveness of kubernetes pods by reducing repetitive pod mis-scheduling

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI91456C (fi) * 1992-07-29 1994-06-27 Nokia Telecommunications Oy Menetelmä tietokoneessa varattujen resurssien hallitsemiseksi
US6213652B1 (en) * 1995-04-18 2001-04-10 Fuji Xerox Co., Ltd. Job scheduling system for print processing
JP4292693B2 (ja) * 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
US6574717B1 (en) 2001-05-31 2003-06-03 Oracle Corporation Techniques for time-based retention of a reusable resource
CN100547583C (zh) * 2003-08-14 2009-10-07 甲骨文国际公司 数据库的自动和动态提供的方法
US7409587B2 (en) * 2004-08-24 2008-08-05 Symantec Operating Corporation Recovering from storage transaction failures using checkpoints
US7613703B2 (en) * 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US7669081B2 (en) * 2006-09-27 2010-02-23 Raytheon Company Systems and methods for scheduling, processing, and monitoring tasks
CN101369241A (zh) * 2007-09-21 2009-02-18 中国科学院计算技术研究所 一种机群容错系统、装置及方法
US8850446B2 (en) * 2008-06-19 2014-09-30 Freescale Semiconductor, Inc. System and method for using a task starvation indication to prevent starvations of tasks in a multiple processing entity system
US9417909B2 (en) * 2008-11-13 2016-08-16 International Business Machines Corporation Scheduling work in a multi-node computer system based on checkpoint characteristics
US8793365B2 (en) * 2009-03-04 2014-07-29 International Business Machines Corporation Environmental and computing cost reduction with improved reliability in workload assignment to distributed computing nodes
US8122289B2 (en) * 2009-04-09 2012-02-21 Telefonaktiebolaget L M Ericsson (Publ) Load balancing and high availability of compute resources
US8108718B2 (en) * 2009-11-13 2012-01-31 Hewlett-Packard Development Company, L.P. Checkpointing in massively parallel processing
US9009294B2 (en) 2009-12-11 2015-04-14 International Business Machines Corporation Dynamic provisioning of resources within a cloud computing environment
US8656019B2 (en) 2009-12-17 2014-02-18 International Business Machines Corporation Data processing workload administration in a cloud computing environment
US8132043B2 (en) * 2009-12-17 2012-03-06 Symantec Corporation Multistage system recovery framework
US8683495B1 (en) 2010-06-30 2014-03-25 Emc Corporation Sync point coordination providing high throughput job processing across distributed virtual infrastructure
CA2811630C (en) 2010-08-24 2020-06-16 Solano Labs, Inc. Method and apparatus for clearing cloud compute demand
CN102467373A (zh) 2010-10-28 2012-05-23 微软公司 任务取消宽限期
US8689046B2 (en) * 2010-11-05 2014-04-01 International Business Machines Corporation System and method for remote recovery with checkpoints and intention logs
CN102289392A (zh) * 2011-09-08 2011-12-21 曙光信息产业股份有限公司 基于检查点的作业调度方法和系统
CN103136055B (zh) * 2011-11-25 2016-08-03 国际商业机器公司 用于在数据库服务中控制对计算资源的使用的方法和装置
US8782224B2 (en) 2011-12-29 2014-07-15 Joyent, Inc. Systems and methods for time-based dynamic allocation of resource management
US8850450B2 (en) * 2012-01-18 2014-09-30 International Business Machines Corporation Warning track interruption facility
US20140019981A1 (en) 2012-07-12 2014-01-16 Microsoft Corporation Scheduling user jobs across tenants
US9135117B2 (en) * 2012-12-10 2015-09-15 International Business Machines Corporation Recovery for long running multithreaded processes
US9195506B2 (en) * 2012-12-21 2015-11-24 International Business Machines Corporation Processor provisioning by a middleware processing system for a plurality of logical processor partitions
US8943353B2 (en) * 2013-01-31 2015-01-27 Hewlett-Packard Development Company, L.P. Assigning nodes to jobs based on reliability factors
US9417918B2 (en) * 2013-11-20 2016-08-16 International Business Machines Corporation Computing session workload scheduling and management of parent-child tasks
US10031817B2 (en) * 2015-11-05 2018-07-24 International Business Machines Corporation Checkpoint mechanism in a compute embedded object storage infrastructure

Also Published As

Publication number Publication date
EP3183651B1 (en) 2020-04-01
CN106663031A (zh) 2017-05-10
RU2017105354A (ru) 2018-08-20
JP6599439B2 (ja) 2019-10-30
US9800519B2 (en) 2017-10-24
RU2017105354A3 (zh) 2019-02-26
US10554575B2 (en) 2020-02-04
RU2697700C2 (ru) 2019-08-16
JP2017530453A (ja) 2017-10-12
WO2016028945A1 (en) 2016-02-25
BR112017002636B1 (pt) 2023-01-17
BR112017002636A2 (pt) 2017-12-05
US20180102982A1 (en) 2018-04-12
US20160057076A1 (en) 2016-02-25
EP3183651A1 (en) 2017-06-28

Similar Documents

Publication Publication Date Title
CN106663031B (zh) 工作流执行中系统资源的公平共享
CN109565515B (zh) 分布式资源管理系统中的动态租户结构调整的系统、设备和过程
US11016808B2 (en) Multi-tenant license enforcement across job requests
US11348061B2 (en) Logistics management platform for modifying schedules in real-time
US9852035B2 (en) High availability dynamic restart priority calculator
US8424007B1 (en) Prioritizing tasks from virtual machines
US8984519B2 (en) Scheduler and resource manager for coprocessor-based heterogeneous clusters
US9483288B2 (en) Method and system for running a virtual appliance
US20150350313A1 (en) Automated cloud workload management in a map-reduce environment
US10241836B2 (en) Resource management in a virtualized computing environment
WO2016039963A2 (en) Resource sharing between two resource allocation systems
US20170017511A1 (en) Method for memory management in virtual machines, and corresponding system and computer program product
US9971971B2 (en) Computing instance placement using estimated launch times
CN111104227B (zh) 一种K8s平台的资源控制方法、装置及相关组件
CN110018883A (zh) 一种虚拟机删除方法、装置、设备及存储介质
US10983846B2 (en) User space pre-emptive real-time scheduler
Khanna RAS: A novel approach for dynamic resource allocation
CN115686805A (zh) Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置
US20200278890A1 (en) Task management using a virtual node
US20230168940A1 (en) Time-bound task management in parallel processing environment
Wang et al. Remediating overload in over-subscribed computing environments
CN112445569B (zh) 部署方法、装置、电子设备及存储介质
US8473957B2 (en) Architecture for providing on-demand and background processing
US20180159720A1 (en) Dynamic agent deployment in a data processing system
JP2015207180A (ja) 仮想マシン組合せ判定装置、仮想マシン組合せ判定方法および仮想マシン組合せ判定用プログラム

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
GR01 Patent grant
GR01 Patent grant