CN111480145B - 用于根据基于信用的机制来调度工作负载的系统和方法 - Google Patents

用于根据基于信用的机制来调度工作负载的系统和方法 Download PDF

Info

Publication number
CN111480145B
CN111480145B CN201880080712.5A CN201880080712A CN111480145B CN 111480145 B CN111480145 B CN 111480145B CN 201880080712 A CN201880080712 A CN 201880080712A CN 111480145 B CN111480145 B CN 111480145B
Authority
CN
China
Prior art keywords
computing environment
workload
credits
job
priority
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
CN201880080712.5A
Other languages
English (en)
Other versions
CN111480145A (zh
Inventor
瑞杰施·酷玛
阿米特·米塔尔
安贾利·古格尔
赫塔尔·N·巴德卡
瓦桑塔·K·塔玛纳
普里亚坦·普拉萨德·维亚库拉
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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN111480145A publication Critical patent/CN111480145A/zh
Application granted granted Critical
Publication of CN111480145B publication Critical patent/CN111480145B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

公开了一种用于使用基于信用的方法来在计算环境中调度工作负载的方法和系统。该方法包括确定计算环境的服务器容量和负载以及运行第一基准作业来校准资源调度器。该方法包括基于校准将计算环境划分为多个优先级部分(例如,第一部分、第二部分等)以及可选地保留部分。分配信用以按时间量分配系统容量或资源。该方法包括运行基准作业来校准要在计算环境中运行的受支持作业类型的复杂度。在接收到对容量的请求时,向工作负载分配一个或多个信用,并且从提交请求的实体的帐户中提取信用,以用于在调度时间处访问计算环境。

Description

用于根据基于信用的机制来调度工作负载的系统和方法
相关申请的交叉引用
本申请要求于2018年1月3日提交的、申请号为15/861,255的美国非临时申请的优先权。
技术领域
本公开涉及使用货币抽象或信用(credit)来对计算资源可用性和资源权利(resource entitlement)进行建模,其中基于信用的簿记(bookkeeping)被用来表征可用计算容量(capacity),并且基于预期资源使用将信用分配给工作负载。
背景技术
本公开涉及调度要在计算环境中运行的工作负载。许多软件即服务(SaaS)系统支持非实时地生成分析报告,该分析报告涵盖大数据域(例如,40K个网络设备)和延长的时间段(例如,一刻钟)。随着利用分析(接近实时和离线两者)来增强服务增值的需求不断增长,这类报告生成能力的重要性将日益提高。
离线报告通常以常规节奏(例如,每一刻钟一次)被调度和提供,或者响应于用户请求而按需生成(尽管有处理延迟)。这可能需要分析从数据湖(data lake)或结构化数据库获得的大量数据。
除非资源大量超额配设,否则可能会产生不良影响,例如在高峰需求期间出现无法接受的不确定延迟,这可能已经通过优先调度管理而避免。另一不良影响是,资源可能长期闲置,而在此期间这些资源本来可以用于较低优先级用户/作业(job)。
另一问题是缺乏一种简单的内部簿记机制来管理订阅级别或事务性定价与任务数量和完成延迟。这具有不幸的副作用,即系统无法推断和传达可能需要处理用户的任务吞吐量需求和延迟限制的任何分层追加销售(upsell)(例如,从青铜级别服务转换为白银级别服务)。
需要一种使用对资源供应和资源权利的简单抽象来将资源自动分配给这类作业的方法和装置。这应当允许资源使用的自由市场获取,以及基于策略的资源分配,以作为对过去的延迟或故障的补偿,或作为获取新客户的手段。简单且准确的资源簿记还将促进客户追加销售,并且指导新基础设施配设。
附图说明
为了描述可以获得本公开的上述以及其他优点和特征的方式,将通过参考在附图中示出的本公开的特定实施例来呈现对以上简要描述的原理的更具体描述。应当理解,这些附图仅描绘本公开的示例性实施例,并且因此不应被认为是对本公开的范围的限制,通过使用附图,利用附加特征和细节来描述和解释本文的原理,在附图中:
图1示出了示例系统配置;
图2示出了资源优化器的示例配置;
图3和图3(续)示出了资源优化器的操作任务;
图4示出了用于调度批量(batch)数据处理作业的操作任务;以及
图5示出了示例方法实施例。
具体实施方式
下面详细讨论本公开的各种实施例。尽管讨论了特定的实现方式,但是应当理解,这样做仅仅是为了说明的目的。相关领域的技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以使用其他组件和配置。
概述
本公开的附加特征和优点将在以下描述中阐述,并且部分地将从描述中显而易见,或者可以通过实践本文公开的原理来学习。本公开的特征和优点可以通过在所附权利要求中特别指出的仪器的装置和组合来实现和获得。本公开的这些和其他特征将从以下描述和所附权利要求中变得更加完全显而易见,或者可以通过实践本文阐述的原理来学习。
公开了一种用于在计算环境中调度工作负载的系统和方法。示例方法包括:确定计算环境的服务器容量和负载以产生系统分析;运行第一基准作业来校准资源调度器以产生第一校准;以及基于第一校准,将计算环境划分为多个优先级部分,例如,第一优先级部分和第二优先级部分。这些部分可以是高优先级部分、标准优先级部分、保留部分、或任何其他定义的部分。例如,第一优先级部分可以是计算环境的溢价部分(premium portion),该溢价部分相对于计算环境的第二优先级部分的信用使用成本具有较高的信用使用成本。例如,使用计算环境的溢价部分的1个“信用”,实体可能必须从其帐户中支付4个或5个“信用”。使用计算环境的某个优先级部分可能会花费与针对资源的分配数量的信用相比更多数量的信用。因此,使用一个信用的资源可能会花费实体两个或更多个信用,或甚至会递增不止一个信用。用户可以针对作业的不同部分请求计算环境中具有特定优先级或不同优先级混合的分区。
方法可以包括:基于系统分析,按时间段将多个信用分配给计算环境,其中,多个信用中的每个信用表示对计算环境内的用于在计算环境中运行工作负载的计算环境容量的抽象;以及运行第二基准作业来校准要在计算环境中运行的受支持作业类型的复杂度以产生第二校准。工作负载可以包括非实时工作负载、或实时工作负载、或两者的混合。该方法包括:在资源调度器处接收来自实体的对在计算环境内运行工作负载的请求;以及基于第二校准并且通过资源调度器,根据与工作负载相关联的作业大小和工作负载的作业复杂度中的一个或多个以及计算环境容量,针对一个或多个时间段将一个或多个信用分配给与请求相关联的工作负载。可以相对于第二校准、或相对于任何其他因素(例如,所需带宽、所需数据量、所需处理器时间等中的一个或多个)来确定作业复杂度。
系统可以基于请求从实体的帐户收取一个或多个信用,并且通过将从实体的帐户收取的一个或多个信用应用于多个信用,将工作负载调度到计算环境的第一优先级部分或计算环境的第二优先级部分中的一个中,其中,计算环境中的一定数量的计算资源在调度时间处被分配给工作负载。
在某些情况下,资源调度器可以被称为资源优化器。调度器/优化器的作用是改进工作负载在计算环境中的调度,使得可以进行更有效和基于优先级的工作负载调度。特别要注意的是,调度的最终结果可能不是字面上的“最佳”调度方法。因此,对“优化器”或“最佳”调度的引用并不表示字面上的最佳结果,而是指使用基于信用的方法(该方法能够改进调度决策)的调度过程。
提供了一种用于使用基于信用的方法来在计算环境中调度工作负载的方法和系统。该方法包括:确定计算环境的服务器容量和负载;以及运行第一基准作业以校准资源调度器。该方法包括:基于校准将计算环境划分为多个优先级部分(例如,第一部分、第二部分等)和可选地保留部分。分配信用以按时间量分配系统容量或资源。该方法包括:运行基准作业来校准要在计算环境中运行的受支持作业类型的复杂度。在接收到对容量的请求时,向工作负载分配一个或多个信用,并且从提交请求的实体的帐户中提取信用,以用于在调度时间处访问计算环境。
详细的描述
本公开解决了以上提出的问题。本公开提供了一种系统、方法和计算机可读存储设备实施例。首先,将在图1中公开一般示例系统,该系统可以提供构成服务器、节点或其他计算机系统的一些基本硬件组件。
首先,将在图1中公开一般示例系统,该系统可以提供构成服务器、节点或其他计算机系统的一些基本硬件组件。图1示出了计算系统架构100,其中系统的组件使用连接器105彼此电通信。示例性系统100包括处理单元(CPU或处理器)110和系统连接器105,该系统连接器105将包括例如系统存储器115、只读存储器(ROM)120和随机存取存储器(RAM)125的各种系统组件耦合到处理器110。系统100可以包括高速存储器的缓存,该缓存直接与处理器110连接、与处理器110紧密接近或集成为处理器110的一部分。系统100可以将数据从存储器115和/或存储设备130复制到缓存112,以供处理器110快速访问。以这种方式,缓存可以提供性能提升,这避免了处理器110在等待数据时的延迟。这些和其他模块/服务可以控制或被配置为控制处理器110执行各种动作。其他系统存储器115也可以是可用的以供使用。存储器115可以包括具有不同性能特性的多种不同类型的存储器。处理器110可以包括任何通用处理器以及硬件模块或软件模块/服务,例如存储在存储设备130中的服务1 132、服务2 134和服务3 136,其被配置为控制处理器110以及专用处理器,其中软件指令被合并到实际处理器设计中。处理器110可以实质上是完全独立的计算系统,包含多个核心或处理器、总线(连接器)、存储器控制器、缓存等。多核心处理器可以是对称的或非对称的。
为了使得用户能够与计算设备100交互,输入设备145可以表示任意数量的输入机制,例如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等。输出设备135也可以是本领域技术人员已知的许多输出机制中的一个或多个。在一些实例中,多模式系统可以使得用户能够提供多种类型的输入以与计算设备100进行通信。通信接口140通常可以控制和管理用户输入和系统输出。对任何特定硬件布置的操作没有限制,并且因此这里的基本特征可以容易地替换如它们被开发的那样的改进的硬件或固件布置。
存储设备130是非易失性存储器,并且可以是硬盘或其他类型的计算机可读介质,其可以存储可由计算机(例如,磁带盒、闪存卡、固态存储器设备、数字通用磁盘、盒式磁带、随机存取存储器(RAM)125、只读存储器(ROM)120以及前述的混合)访问的数据。
存储设备130可以包括用于控制处理器110的软件服务132、134、136。可以设想其他硬件或软件模块/服务。存储设备130可以被连接到系统连接器105。一方面,执行特定功能的硬件模块可以包括存储在计算机可读介质中的软件组件,该软件组件与诸如处理器110、连接器105、显示器135等之类的必要硬件组件连接以执行该功能。
本发明的核心是资源优化器(图1)。其使用类似货币的机制(“信用”)来建模和调度批量数据处理资源:可用资源、基于作业的复杂度和大小分配给作业的资源、以及客户对资源使用的权利。像国家货币一样,信用充当对供资源优化器使用的供应和需求的简单且有用的抽象。在计算了最佳信用分配之后,操作系统完成对硬件资源(核心、存储器等)的任何详细分配。
以下公开涉及在图2中被示出作为用于在计算环境中调度工作负载的系统200的一部分的被称为资源优化器202的装置。资源优化器或资源调度器202提供了对本文描述的简单而强大的货币模型的创新使用,以在特定时间处针对特定作业来调度资源。模型可以包括将总容量的一部分指定为要溢价定价(即使底层基础设施是相同的),以便允许高定价、高优先级的作业在正常作业之前被调度,而不对后者进行调整。如果适用,其还允许对在某些优选时间处运行的作业收取溢价。
货币模型的另一种创新使用是轻松实现多个操作和优化目标,例如在容量损失期间进行经济上有利的削减,以及进行前瞻性的容量计划和/或调度。计划或调度可以由系统或人工管理员来完成。资源优化器202可以驱动资源编排系统(例如,Mesos/Marathon或Kubernetes)以生成和停用VM、容器等。特别要注意的是,对“优化器”、或“优化”对工作负载的调度或对计算环境的使用的引用,不一定意味着对调度进行绝对的技术优化,使得每个时间片段都在使用100%的计算资源。更准确地,对优化等等的引用是指寻求以与传统负载平衡或其他调度方法相比更有效和公平的方式来改进工作负载在计算环境中的调度。
图2示出了下面将详细描述的概念的功能表示。图2没有示出顺序流程图,而是示出了系统交互的非顺序列表。
一个概念是使用信用作为量化数据处理容量和成本的一种手段。广义上讲,信用是客户能够从系统中提取的便捷工作单元。信用可以包括例如访问一个或多个处理器、一定数量的存储器、带宽、或系统资源的任意组合,并且还可以与特定时间片段(例如,一分钟、一秒钟、五分钟、或任意时间量或时间片段)相关联。可以针对以下讨论的参考作业来定义信用。
在资源优化器202设置时,系统能够支持的信用数量(其承载容量)被校准。任务是使用时间量或时间片段的粒度来调度的。
所分配的信用数量和时间长度不仅取决于相对于作业的优先级的可用系统容量,还取决于作业大小和复杂度。一方面,作业是通过在一个或多个连续时间量上分配固定信用水平来调度的。另一方面,时间量可以是不连续的,使得可以为作业调度未使用的时间量。因此,作业可以针对连续5分钟或以非连续方式使用的5分钟被分配20个信用。另一方面,分配给作业的信用水平在多个时间量上可以不同。相同作业可以针对前3分钟被分配20个信用,并且针对接下来的4分钟被分配10个信用。这些分钟和/或计算环境中的处理的物理放置可以是连续的或不连续的。
在如图2所示的资源优化器校准209时,系统管理程序210运行基准参考作业以确定系统228的容量(以信用来衡量)。然后,管理程序210可以将容量划分为可用容量和保留容量。还可以使用其他粒度,例如第一优先级部分、第二优先级部分、保留部分等等。可用容量被用来通过分层机制来调度正常和高优先级任务。调度是根据来自用户或实体204的用户请求206、或者按照预设节奏(例如,每周一次)、或者根据可变节奏或触发定时来进行的。保留容量被用于容错、用于解决CAP(客户权益担保,Customer Assurance Program)案例214等。系统可以实现强制功能从而为特定客户或特定工作负载211赋予偏好。设置可以与提供输入、实现调度策略、校准209、以及正在建立的优先级排序规则211的管理程序210和任务两者相关联。
除了为满足非功能性需求(例如,容错)而保留的“保留容量”之外,资源优化器202将每个时间量的可用容量分配给基于用户请求、或根据预设节奏(例如,每周一次)生成的作业请求206。基于预期资源使用来从用户的帐户中扣除信用。一方面,在作业结束时,可以调整扣除以反映实际使用。
信用系统主要用于内部计划以及自动簿记和资源调度任务。在大多数情况下,簿记将不会向用户公开。用户可以只需要了解相关因素,例如,预期任务延迟、非订阅用户调度具有特定优先级的单个任务的实际费用、或支持特定优先级的给定任务量组合所需的订阅级别。另一方面,用户界面可以提供图形、文本或多模式报告,该报告具有关于以下各项的数据:所使用的信用、可用信用、升级选项、确认、以及对于使用本文所公开的基于信用的系统可能有用或必需的任何其他交互。
与基础设施详细细节(例如,CPU核心、存储器等)相比,信用抽象允许调度器202和系统管理程序210对资源进行更易于处理的量化。在系统校准(以信用来衡量)时,信用计数自然地映射到服务器集群228中的物理核心(或虚拟核心或超线程)。因此,针对时间段分配一定数量的信用类似于分配一定数量的核心/超线程。粒度级别足以满足在服务器集群上运行的大型数据处理作业。其他资源(例如,存储器)的分配可以是CPU分配的直接函数(direct function)。可以进行更复杂和更精细的资源映射,但不是必需的。将信用映射到核心/超线程可能需要将信用计数四舍五入到超线程的核心的最小粒度。响应于来自资源优化器/资源调度器202的输入,由操作系统(例如,Linux)完成资源的实际分配和监管。
本公开现在处理用于覆盖中断(outage)和降级(degradation)的保留容量的概念。可用信用的分配允许一定的保留容量以用于在故障和降级的情况下进行容错。当存在故障或关键绩效指标(KPI)降级时(图2的特征232、234),方法为要满足的客户服务水平协议(SLA)212提供安全余量。作为结果,客户永远不会(或很少)具有因故障而无法使用的信用。例如,每个时间量有150个信用的系统可以具有100个信用作为可用容量和50个信用(占总数的33.33%)作为保留容量。在一个实现方式中,由保留信用表示的资源可以被允许闲置,以用于从资源中断中快速恢复。在另一实现方式中,额外信用可以被用来将性能提高超过合同的SLA或非合同的服务目标,附带条件是在需要容错时将额外信用释放。
对于服务订阅,在订阅期间,用户被分配有周期性(例如,每周、每天、每月、或以可变时间为基础、或者基于执行某些动作(例如,自愿延迟工作负载、或支付额外的钱)的奖励)的信用配额。信用被该周调度的任务消耗。任务的信用消耗与任务大小和复杂度以及为该任务获得的任何优先处理成比例。
未使用的信用在每个分配时间段结束时(例如,一周、或其他时间段、或基于其他触发动作(例如要求立即访问计算环境))到期,以防止这样的情况:连续滚动使得所有或大多数用户拥有远远超过其需求的信用计数,从而使资源采购的自由市场机制失效。
分配给用户的周期性信用配额取决于他们的订阅级别(例如,铂金、黄金、白银、青铜等)以及在服务购买中作为因素所考虑的任何其他条件(例如,服务捆绑)。例如,黄金级别的服务A可以使得每周为用户分配20,000个信用,而青铜级别的服务A和服务B的组合使得每周配额为10,000个信用。不排除非订阅用户进行事务性服务采购。系统可以将购买的美元金额映射到信用(系统使用该信用来调度任务)。例如,用户204可以一次性支付200美元以请求报告。系统会将其映射为例如1000个信用,其中900个信用实际用于生成报告。
当用户204升级或降级其订阅级别208时,其信用配额增加或减少。升级或更改可以应用于下一个信用到期间隔(在一个示例中为一周)或当前信用到期间隔。可以采用几种按比例分配政策中的任何一种。
分配给用户的信用是可互换的。一个信用与另一信用一样好,正如这个美元与那个美元之间没有区别。以这种方式使用信用不排除把系统容量的一小部分(例如,10%)指定用于高优先级作业。该容量被提供有乘法加价,例如,其正常信用值的400%,即使底层基础设施相同。针对400%的加价,以5个信用的价格来提供1个信用价值的容量。这提高了高优先级作业的资源可用性,并且消除了为了给高优先级作业腾出空间而对低优先级作业进行调整的需要。当然,任何加价都是可行的,例如110%的加价(其仅比正常价格贵一点)。同样,信用也可以被估价,使得相对于单个信用的标准计算容量数量,一个用户信用还可以“购买”更多的计算容量。
请注意,加价可以有多个级别。例如,10%的容量可以被提供有400%的加价,另外10%的容量被提供有300%的加价,另外10%的容量被提供有200%的加价,而剩余70%的容量不具有任何加价。还可以应用降价(markdown)。特定容量块的加价和降价(如果有的话)可以根据实际的供需状况进行微调。降价可以出于任何原因,例如,针对通常不使用的较旧硬件、存在额外容量的情况、基于用户配置文件或用户历史。
“溢价”系统容量与“正常”容量相比将较慢填满,从而有助于更早地获得溢价容量,尽管价格较高。然而,优选地,溢价加价要足够高以阻止它们在正常情况下被随意使用。同样,如果溢价容量块预期将保持未使用状态,则其可以被选择性地降低到正常级别。
接下来,讨论对作业的信用分配。在下面的示例中,假定任务以一分钟的增量(时间帧可以更小或更大)被调度。考虑在资源优化器202设置210时已知的最复杂的数据处理任务。这可以是最复杂的基于分析的报告。系统200将其复杂度用作基准(以下称为“基准复杂度”),并且不排除系统在设置后处理更复杂的作业类型。
假定通过在校准期间运行基准测试作业(图2的组210中的校准步骤),系统确定其可以在1分钟内处理100GB的“基准复杂度”数据。系统可以任意地将100个信用的可用容量分配给组成计算环境的服务器集群228,等效于在1分钟内处理100GB的基准数据的能力。对于该示例,还假定系统228具有50个信用的附加未使用保留容量(总计100+50=150个信用)。还假定要分配的资源来自六个服务器的集群,使得每个服务器托管25个核心或超线程。所假设的示例是为简化起见而构造的。在现实生活中,同一类服务器中的核心的数量是24,而不是25。在该示例中,将150个信用映射到150个核心。其中,100个核心为“可用容量”,而剩余50个核心为“保留容量”。如本文所述,可以做出更多优先级部分或分区。为了不使主要概念的阐明复杂化,在该示例中未将其他基础设施资源(例如,存储器)作为因素进行考虑。假定存储器分配与核心分配成比例。在其他示例中,存储器分配可以不是成比例的,而是可以基于其他因素。
通常假定,对于处理大型文件(其是相似数据集的串联或聚合),所做的工作与CPU资源分配成线性比例。在该假设下,如果给处理100GB的基准数据分配100个信用使得在1分钟内完成作业,则为该作业分配10个信用将需要连续10分钟的时间段来完成作业。信用的这些分配和使用还将允许系统调度多个并发任务(具有不同性能特征,并且具有上述任务分层(优先级排序)的可能性)。同样,无论花费多长时间(取决于每分钟的信用分配),作业大小保持在100个信用不变。
在该示例中,用于在一个时间量(一分钟)内进行工作的系统容量为100个信用。通过扩展,其用于在一周内进行工作的容量为约100万个信用(1,008,000),未计入一周内的约50万个信用(504000)的保留容量。
当系统代表用户使用信用来为一次性作业或循环性(例如,每周一次)作业保留容量时,系统必须估计与请求相关联的工作(以信用来衡量)。为此,将(1)作业的大小(例如以GB为单位)和(2)作业的复杂度(如与用于校准系统的基准作业相比)作为因素进行考虑是很有价值的。所调度的作业属于有限数量的作业类别之一,例如,可以排序的分析报告的类型。作业类型的复杂度在一个方面被定义为:利用所选信用分配(例如,10个信用)处理与该作业类型相关联的标准文件大小(例如,100GB)所花费的时间与使用相同信用分配(10个信用)处理基准作业类型(参见上文)的相同文件大小(100GB)所花费的时间的比率。
比率K(表示作业类型的复杂度)定义如下:
K=T-actual/T-reference,
其中,T-actual是使用参考资源分配(例如,10个信用)处理参考大小(100GB)的所讨论的作业所需的时间,而T-reference是使用相同资源分配(10个信用)处理相同大小(100GB)的基准作业(参见上文)所需的时间。回忆一下,基准作业类型是系统校准时最复杂的作业类型,即使在校准后可能有更复杂的作业类型被添加到受支持的作业类型集合中。还存在用于计算作业类型的复杂度的其他方法,并且本公开不限于以上的特定计算。
在系统校准时,每个受支持的作业类型将因此被分配有复杂度(K)值,其范围如下:
0<K<=1。
在系统校准之后,可能会创建K>1的新作业类型。完成该操作之后,无需重新定义用于系统校准的基准作业类型。以信用(工作单位)来衡量,特定工作的成本如下:
任务成本=C1+K x S x C2
其中,K是上面定义的任务复杂度,S是要处理的数据量(以GB为单位),C1是每个任务由于诸如上下文切换之类的因素而需要的固定容量/信用成本(与要处理的数据量无关),C2是处理1GB的基准作业所需的容量/信用成本。该成本与要处理的数据量无关。在一种定义中,成本是1个信用,但是在另一种系统表征中,它可以是其他东西。
例如,考虑根据“大数据”来生成分析报告的数据处理作业类型。该类型报告的复杂度是通过利用10个信用资源分配来对100GB的数据运行该报告而事先确定的。发现这需要花费9.35分钟。还发现了利用10个信用资源分配来对100GB的基准数据进行处理的时间为11分钟。因此,该类型报告的复杂度因素为9.35/11=0.85。
现在假设系统对1TB的大数据运行该类型的分析报告。还假设所有作业都需要30个信用的固定开销成本(C1)。因此,发现该特定任务的总成本为:
C1+K x S x C2
=30+0.85x 1000x 1
=880个信用
现在,系统200被表征为具有在每1分钟间隔内完成100个信用价值的工作的容量,该1分钟间隔是在我们的示例系统上用于调度作业的时间量。如果整个系统专用于该作业,则作业完成将花费880/100=8.8分钟。
假设在该系统上可以运行多个作业,并且用户在作业持续时间期间仅被分配有40个信用的容量。则作业持续时间将为880/40=22分钟。
在调度作业之前,系统首先确定用户在其帐户中是否具有880个信用。假设用户每周被分配有10,000个信用,并且在调度作业时,剩余余额为6,000个信用。帐户中的余额允许系统调度作业,因为其落入用户的资源权利212。同样,请注意,系统200在一周的时间段内的总容量约为100万个信用(参见上文)。
系统将以尽早完成为目标(即,在最早的可用时间处)来调度数据处理作业。如果使用预测将来使用情况的调度器,则可以在特定时间处或将来某个时间范围内调度作业。对于批量收集文件上载作业,可能存在用户可以偏好的特定时间间隔,例如,晚上或周末、或其他时间,因为这类调度可以使对环境的负担最小。系统202可以使用机器学习来收集与用于作业处理的实体请求的模式相关的数据,使得可以在调度中确定和实现偏好时间。
资源优化器/资源调度器202将通过向具有分派器的作业队列218提供经优化或经改进的批量处理调度216,来提供主动负载管理。分派器218可以使用数据湖224,该数据湖224存储关于数据处理的数据。来自具有分派器的作业队列218的数据被提供220到资源优化器202,例如,未决的作业、延迟的作业、失败的作业、正在运行的作业等,以帮助优化器202进行决策过程。
优化器202可以向管理程序238提供关于需要额外容量的系统通知,例如从自动化资源管理系统请求服务器容量。优化器202还可以执行服务器集群选择230。具有分派器的作业队列218可以将批量作业222提供给实际服务器集群228。这些可以是非实时批量作业,或可以是任何作业,包括实时作业。计算环境228还可以向分派器218提供关于负载管理的数据,例如,作业背压(job backpressure)226。计算环境228可以向优化器202提供关键绩效指标232,以及其他数据,例如,服务器负载、操作状态、和可用容量234,包括作业完成状态236和关于作业性能的任何其他数据。计算环境228可以是任何云托管的多租户数据处理中心。
在图3和图3(续)中针对批量数据处理用例描述了作业调度。如流程图所示,调度与用户的交互是根据常见的构造进行的,例如,作业大小、复杂度、延迟、和优先级。在批量文件上载的情况下,在调度期间要关注的另一参数是作业开始的日历时间,因为一周中的某些时间可能比其他时间更好。同样,在某些业务模型下,可能会向客户公开任务工作量、资源可用性和服务权利的统一的基于信用的量化,尽管更常见的方法是不这样做。
在图3中,信号处理300示出了资源优化器304,该资源优化器304使用分析报告的文件大小和复杂度来针对每个受支持的优先级计算所请求的作业的资源成本(以信用为单位)。这些附图中的步骤不一定是按顺序的,并且可以以任意顺序执行。所请求的报告的复杂度因素需要预先校准(图4)。资源优化器304还为用户302执行多个任务。用户提交了对一个或多个作业的请求314,并且在优化器304使用服务306检查用户的权利和CAP状态316并使用计算环境308检查用户的作业的过去性能指标之后,优化器304可以基于作业大小和复杂度中的一个或多个来确定完成成本(以信用为单位)320。系统可以针对每个优先级来重复该步骤。系统可以调整用户的信用分配以考虑CAP状态和过去性能322。给定任务混合,系统可以估计每个受支持的优先级的延迟324,其可以表示每个优先级的暂定调度。系统可以确定用户是否有信用来购买低优先级或高优先级或其他优先级选项326,从而使用计算资源308。对要运行的作业的请求还可以包括对在环境中用于运行作业的优先级分区的请求。
延迟包括对等待时间和处理时间的估计。在计算任务的信用成本时,资源优化器304可以增加用户的信用分配,或者可以提供折扣,作为对处于CAP 214中或经历过先前性能问题的用户的补偿机制。用户的信用分配可以允许系统304基于购买力的增加或服务折扣,来以更高的优先级调度作业。在这一点上,资源优化器304为用户提供各种调度可能性328,以及用户是否由于权利不足而需要升级他们的订阅或进行一次性购买。在用户从优先级和其他调度选项中做出选择330并且从商务门户网站310和实体306进行任何必要的购买332和更改334、336之后,系统对作业进行调度338并且向用户提供与他们的直到下一次(很可能是每周一次)信用更新为止的剩余购买力相关的反馈340。可以将作业调度状态从作业队列312提供给优化器304。触发事件344可以使得作业在计算环境308中开始346。资源优化器304跟踪作业完成状态348。
图4示出了可以由资源优化器404执行的配置和其他操作任务(与任务调度不直接相关)。步骤和任务不一定按其可能发生的顺序列出。在系统的生命周期中,可以多次执行这些任务,以使其跟上不断变化的客户需求。任务包括确定服务器容量和负载412、设置系统策略414、和运行基准作业以进行系统校准416、以及将计算环境划分为第一类型优先级部分和第二类型优先级部分418。这些优先级可以是包括以下各项中的一项或多项的组:溢价、正常、低优先级、或保留部分。通常,系统可以将计算环境划分为多个分区或部分,该多个分区或部分具有分配给每个相应分区或部分的不同或相同的优先级。分区可以是物理的、虚拟的、基于时间的、或基于硬件的。
优化器404基于用户输入和/或其他数据(例如,关键绩效指标420)来调度作业。计算环境可以将关于作业背压的数据提供给作业队列422。计算环境406的操作状态可以被提供给优化器404。系统跟踪服务器容量、负载和操作状态424。优化器404可以根据需要重构资源分配和调度,并且可以在策略允许的情况下带入保留容量426。优化器404还可以审计资源使用情况428,并且可以通过能够与基础设施配设实体410进行通信的手动或自动过程来添加/停用资源(本地的或云的)430。
本文公开的系统可以为需要特别注意的客户和情况提供性能提升。例如,系统可以为以下客户提供额外信用分配以作为缓解途径:该客户的SLA未被满足(图2中的特征214)、或该客户的过去作业失败或执行不佳(图2中的特征220)。对于以下客户:该客户的服务被降低、或该客户由于服务问题而处于CAP,向其购买力分配的额外信用可以被用来提高性能并且减轻过去操作不足的影响。性能提升可能意味着在计算环境中分配了一个或多个资源,例如,附加CPU核心、带宽、存储容量、和/或存储器。客户的帐户中的信用数量是内部簿记变量,通常不会向客户公开。
在调度总体重要性很高的作业时,还可以使额外信用可用。例如,可以针对以下情况来提供额外信用:实时作业、或在SaaS提供商运行解决影响其产品的安全性问题或关键性能问题的取证分析时。例如,图2中的特征211可以涉及强制功能,该强制功能实现对客户或作业的偏好的优先级排序规则。即使这类任务从总体信用池中扣除,而不是从任何SaaS提供商的客户的信用分配中扣除,该概念仍然成立。
系统可以通过分配未使用的可用容量来提高数据处理性能。资源优化器202跟踪系统和客户级别的性能(图2中的特征232)。其还跟踪共享的多租户数据处理系统的可用容量(取决于计划内或计划外的停机时间)和当前负载(图2中的特征234)。在策略允许的情况下,优化器202可以使用反馈来增加对客户的信用分配,以响应于预设标准(权利212)。应用未使用的信用来增加当前没有作业失败/延迟问题的关键客户的容量分配,允许系统改进这些溢价客户的作业延迟性能,而不会对其他客户造成负面影响。
系统可以使用有助于信用使用调度和簿记的因素汇总。如图2至图4所示,资源优化器202基于用户输入206、208来创建作业处理调度。这样,其可以跟踪信用可用性,并且基于每个作业从用户的信用池中扣除信用。优化器202通常代表用户做出信用消费决策。如上所述,这些决策考虑以下元素:(1)由服务提供商设置的总体策略210;(2)客户权利212;(3)资源可用性和使用234;(4)特定于客户、或与客户有关的作业的系统性能220、236、232;和/或(5)客户状态(例如,该客户是否已加入客户权益担保(CAP))214。客户权益担保可以是用于补救持续存在的服务水平违规的程序。
这些基于信用的任务调度决策的总体目标是为选择更高服务层的客户提供更大的灵活性和更少的延迟,同时为所有服务层提供令人满意的性能结果。次要目标是为服务提供商提供直接的可见性,以了解为什么可能需要进行追加销售才能达到所需的服务延迟目标,以及为什么可能需要获得额外计算容量(可能通过基于云的基础设施供应商)。
另一方面,系统提供被动负载管理。除了由优化器202提供的基于调度的主动负载管理216之外,服务器场(server farm)或计算环境228可以在服务器场228接近预定容量时,将背压226应用于作业分派器218或收集器。这种被动负载管理旨在提供进一步的保护层,以支持由资源优化器202提供的主动负载管理。
系统还提供服务器集群到溢价层和普通层的映射。作业被路由到负载平衡器/分发器,该负载平衡器/分发器将输入的负载222分发到一组服务器以进行数据处理。这些服务器被组织为由几个服务器集群228组成的超级集群。集群之间以及集群内可能存在地理冗余。同样,即使服务器集群被托管在相似服务器平台上,对于相同工作,也可能有意地使在一个服务器集群上进行处理比在另一服务器集群上进行处理更昂贵(以信用来衡量)。这等效于优化器202将一些集群映射到上述“溢价容量”层,而其他集群被默认映射到“正常容量”层。溢价集群更昂贵,会不太拥挤。注意,集群的这种隔离并不是在这两个层之间进行区分所必须的。
系统还可以提供上传/计算容量的增加238。资源使用优化器202基于资源使用模式和可能产生服务降级或拒绝的任何即将到来的短缺,向系统管理程序或自动化资源管理系统通知需要增加额外容量238。在替代实施例中,数据获取优化器202可以驱动自动化工具集以用于获取基础设施资源。当由于利用率不足而需要停用资源时,可以向人工管理员和/或自动工具集发出类似通知。所有这些情况都可以通过使用信用作为对资源供求的简单抽象来促进。在添加或删除资源时,无需重新校准系统,因为已经建立了资源和信用之间的对等关系。整个信用池简单地随着资源供应的变化而成比例地增加或减少。
系统还可以提供多个资源/信用池。使用多个不同资源池是本公开的直接推论。可以将资源系统隔离为资源池,以便单独购买这些池的权限。一个示例是,当同一供应商提供的不同的大型分析服务使用完全不同的平台时。另一示例是,当可能使用的数据中心取决于法律管辖权时,例如来自欧盟的客户数据不能被发送到美国。在这类情况下,有必要将这些不同的资源池映射到单独的信用池(无论是否暴露给客户)。例如,可以通过“蓝色信用”来获得“蓝色系统”上的资源,而可以通过“红色信用”来获得“红色系统”上的资源。在这点上,系统中的信用或可用于用户的信用可以具有相关联参数或元数据,其定义如何和/或何时使用信用。
系统还可以提供微调资源优化。资源优化器202可以由人类专家或自动化系统定期进行微调,这些专家或自动化系统可以修改系统参数,例如,分配给每个价格层的系统容量的比例、针对不同周时间段的价格加价和降价、针对不同订阅级别的每周信用分配、指定用于应急情况的保留容量的数量、客户的每周信用津贴等。同样,规则或机器学习技术可以被应用以进行自动微调,使得资源优化器202自动适应不断变化的业务规则和客户需求。机器学习可以被用来迭代地优化系统参数值,以满足服务实现和担保目标。
本公开没有解决数据的获取。假定数据已经存在于数据湖或存储库中,如图2所示。这样,客户不会争用将数据上传到数据湖或存储库224中的机会,并且上传可以在任何时间进行,而不会因资源短缺而产生等待时间。如果客户确实在争用机会(最早的机会或特定的时间段),则本公开可以被扩展到还提供对从客户到数据湖或存储库224中的文件上传机会的可用性、权利和需求的自由市场模型(具有基于策略的调整),并且优化这类机会的使用。
本公开使用货币抽象(“信用”)来对计算资源可用性和资源权利进行建模。其提供了一种高效、新颖的机制,用于非实时(或在某些情况下为实时)、计算密集型作业(例如,大数据分析)的经优化的基于优先级的调度。分层的簿记机制允许高优先级的作业被调度在其他作业之前,而不会影响低优先级的作业。使用两个基础来确定工作优先级:服务层、以及对过去故障和延迟的基于策略的补偿。调度权利在内部被量化为信用。系统使用基于信用的簿记来跟踪用户的当前资源权利,并且表征可用计算容量及其分配。基于用户的订阅级别来定期为用户分配信用。基于作业的预期资源使用情况为每个作业分配一定数量的信用。在基本级别上,调度包括针对特定时间间隔保留一些信用(作为对系统资源的抽象),其中所保留的信用池用于高优先级用户并且用于提供容错安全余量。基于信用的资源模型不会向用户公开,用户只会看到任务完成的估计,并且在必要时看到以下通知:用户必须升级其服务层以使得所请求的工作负载(例如,每月大数据驱动报告的集合)能够被处理。如果用户拥有或获得必要的权利(服务层),则用户还可以为特定作业选择更高的优先级。
系统基于对(通常覆盖大的域和/或时间段的)大数据量的分析处理,来提供报告的生成。用于处理大型数据处理作业的当前方法是用超出额定峰值负载的余量(例如20%)来超额提供计算容量,并且通过在数据中心或连接的云中动态采购额外计算来进行补充(“资源编排”)。当统计信息表明系统正在接近其最大容量运行时,主动添加资源,或者当作业经历较大等待时间或服务时间时,被动添加资源。虽然目前这已经足够了,但是随着世界在物联网革命中数字化程度越来越高,对非实时计算资源的智能、优先级调度的需求将变得更加迫切。
本公开通过以下方式补充了当前的资源编排技术:提供负载平滑方法以用于增加非实时、计算密集型作业的规模并且降低其成本。新颖的负载平滑技术为优先级调度提供了一种非抢占式的方法,同时允许系统对跟踪计算资源的可用性、权利、需求和使用情况进行简单且有用的抽象。当前没有现有的批量作业调度优化解决方案能够准确地考虑所有这些变量,同时仍为操作人员提供简单且直观的资源模型。除了能够提高当前资源的利用率之外,这种资源跟踪方法还为未来的资源计划和配设(无论是自动、还是手动、还是两者)引入了更大的确定性。
图5示出了本公开的方法示例。方法包括:确定计算环境的服务器容量和负载以产生系统分析(502);运行第一基准作业来校准资源调度器以产生第一校准(504);以及基于第一校准将计算环境划分为多个优先分区或部分,例如第一优先级部分和第二优先级部分(506)。方法还可以包括基于第一校准,将计算环境划分为第一优先级部分、第二优先级部分和保留部分,或基于任意数量的因素划分为任意数量的不同类型的部分。第一优先级部分可以是计算环境的溢价部分,其相对于计算环境的第二优先级部分的信用使用成本具有较高的信用使用成本。这两个部分的优先级和访问成本(以信用为单位)也可以相等,并且还可以基于其他方面(例如,用户类别)进行划分。例如,一些用户可能来自会计部门,其他用户可能来自研究部门,并且他们被分配为在计算环境的不同部分中使用其信用。计算环境的第一优先级部分中的一个信用数量的计算资源可以用于多个一个信用。例如,在计算环境的第一优先级部分中使用一个信用价值的计算资源可能会花费1.1个信用,或者花费两个或更多个信用。
该方法包括:基于系统分析,按时间段将多个信用分配给计算环境,其中,多个信用中的每个信用表示对计算环境内的用于在计算环境中运行工作负载的计算环境容量的抽象(508);运行第二基准作业来校准要在计算环境中运行的受支持作业类型的复杂度以产生第二校准(510);在资源调度器处接收来自实体的对在计算环境内运行工作负载的请求(512);以及基于第二校准并且通过资源调度器,根据与工作负载相关联的作业大小和工作负载的作业复杂度中的一个或多个以及计算环境容量,针对一个或多个时间段将一个或多个信用分配给与请求相关联的工作负载(514)。步骤512中的请求可以包括在具有不同优先级的分区之间进行选择的请求。例如,请求可以包括例如针对作业的不同方面的对优先级1分区、优先级2分区、或两个优先级的混合的要求。
系统可以基于请求从实体的帐户收取一个或多个信用(516)。向帐户收费可以基于该请求,并且可以要求从实体的帐户中获得溢价数量的信用,以便将工作负载调度到计算环境的第一优先级部分中。换句话说,对于在计算环境的第一优先级部分中使用1个信用的资源,这种收费可以收取例如2个信用。
该方法还包括通过将从实体的帐户收取的一个或多个信用应用于多个信用,将工作负载调度到计算环境的第一优先级部分或计算环境的第二优先级部分中的一个中,其中,计算环境中的一定数量的计算资源在调度时间处被分配给工作负载(518)。对工作负载进行调度可以包括资源调度器针对调度时间将核心、存储器、带宽或存储装置中的一个或多个分配给工作负载。调度时间可以包括多个连续时间量或非连续时间量。工作负载还可以被分配给连续的物理或虚拟计算资源、或不连续的物理或虚拟资源。将工作负载调度到计算环境的第一优先级部分或计算环境的第二优先级部分之一中还可以包括:基于工作负载的优先级或一些其他因素,将工作负载进一步调度到计算环境的保留部分中。
在调度时间处分配给工作负载的计算环境中的一定数量的计算资源可以是基于计算环境中相对于工作负载的优先级的可用容量、作业大小和作业复杂度来确定的。作业复杂度可以相对于第二校准来确定。
该方法还可以包括当基于触发事件在计算环境中调度工作负载时,资源调度器补偿实体。触发事件可以包括以下各项中的一项或多项:实体的先前表现问题、对实体的更高收费、实体的延迟问题、以及服务水平协议违反。
实体可以基于周期性地、基于对信用的购买、基于执行动作的奖励、或基于事件的组合,而被分配有信用。
当发生故障时,调度还可以包括将工作负载调度到计算环境的保留部分中,其中,计算环境的保留部分被分配有多个信用的一部分。
在一些实施例中,计算机可读存储设备、介质和/或存储器可以包括包含比特流等的电缆或无线信号等。然而,当提及时,非暂态计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身之类的介质。
可以使用存储在计算机可读介质中或以其他方式从计算机可读介质中可用的计算机可执行指令来实现根据上述示例的方法。这样的指令可以包括例如导致或以其他方式配置通用计算机、专用计算机或专用处理设备以执行特定功能或功能组的指令和数据。所使用的计算机资源的一部分可以通过网络访问。计算机可执行指令可以是例如二进制、中间格式指令,例如汇编语言、固件或源代码。可以用来存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、提供有非易失性存储器的通用串行总线(USB)设备、网络存储设备等等。
实现根据这些公开的方法的设备可以包括硬件、固件和/或软件,并且可以采用多种形状因子中的任意一种。这样的形状因子的典型示例包括膝上型计算机、智能电话、小型形状因子的个人计算机、个人数字助理、机架安装设备、独立设备等等。本文描述的功能也可以被体现在外围装置或附加卡中。通过进一步示例的方式,这样的功能也可以在不同芯片中的电路板上或在单个设备中执行的不同进程上实现。
指令、用于传达这样的指令的介质、用于执行它们的计算资源以及用于支持这样的计算资源的其他结构是用于提供这些公开中描述的功能的装置。
尽管使用各种示例和其他信息来解释所附权利要求的范围内的各个方面,但是基于这样的示例中的特定特征或布置,不应当暗示对权利要求的限制,因为本领域的普通技术人员将能够使用这些示例来推导各种各样的实现方式。此外,尽管可能已经以特定于结构特征和/或方法步骤的示例的语言描述了一些主题,但是应当理解,在所附权利要求中限定的主题不必限于这些所描述的特征或动作。例如,这样的功能可以不同地分布或在除了本文所标识的那些组件之外的组件中执行。而是,所描述的特征和步骤被公开为在所附权利要求的范围内的系统的组件和方法的示例。此外,引用一组中的“至少一个”的权利要求语言表示该组中的一个成员或该组中的多个成员满足权利要求。
应当理解,本文中参考一个实施例或示例的特征或配置可以在本文中的其他实施例或示例中实现或者与其他实施例或示例组合。即,诸如“实施例”、“变型”、“方面”、“示例”、“配置”、“实现方式”、“情况”之类的术语,以及可以暗示实施例的任何其他术语(如本文中用来描述特定特征或配置的术语)并不旨在将任何相关联的特征或配置限制于一个或多个特定的实施例或单独的实施例,并且不应当解释为暗示这样的特征或配置不能与参考其他实施例、变型、方面、示例、配置、实现方式、情况等描述的特征或配置进行组合。换句话说,本文中参考特定示例(例如,实施例、变型、方面、配置、实现方式、情况等)描述的特征可以与参考另一示例描述的特征进行组合。准确地说,本领域普通技术人员将容易认识到,本文描述的各种实施例或示例以及它们的相关特征可以彼此组合。
诸如“方面”之类的短语并不意味着该方面对于本主题技术是必不可少的,也不意味着该方面适用于本主题技术的所有配置。与一个方面有关的公开可以应用于所有配置、或者一个或多个配置。诸如方面之类的短语可以指代一个或多个方面,反之亦然。诸如“配置”之类的短语并不意味着该配置对于本主题技术是必不可少的,也不意味着该配置适用于本主题技术的所有配置。与配置有关的公开可以适用于所有配置或者一个或多个配置。诸如配置之类的短语可以指代一个或多个配置,反之亦然。词语“示例性”在本文中用来表示“用作示例或说明”。本文中被描述为“示例性”的任何方面或设计不必被解释为比其他方面或设计优选或者有利。
此外,引用一组中的“至少一个”的权利要求语言表示该组中的一个成员或该组中的多个成员满足权利要求。例如,引用“A、B和C中的至少一个”或“A、B或C中的至少一个”的权利要求语言是指单独的A;单独的B;单独的C;A和B一起;A和C一起;B和C一起;或者A、B和C一起。

Claims (22)

1.一种方法,包括:
确定计算环境的服务器容量和负载以实现系统分析;
运行第一基准作业来校准资源调度器以实现第一校准;
基于所述第一校准,将所述计算环境划分为第一优先级部分和第二优先级部分;
基于所述系统分析,按时间段将多个信用分配给所述计算环境,其中,所述多个信用中的每个信用表示对所述计算环境内的用于在所述计算环境中运行工作负载的计算环境容量的抽象;
运行第二基准作业来校准要在所述计算环境中运行的受支持作业类型的复杂度以实现第二校准;
在所述资源调度器处接收来自实体的对在所述计算环境中运行工作负载的请求;
基于所述第二校准并且通过所述资源调度器,根据与所述工作负载相关联的作业大小和所述工作负载的作业复杂度中的一个或多个以及所述计算环境容量,针对一个或多个时间段将一个或多个信用分配给与所述请求相关联的所述工作负载;
基于所述请求,从所述实体的帐户收取所述一个或多个信用;以及
通过将从所述实体的帐户收取的所述一个或多个信用应用于所述多个信用,将所述工作负载调度到所述计算环境的第一优先级部分或所述计算环境的第二优先级部分中的一个中,其中,所述计算环境中的一定数量的计算资源在调度时间处被分配给所述工作负载。
2.根据权利要求1所述的方法,其中,所述第一优先级部分是所述计算环境的溢价部分,所述溢价部分相对于所述计算环境的第二优先级部分的信用使用成本具有较高的信用使用成本。
3.根据权利要求1或2所述的方法,其中,调度所述工作负载包括:所述资源调度器针对所述调度时间将核心、存储器、带宽、或存储装置中的一个或多个分配给所述工作负载。
4.根据权利要求1或2所述的方法,还包括:基于所述请求,从所述实体的账户收取溢价数量的信用,以将所述工作负载调度到所述计算环境的第一优先级部分中。
5.根据权利要求1或2所述的方法,其中,所述调度时间包括以下各项中的一项:多个连续时间量或多个非连续时间量。
6.根据权利要求1或2所述的方法,其中,在所述调度时间处分配给所述工作负载的所述计算环境中的所述一定数量的计算资源是基于所述计算环境中相对于所述工作负载的优先级的可用容量、所述作业大小和所述作业复杂度来确定的。
7.根据权利要求1或2所述的方法,还包括:基于所述第一校准,将所述计算环境划分为所述第一优先级部分、所述第二优先级部分和保留部分。
8.根据权利要求1或2所述的方法,其中,所述计算环境的第一优先级部分中的一个信用数量的计算资源可用于两个或更多个信用。
9.根据权利要求1或2所述的方法,其中,所述作业复杂度是相对于所述第二校准来确定的。
10.根据权利要求1或2所述的方法,还包括:当基于触发事件在所述计算环境中调度所述工作负载时,所述资源调度器补偿所述实体。
11.根据权利要求10所述的方法,其中,所述触发事件包括以下各项中的一项或多项:所述实体的先前表现问题、对所述实体的更高收费、所述实体的延迟问题、以及服务水平协议违反。
12.根据权利要求1或2所述的方法,其中,所述工作负载包括非实时工作负载。
13.根据权利要求1或2所述的方法,还包括:周期性地向所述实体分配信用。
14.根据权利要求1或2所述的方法,其中,将所述工作负载调度到所述计算环境的第一优先级部分或所述计算环境的第二优先级部分之一中还包括:基于所述工作负载的优先级,将所述工作负载进一步调度到所述计算环境的保留部分中。
15.根据权利要求1或2所述的方法,其中,当发生故障时,所述调度还包括:将所述工作负载调度到所述计算环境的保留部分中,其中,所述计算环境的保留部分被分配有所述多个信用的一部分。
16.一种资源调度器,包括:
处理器;以及
计算机可读存储设备,存储有指令,所述指令在由所述处理器执行时使得所述处理器执行包括以下各项的操作:
确定计算环境的服务器容量和负载以实现系统分析;
运行第一基准作业来校准所述资源调度器以实现第一校准;
基于所述第一校准,将所述计算环境划分为第一优先级部分、第二优先级部分和保留部分中的两个或更多个;
基于所述系统分析,按时间段分配多个信用,其中,所述多个信用中的每个信用表示对用于在所述计算环境中运行工作负载的计算环境容量的抽象;
运行第二基准作业来校准要在所述计算环境中运行的受支持作业类型的复杂度以实现第二校准;
接收来自实体的对在所述计算环境中运行工作负载的请求;
基于所述第二校准并且通过所述资源调度器,根据与所述工作负载相关联的作业大小和所述工作负载的作业复杂度中的一个或多个以及计算环境容量,针对一个或多个时间段将一个或多个信用分配给与所述请求相关联的所述工作负载;
基于所述请求,从所述实体的帐户收取所述一个或多个信用;以及
通过将从所述实体的帐户收取的所述一个或多个信用应用于所述多个信用,将所述工作负载调度到所述计算环境的第一优先级部分、所述计算环境的第二优先级部分、或所述计算环境的保留部分中的一个或多个中,其中,所述计算环境中的一定数量的计算资源在调度时间处被分配给所述工作负载。
17.根据权利要求16所述的资源调度器,其中,所述第一优先级部分是所述计算环境的溢价部分,所述溢价部分相对于所述计算环境的第二优先级部分的信用使用成本具有较高的信用使用成本。
18.根据权利要求16至17中任一项所述的资源调度器,其中,调度所述工作负载包括:所述资源调度器针对所述调度时间将核心、存储器、带宽、或存储装置中的一个或多个分配给所述工作负载。
19.根据权利要求16至17中任一项所述的资源调度器,其中,所述调度时间包括以下各项中的一项:多个连续时间量或多个非连续时间量。
20.一种计算机可读存储设备,存储有指令,所述指令在由处理器执行时使得所述处理器执行包括以下各项的操作:
确定计算环境的服务器容量和负载以实现系统分析;
运行第一基准作业来校准资源调度器以实现第一校准;
基于所述第一校准,将所述计算环境划分为第一优先级部分、第二优先级部分和保留部分;
基于所述系统分析,按时间段分配多个信用,其中,所述多个信用中的每个信用表示对用于在所述计算环境中运行工作负载的计算环境容量的抽象;
运行第二基准作业来校准要在所述计算环境中运行的受支持作业类型的复杂度以实现第二校准;
接收来自实体的对在所述计算环境中运行工作负载的请求;
基于所述第二校准并且通过所述资源调度器,根据与所述工作负载相关联的作业大小和所述工作负载的作业复杂度中的一个或多个以及计算环境容量,针对一个或多个时间段将一个或多个信用分配给与所述请求相关联的所述工作负载;
基于所述请求,从所述实体的帐户收取所述一个或多个信用;以及
通过将从所述实体的帐户收取的所述一个或多个信用应用于所述多个信用,将所述工作负载调度到所述计算环境的第一优先级部分、所述计算环境的第二优先级部分、或所述计算环境的保留部分中的一个或多个中,其中,所述计算环境中的一定数量的计算资源在调度时间处被分配给所述工作负载。
21.一种资源调度器,包括:
处理器;以及
计算机可读存储设备,存储有指令,所述指令在由所述处理器执行时使得所述处理器执行根据权利要求1至15中任一项所述的方法。
22.一种计算机可读存储设备,存储有指令,所述指令在由处理器执行时使得所述处理器执行根据权利要求1至15中任一项所述的方法。
CN201880080712.5A 2018-01-03 2018-12-26 用于根据基于信用的机制来调度工作负载的系统和方法 Active CN111480145B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/861,255 2018-01-03
US15/861,255 US10452436B2 (en) 2018-01-03 2018-01-03 System and method for scheduling workload based on a credit-based mechanism
PCT/US2018/067476 WO2019135963A1 (en) 2018-01-03 2018-12-26 A system and method for scheduling workload based on a credit-based mechanism

Publications (2)

Publication Number Publication Date
CN111480145A CN111480145A (zh) 2020-07-31
CN111480145B true CN111480145B (zh) 2024-02-20

Family

ID=65024165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880080712.5A Active CN111480145B (zh) 2018-01-03 2018-12-26 用于根据基于信用的机制来调度工作负载的系统和方法

Country Status (5)

Country Link
US (2) US10452436B2 (zh)
EP (1) EP3735635A1 (zh)
CN (1) CN111480145B (zh)
CA (1) CA3086764A1 (zh)
WO (1) WO2019135963A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG10201704581VA (en) * 2009-12-10 2017-07-28 Royal Bank Of Canada Synchronized processing of data by networked computing resources
US11140217B2 (en) * 2016-05-06 2021-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Dynamic load calculation for server selection
CN108062246B (zh) * 2018-01-25 2019-06-14 北京百度网讯科技有限公司 用于深度学习框架的资源调度方法和装置
US20210256427A1 (en) * 2018-06-21 2021-08-19 Google Llc Automated Computer Operating System Optimization
JP7135648B2 (ja) * 2018-09-20 2022-09-13 富士フイルムビジネスイノベーション株式会社 中継システム
CN111124687B (zh) * 2019-12-30 2022-04-22 浪潮电子信息产业股份有限公司 一种cpu资源预留方法、装置及其相关设备
CN115398398A (zh) * 2020-04-15 2022-11-25 海峡小鹿有限公司 数据处理方法、装置、电子设备以及系统
US11277318B2 (en) * 2020-04-30 2022-03-15 Accenture Global Solutions Limited Analyzing a communication network device, based on capacity analyses associated with decommissioning the communication network device, to determine next actions
US11438273B2 (en) * 2020-07-20 2022-09-06 Altiostar Networks, Inc. Real-time processing in wireless communications systems
US11416180B2 (en) 2020-11-05 2022-08-16 International Business Machines Corporation Temporary data storage in data node of distributed file system
US20220164235A1 (en) * 2020-11-20 2022-05-26 Okta, Inc. Server-Based Workflow Management Using Priorities
US11822953B2 (en) * 2021-03-30 2023-11-21 Dell Products L.P. Multi-Criteria decision analysis for determining prioritization of virtual computing resources for scheduling operations
US11900146B2 (en) * 2021-08-31 2024-02-13 Apple Inc. Memory controller with separate transaction table for real time transactions
WO2023115435A1 (en) * 2021-12-23 2023-06-29 Intel Corporation Methods, systems, articles of manufacture and apparatus to estimate workload complexity
CN118227303A (zh) * 2022-12-13 2024-06-21 华为云计算技术有限公司 基于云服务的资源分配方法及装置
EP4414912A1 (en) * 2023-02-13 2024-08-14 Robert Bosch GmbH Job scheduling with infeasible jobs

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001023974A2 (en) * 1999-09-28 2001-04-05 International Business Machines Corporation Workload management in a computing environment
CN101118624A (zh) * 2006-07-31 2008-02-06 埃森哲全球服务有限公司 工作分配模型
CN102724103A (zh) * 2011-03-30 2012-10-10 国际商业机器公司 代理服务器、分层次网络系统及分布式工作负载管理方法
CN102739770A (zh) * 2012-04-18 2012-10-17 上海和辰信息技术有限公司 一种基于云计算的资源调度方法及系统
CN104040486A (zh) * 2012-01-09 2014-09-10 微软公司 解耦paas资源、作业和调度
CN106502792A (zh) * 2016-10-20 2017-03-15 华南理工大学 一种面向不同类型负载的多租户资源优化调度方法
CN106576275A (zh) * 2014-08-13 2017-04-19 三星电子株式会社 用于异构网络中的设备优化的网络环境感测和切换

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6714960B1 (en) 1996-11-20 2004-03-30 Silicon Graphics, Inc. Earnings-based time-share scheduling
US9015324B2 (en) * 2005-03-16 2015-04-21 Adaptive Computing Enterprises, Inc. System and method of brokering cloud computing resources
US8156500B2 (en) 2005-07-01 2012-04-10 Microsoft Corporation Real-time self tuning of planned actions in a distributed environment
US9092593B2 (en) * 2007-09-25 2015-07-28 Power Analytics Corporation Systems and methods for intuitive modeling of complex networks in a digital environment
US8229722B2 (en) * 2007-05-16 2012-07-24 Power Analytics Corporation Electrical power system modeling, design, analysis, and reporting via a client-server application framework
US8155943B2 (en) * 2007-10-12 2012-04-10 Power Analytics Corporation Systems and methods for automatically converting CAD drawing files into intelligent objects with database connectivity for the design, analysis, and simulation of electrical power systems
US20110154353A1 (en) 2009-12-22 2011-06-23 Bmc Software, Inc. Demand-Driven Workload Scheduling Optimization on Shared Computing Resources
US9436512B2 (en) * 2011-12-22 2016-09-06 Board Of Supervisors Of Louisana State University And Agricultural And Mechanical College Energy efficient job scheduling in heterogeneous chip multiprocessors based on dynamic program behavior using prim model
US20150046279A1 (en) 2012-09-12 2015-02-12 Salesforce.Com, Inc. Auction-based resource sharing for message queues in an on-demand services environment
US10552774B2 (en) * 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
US9996442B2 (en) * 2014-03-25 2018-06-12 Krystallize Technologies, Inc. Cloud computing benchmarking
US9612878B2 (en) 2014-03-31 2017-04-04 International Business Machines Corporation Resource allocation in job scheduling environment
US9442760B2 (en) * 2014-10-03 2016-09-13 Microsoft Technology Licensing, Llc Job scheduling using expected server performance information

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001023974A2 (en) * 1999-09-28 2001-04-05 International Business Machines Corporation Workload management in a computing environment
CN101118624A (zh) * 2006-07-31 2008-02-06 埃森哲全球服务有限公司 工作分配模型
CN102724103A (zh) * 2011-03-30 2012-10-10 国际商业机器公司 代理服务器、分层次网络系统及分布式工作负载管理方法
CN104040486A (zh) * 2012-01-09 2014-09-10 微软公司 解耦paas资源、作业和调度
CN102739770A (zh) * 2012-04-18 2012-10-17 上海和辰信息技术有限公司 一种基于云计算的资源调度方法及系统
CN106576275A (zh) * 2014-08-13 2017-04-19 三星电子株式会社 用于异构网络中的设备优化的网络环境感测和切换
CN106502792A (zh) * 2016-10-20 2017-03-15 华南理工大学 一种面向不同类型负载的多租户资源优化调度方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Demir Y. Yavas.Modeling of Priority-based Request Scheduling Mechanism for Finite Buffer SIP Servers.QTNA '16: Proceedings of the 11th International Conference on Queueing Theory and Network Applications.2016,全文. *
刘亚秋 ; 邢乐乐 ; 景维鹏 ; .云计算环境下基于时间期限和预算的调度算法.计算机工程.2013,(06),全文. *
王小宁 ; 肖海力 ; 曹荣强 ; .面向高性能计算环境的作业优化调度模型的设计与实现.计算机工程与科学.2017,(04),全文. *

Also Published As

Publication number Publication date
US20200012523A1 (en) 2020-01-09
CN111480145A (zh) 2020-07-31
US10949257B2 (en) 2021-03-16
US20190205164A1 (en) 2019-07-04
US10452436B2 (en) 2019-10-22
WO2019135963A1 (en) 2019-07-11
EP3735635A1 (en) 2020-11-11
CA3086764A1 (en) 2019-07-11

Similar Documents

Publication Publication Date Title
CN111480145B (zh) 用于根据基于信用的机制来调度工作负载的系统和方法
US11201832B2 (en) Dynamic allocation of resources while considering resource reservations
Garg et al. SLA-based virtual machine management for heterogeneous workloads in a cloud datacenter
CA2883883C (en) Auction-based resource sharing for message queues in an on-demand services environment
Wang et al. Dynamic cloud resource reservation via cloud brokerage
US10120724B2 (en) Optimized resource metering in a multi tenanted distributed file system
US8458011B2 (en) Dynamic pricing of a resource
US10886743B2 (en) Providing energy elasticity services via distributed virtual batteries
US20150046279A1 (en) Auction-based resource sharing for message queues in an on-demand services environment
US20120290725A1 (en) Dynamic Cost Model Based Resource Scheduling In Distributed Compute Farms
US10037501B2 (en) Energy management costs for a data center
Voorsluys et al. Provisioning spot market cloud resources to create cost-effective virtual clusters
CN103064744B (zh) 一种基于SLA的面向多层Web应用的资源优化方法
Ang et al. Dynamic pricing scheme for resource allocation in multi-cloud environment
WO2022262476A1 (en) Dynamic renewable runtime resource management
Wang et al. Maximizing the profit of cloud broker with priority aware pricing
Díaz Sánchez et al. An economic agent maximizing cloud provider revenues under a pay-as-you-book pricing model
Kostopoulos et al. Energy-aware pricing within cloud environments
Chen et al. Razor: Scaling backend capacity for mobile applications
Xavier et al. A dynamic admission control scheme to manage contention on shared computing resources
Kavanagh et al. A grid broker pricing mechanism for temporal and budget guarantees
Ben-Yehuda et al. The magazine archive includes every article published in Communications of the ACM for over the past 50 years.
Kavanagh et al. An economic market for the brokering of time and budget guarantees
Ben-Yehuda et al. The Rise of RaaS: The Resource-as-a-Service Cloud In the RaaS cloud, virtual machines trade in fine-grain resources on the fly.

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