CN108885561A - 计算机处理的资源调配 - Google Patents
计算机处理的资源调配 Download PDFInfo
- Publication number
- CN108885561A CN108885561A CN201680078758.4A CN201680078758A CN108885561A CN 108885561 A CN108885561 A CN 108885561A CN 201680078758 A CN201680078758 A CN 201680078758A CN 108885561 A CN108885561 A CN 108885561A
- Authority
- CN
- China
- Prior art keywords
- deployed
- backlog
- growth
- process resource
- overstocked
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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
- G06F9/5016—Allocation 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 the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Abstract
接收数据流作为输入的作业被执行。对于作业,在第一段时间内迭代地确定:积压增长;积压量;以及是否调整处理资源的数量。对于确定为调整调配给作业的处理资源数量的每次迭代,调整调配给作业的处理资源的数量。对于确定为不调整调配给作业的处理资源的数量的每次迭代,维持调配给作业的处理资源的数量。
Description
相关申请的交叉引用
本申请要求于2016年3月4日提交的序列号为62/303,827的美国临时申请的优先权权益,其全部内容通过引用结合于此。
背景技术
计算机网络是通过允许共享资源和信息的通信信道互连的其他硬件和计算机的集合。通信协议定义了在计算机网络中交换信息所用的数据格式和规则。
发明内容
本文涉及并行处理环境中的输入的计算机处理。
在一个方面,一种方法由计算机系统执行。方法包括:在包括多个处理资源的计算机系统中运行作业,作业接收数据流作为输入,其中数据流中的数据量是无限的。该方法包括为作业迭代地确定:在第一时间段内的积压增长,其中积压增长是对接收到的要被输入到作业中的数据流中未处理数据的增长的量度;积压量,积压量是对接收到的要被输入到作业中的数据流中未处理的数据的量度;基于积压增长和积压量确定是否调整调配给作业的处理资源的数量。该方法包括:对于被确定为调整调配给作业的处理资源的数量的每次迭代,调整调配给作业的处理资源的数量。该方法包括:以及对于被确定为不调整调配给作业的处理资源的数量的每次迭代,维持调配给作业的处理资源的数量。
实施方式可以包括以下特征中的任意一个、以下所有特征或者不包括以下特征。对于确定的迭代:积压增长被确定为零或负;积压量被确定为处于目标;响应于积压增长被确定为零或负并且积压量被确定为处于目标,确定调配给作业的处理资源的数量被确定为不调整。对于确定的迭代:积压增长被确定为零或负;积压量被确定为低于目标;响应于积压增长被确定为零或负并且积压量被确定为低于目标,确定调配给作业的处理资源的数量被确定为要调整;并且其中调整调配给作业的处理资源的数量包括:响应于积压增长被确定为零或负且积压量被确定为低于目标而减少调配给作业的处理资源的数量。对于确定的迭代:积压增长被确定为零或负;积压量被确定为高于目标;响应于积压增长被确定为零或负并且积压量被确定为高于目标,确定调配给作业的处理资源的数量被确定为要调整;并且其中调整调配给作业的处理资源的数量包括:响应于积压增长被确定为零或负且积压量被确定为高于目标而增加调配给作业的处理资源的数量。对于确定的迭代:积压增长被确定为正;积压量被确定为低于目标,响应于积压增长被确定为正且积压量被确定为低于目标,确定调配给作业的处理资源的数量被确定为不调整。对于确定的迭代:积压增长被确定为正;积压量被确定为不低于目标,响应于积压增长被确定为正且积压量被确定为低于目标,确定调配给作业的处理资源的数量被确定为调整;并且其中调整调配给作业的处理资源的数量包括:响应于积压增长被确定为正且积压量被确定为低于目标而增加调配给作业的处理资源的数量。积压增长是数据大小的量度。数据大小的单位是由比特、字节、兆字节、千兆字节、记录和基数组成的组中的至少一个。积压增长是对处理时间的量度。处理时间的单位是由微秒、秒、分钟、小时和天组成的组中的至少一个。积压量是数据大小的量度。数据大小的单位是由比特、字节、兆字节、千兆字节、记录和基数组成的组中的至少一个。积压量是对处理时间的量度。处理时间的单位是由微秒、秒、分钟、小时和天组成的组中的至少一个。方法还包括:迭代地确定用于作业的处理器利用率;其中迭代地确定是否调整调配给作业的处理资源的数量还基于处理器利用率。对于确定的迭代:处理器利用率低于一个值;响应于确定处理器利用率低于一个值,确定调配给作业的处理资源的数量被确定为要调整;和其中调整调配给作业的处理资源的数量包括:响应于确定处理器利用率低于一个值而减少调配给作业的处理资源的数量。响应于确定处理器利用率低于一个值而减少调配给作业的处理资源的数量包括:减少调配给作业的资源的离散数量,离散数量是基于处理器利用率的。离散数量是计算机内存盘的数量。基于积压增长和积压量确定是否调整调配给作业的处理资源的数量包括:对导致调配给作业的处理资源的数量振荡的确定进行平滑。对确定进行平滑包括:等待第二时间段。对确定进行平滑包括:对是否调整调配给作业的处理资源的数量的多个确定进行平均。
在一个方面中,一种系统包括一个或多个处理器,处理器被配置为运行计算机程序指令;和计算机存储介质,计算机存储介质用计算机程序指令编码,计算机程序指令在由一个或多个处理器运行时,使计算机设备执行操作,操作包括:在包括多个处理资源的计算机系统中运行作业,作业接收数据流作为输入,其中数据流中的数据量是无限的。操作包括为作业迭代地确定:在第一时间段内的积压增长,其中积压增长是对接收到的要被输入到作业中的数据流中未处理数据的增长的量度;积压量,积压量是对接收到的要被输入到作业中的数据流中未处理的数据的量度;基于积压增长和积压量确定是否调整调配给作业的处理资源的数量。操作包括对于被确定为调整调配给作业的处理资源的数量的每次迭代,调整调配给作业的处理资源的数量。操作包括对于被确定为不调整调配给作业的处理资源的数量的每次迭代,维持调配给作业的处理资源的数量。
本文描述的系统和过程可用于提供许多潜在的优点。通过使用积压量度(measure)作为度量(metric)来确定资源调配级别,可以减少或消除过度拨备和拨备不足的缺点。过度拨备会导致未使用或闲置的网络资源,增加成本并减少可以处理的作业数量。通过降低工作负载的资源调配,可以为不同的作业释放未使用的资源。拨备不足导致积压增加,这可能导致数据丢失和延迟增加。通过加大工作负载的资源调配,可以在输入增加时更快地处理作业。在很多情况下,数据是以流或者常量输入到作业中,无限的数据流增加或减少不可预知性。动态响应这种输入而不是将其视为批处理或计划为最坏情况,可以灵活地响应输入中的大尖峰或骤降。
根据所附说明书和附图,其他特征、方面和潜在优点将显而易见。
附图说明
图1是高度分布式计算环境的框图,该高度分布式计算环境为一组作业自动调谐资源调配。
图2包含了显示有自动调谐和无自动调谐的针对作业的资源调配情况的图表。
图3包含显示随时间推移的流信号图表。
图4是用于自动调谐资源调配的示例过程的流程图。
图5是用于确定资源调配是应该增加还是减少的示例过程的流程图。
图6A、6B和6C是用于对建立、调整大小和暂停任务的示例过程的流程图。
图7是显示计算设备的示例的示意图。
各个附图中相同的附图标记表示相同的元件。
具体实施方式
在共享的并行计算环境中,计算资源可以被调配给不同的任务,既可以被调配给单个作业中的不同的并行运行任务,也可以被调配给可以被同时处理的不同作业。为了确定应该如何调配这些资源,可以为作业分配一个积压(backlog)大小,该大小定义了应该允许多少输入积压。然后根据积压的实际大小动态分配和删除资源,以便将实际积压保持在分配的积压级别或低于分配的积压级别。例如,这可以允许资源的动态调配随着时间推移匹配特定作业的需求。
这种动态调配可以被称为自动缩放。这是因为可用于特定作业的资源会自动缩放,以随着时间的推移匹配提供给作业的输入的处理需求。随着输入量随时间变化,需要更多的资源来防止未处理的输入的不可接受的构建。这种未经处理的输入会创建积压,基本上是可处理但尚未处理的输入。
积压可以以数据大小(例如,字节、兆字节)、处理时间(例如,数据可以但尚未被处理的持续时间、使用当前或固定数量的资源直到所有当前积压数据被处理的预期时间、数据随时间的吞吐量值)、计数(例如,文件或碎片的数量)来测量,或沿着其他适当的维度来测量。
积压大小是用于自动调谐的有用的度量,因为它还是可以影响其他计算资源的度量、可以影响基于计算机的产品的有用性、并且可以被人类用户容易理解的度量。例如,随着积压的增加,存储在计算机内存中的积压将需要越来越多的内存。通过保持积压等于或小于目标大小,可以知道并计划所需的内存大小。同样,通过将积压保持在目标大小以下,可以提供服务质量。只有在发布帖子时解析帖子,解析社交媒体帖子的作业才有用。通过将未解析的帖子的积压保持在例如两分钟之内,可以确保该作业对其预期目的有用。通过以对人类用户是可理解的维度来记录和报告积压,这些用户可以决策使用他们的作业以及未来的作业如何被利用和支付。
图1是高度分布式计算环境100的框图,其为一组作业自动调谐资源调配。诸如局域网(LAN)、广域网(WAN)、因特网或这些的组合的计算机网络102连接分布式处理系统104、流数据提供器106以及一个或多个网络存储设备108。例如,分布式处理系统104可以包括分布式处理系统管理器110、工作器管理器112和多个数据处理器114。尽管网络存储设备108被描绘为与分布式处理系统104分开,但它们也可以被包括在分布式处理系统104中。
流数据提供器106提供由分布式处理系统104处理的数据。分布式处理系统104可以获取用于在数据记录上执行一个或多个作业111的数据记录和指令。作为示例,流数据提供器106可以向分布式处理系统104提供搜索查询记录以用于过滤、分类和其他分析。例如,搜索查询记录可以包括提交给搜索系统的搜索查询和相关信息,诸如指示查询的接收时间的时间戳。
例如,来自流数据提供器的数据可以是无边界(unbounded)的、不可预知的、高度变化的和/或突发的。无边界数据包括是持续更新的没有确定的大小的数据集的数据或流数据。持续更新数据集的示例可以是它们生成时的服务器日志,或者处理它们时的所有新命令。不可预知的数据包括至少在某些维度难以预测、无法预测或尚未预测的数据。例如,用户接收电子邮件的速率可能是不可预知的,因为其可能取决于高度分布式计算环境100不能或无法访问的因素。高度变化的数据包括至少在一个维度上显著变化的数据。高度变化的数据可能是高度季节性或周期性的。来自零售商网站的日志可能会更快或更慢地更新,具体取决于年份和购物季节。突发数据包括数据生成的即时率不接近数据生成的平均率的数据。换句话说,突发数据经常被高度分布式计算环境100以高数据接收的突发接收,高数据接收的的后续是低数据接收间歇。
分布式处理系统管理器110可以为数据处理系统104执行处理调度和资源管理服务,例如通过分配要由工作器113运行的作业111、为工作器113分配一个或多个数据处理器114、为工作器113分配网络存储设备108的一个或多个盘(disk)、识别并解决故障和积压、以及管理临时和长期存储。尽管工作器管理器112被描述为与分布式处理系统管理器110是分开的,但在一些实施方式中,工作管理器112可以是分布式处理系统管理器110的一部分。工作器管理器112监视工作器113、数据处理器114和网络存储设备108以确定工作负载积压是否以及何时被创建。如果正在创建工作负载积压,或者在资源(例如,数据处理器114和/或网络存储设备108)空闲时未创建工作负载积压,则工作负载管理器112可以自动调谐分配给作业111的资源。
作业111处理来自流数据提供器106的数据,并产生可以存储到网络存储设备108或用于其他目的的输出。在一些实施方式中,作业111从多个数据流接收输入数据。例如,作业11可以从流数据提供器106接收社交媒体帖子流,并且从不同的(未示出的)流送数据提供器接收天气数据流。为了处理接收到的输入数据流,作业111可以被分配给工作器113。例如,每个工作器113可能已经分配了一个或多个处理器114和网络存储设备108的实体的或虚拟的一个或多个盘。然后分配给特定作业111的工作器113可以根据作业111定义的处理来处理流输入数据,并且将被存储在网络存储设备108中的产品输出发送到别处。
虽然这个示例描述了分配给工作器113的资源(例如,数据处理器114和网络存储设备108)并且分配给作业111的工作器113,但是用于向作业111调配资源的其他方案也是可能的。例如,数据处理器114和/或网络存储设备108的盘可以由分布式处理系统管理器直接分配给作业111。
在一些情况下,作业111可以被分解为处理,其中每个处理被分配给一个工作器113。例如,当作业111是可并行化时这可能是有利的,例如作业111能够被分解成多个活动,每个活动可以独立于彼此运行。
图2包含图表200、208和216,示出了有自动调谐和无自动调谐的针对作业的资源调配。如果无自动调谐,资源可能会被过度拨备(overprovisioned)或拨备不足(underprovisioned)。过度拨备会浪费资源,同时拨备不足可能导致在工作负载峰值期间的落后。相比之下,当工作负载增加时自动调谐拨备工作器,以及在工作负载减少时类似地减少工作器数量,可以根据需要动态调整资源。
在图表200中,示出了资源的过度产出。线202表示拨备的恒定级别,该恒定级别大于线204所示的工作负载。区域206表示已经调配的未使用的并因此浪费的资源。
在图表208中,示出了资源的生产不足。线210表示拨备的恒定级别,该恒定级别低于峰值期间线212所示的工作负载。区域214表示引起积压的无法被处理的工作负载,。
在图表216中,示出了资源调配的自动调谐。线218表示响应于线220所示的工作负载的变化的资源的动态调配级别。如图所示,被调配的资源几乎等于或大于工作负载。此外,虽然有些情况下工作负载大于调配的资源,从而导致积压量增加,但资源调配级别迅速提高,使得短期内资源被调配更多。因此,增加的积压可以由增加的资源调配来处置,并进行处理以返回到目标级别。
举例来说,自动调谐可以使用以下信号来做出决策。CPU利用率:作业中所有工作器虚拟机的平均CPU利用率。阶段积压增长:未处理数据的大小。阶段积压量:接收到的数据流中未处理数据的度量,接收到的数据流要输入给作业。在一些实施方式中,积压量可以是积压时间,该积压时间在给定当前吞吐量而没有额外输入到达时,对解决积压所花费的时间的度量。也可以使用其他信号。
自动调谐采用如下约束在作业的所有阶段之间寻求平衡:积压增长、积压量和CPU利用率。这些约束的子集可用于进行调整。例如,在一些实施方式中,可以使用积压增长和积压量。积压增长约束是平均积压增长<=0。如果积压增长是正的,积压累积并且作业落后。积压量约束是积压量<=目标积压量。例如,当积压量是积压时间时,需要相对较短的积压时间以避免这样的稳定状态:积压不增长,但是存在较大的处理延迟。更短的可接受积压达到更低的延迟,同时需要更多的处理资源。在某些情况下,可接受的积压延迟时间为0或接近0。在其他情况下,可接受的积压延迟时间更长。CPU约束是CPU(例如,数据处理器114)利用率高于阈值。CPU利用率低的稳定状态表明,流作业可能会跟上较少的工作器。在一些实施方式中,积压约束用于确定是否调整调配给作业的资源数量,并且如果系统确定调整资源数量,CPU约束被用于确定要调整的资源数量。
整体作业大小取决于满足所有阶段的积压约束所需的工作器的最大数量。如果积压约束满足所有的阶段,那么CPU约束被用于确定减少调配到什么程度。
在一些实施方式中,永久(persistent)盘用于存储状态。作业可以有一个固定数量的永久盘来存储作业状态,在某些情况下,该数量与用于作业的工作器的最大数量相同。每个盘对应作业正在处理的关键范围。因此,具有更多盘的工作器比具有较少盘的工作器更繁忙(假设范围内的数据均匀分布)。在某些情况下,缩放具有不均匀的盘分布的工作器的数量会导致性能处于工作器的最大负载级别。因此,自动调谐会选择能提供基本上均匀的盘分布的工作器的数量(例如,如果系统目标是每个工作器d个盘,则将具有d1个盘的工作器的数目减到最少)。
在一些实施方式中,通过将当前输入速率(吞吐量+积压增长)除以当前吞吐量来计算特定阶段的工作器的期望数量,并按当前工作器数量进行缩放。例如,如果10个工作器的吞吐量为1MB/s,并且积压增长为200K/s,则自动调谐将请求1.2*10=12个工作器。此外,可能会由于超过期望的积压时间而增加额外的工作器。
在一些实施方式中,每个阶段独立地计算工作器的期望数量。然后将作业池缩放到所有阶段的期望的最大工作器数量。
为了减少调配给作业的资源的数量,作业可以处于平均积压时间低于某个阈值并且积压增长为0(例如,平均而言、随着时间的推移、在阈值距离内)的稳定状况。在一些实施方式中,系统根据如下方式确定减少调配到什么程度。给定对平均盘分布的期望,自动调谐使用CPU作为作业是否可以处置工作器的下一个较低级别的代理,如下所述。假设工作器的当前数量w1,每个工作器有d1(或d1-1)个盘。找到每个工作器的最小d2>d1个盘和必要的最小w2个工作器,使得w2<w1并且每个工作器得到d2(或d2-1)个盘。假设完美的缩放且没有开销,则新的工作器将以当前CPU速率乘以w1/w2运行。如果新的CPU速率低于合理的阈值(例如,低于1.0),则自动调谐尝试将调配减少到w2。
恰好在先前的调配增加或减少之后的信号通常不代表稳定状态(例如,由于频繁的高速缓存丢失等)。因此,自动调谐可以使用决策的平滑化来避免不必要的振荡,同时仍然对工作负载的真实变化做出反应。放大决策的平滑通过以下方式发生:1)在工作器变化之后等待输入信号稳定一段时间;以及2)假定窗口中请求的最小工作器数量高于当前数量,平滑输出信号以在放大的时间窗口上选择平均期望的工作器。等待整个窗口上最小值的上升避免了对输入率中的短期噪音的反应。例如,如果当前工作器的数量小于10,并且该窗口包含以下期望的工作器数量[11,12,10],则调配增加将选择11作为要启动的工作器的数量(在标准化数量以获得均匀的盘分布之前)。
对于缩小,在一些实施方式中,自动调谐等待直到在特定时间段内窗口中的每个值低于工作器的当前数量后,缩小到最大值(其当前将一直是具有均匀盘分布的下一个较低级别的工作器)。
以下信号可能与工作器有关,可以从工作器管理器接收。Per_stage signals.信号。input_size:不断增加的被处理字节总数。导数计算吞吐量,见下文。backlog_size:以字节表示的积压中的当前大小。导数计算积压增长,见下文。active_size:当前正在由此阶段被处理的字节。用于确定阶段的固有延迟。system_watermark:该阶段的系统水印。在一些实施方式中,以1M/s增加。
作业信号。active_works:当前活跃的工作器的数量。在流式情况下,工作器可以是工作器处理和/或工作器线程。在一些实施方式中,计算为在接收配置更新后工作器检入的数量。计数可以反映准备工作的工作器的数量(例如,在所有盘分配,扫描完成之后)。attached_disks:用于确定是否并非所有盘都已附接且因此不应作出缩放决策。平均CPU利用率:作业中的所有工作器虚拟机的平均CPU利用率。
例如,对于作业的每个阶段的派生信号。来自input_size(自上次更新和指数平均值以来)的吞吐量。来自backlog size(自上次更新和指数平均)的backlog_growth。backlog_time:(backlog_size active_size)/吞吐量。没有额外输入到达时解决积压所需的时间(可能会使当前正在运行的内容打折)。在一些实施方式中,当系统接近实时时,效率可能下降,因此有效积压时间可能更长。min_throughput=吞吐量+max(0,backlog_growth)最小吞吐量需要不落后。
每阶段目标是通过以下约束缩放工作器以达到平衡:平均的
backlog_growth<=0,即积压长度稳定,不增长。
backlog_time<=acceptable_backlog_time(配置参数)。
backlog_time>=max_backlog_to_downscale(配置参数)。backlog_time约束试图确保延时在可接受的范围内,以避免处于积压极其大的稳定积压状态。
max_backlog_to_downscale约束是我们的尝试减少调配的信号。如果系统低于该阈值,则该系统可能浪费资源并且可以用较少的系统工作器来完成。
在一些实施方式中,放大基于添加工作器以1)跟上输入速率,以及2)将积压减小到最小长度。在某些情况下,可以假定最终吞吐量随工作器数量线性缩放,也就是说,随着工作器数量增加或减少x倍,吞吐量增加或减少x倍。在一些实施方式中,可以计算出所需工作器的数量是所需吞吐量的最小级别除以每个工作器的吞吐量。
剩余积压是高于可接受积压的积压,即当增长为负时,系统看起来并未减少当前积压增长。这可以计算为积压活跃大小,减去积压的可接受大小,再加上负积压负增长和积压恢复时间之和。
基于每个工作器的当前吞吐量,选择工作器的附加数量以在积压恢复时间内解决剩余积压。附加工作器的数量可以计算为剩余积压除以每个工作器的吞吐量和积压恢复时间之和。然后,将新的工作器的期望数量计算为积压工作器的数量加上工作器吞吐量的数量。
由于每个作业的盘总数可能是固定的,因此当系统进行缩放时,系统可以将现有的盘在工作器中分布。盘对应于数据的来源/范围,因此,具有更多盘的工作器比具有更少系统盘的工作器更繁忙(假设范围内数据均匀分布)。在某些情况下,缩放到具有不均匀盘分布的工作器数量会导致性能处于最高负载的工作器水平。因此,系统可以尝试缩放到提供均匀盘分布的最接近的工作器数量。
为了减少调配,在一些实施方式中,系统可能需要处于平均积压时间低于max_backlog_to_downscale并且积压增长平均为0的稳定状况。为了确定减少调配到什么程度,系统使用CPU作为系统是否可以处置下一较低级别的工作器的代理。一个基于代理的确定示例可以如下。假设工作器的当前数量w1意味着每个工作器最大#盘d1。系统计算最大工作器w2<w1,每个工作器至多有d2>d1个盘。在某些情况下,新工作器将以当前CPU速率乘以w1/w2运行。如果新的CPU低于可接受的最大值(例如,低于1.0),则系统尝试将调配减少到w2。
对于作业缩放,每个阶段可以独立地具有期望的工作器的数量。然后将作业池缩放到所有阶段的最大期望工作器数量。
平滑可以通过以下方式发生:1)在工作器变化之后等待输入信号稳定一段时间,以及2)假定最小值高于当前数量,平滑输出信号以在放大中在窗口上选择平均期望的工作器。等待整个窗口上最小值的上升可以避免对min_throughput中的短期高峰作出的反应。
对于缩小,在一些实施方式中,系统可以等待,直到窗口中的每个值低于工作器的当前数量,然后缩小到最大的识别值(其当前将一直是具有均匀盘分布的下一个系统级别的工作器)。
图3包含显示随时间的流信号的图表400、402、406和408。图表400显示了活跃的工作器的数量。在这个系列中,如可以在被请求的工作器被显示的底部系列中所看到的,工作器逐渐将调配从15减少到8。被请求和活跃工作器之间的差异表明某些工作器在调整大小期间短时间内可能不会处于活跃状态,可能会失败并返回等。请注意,由于目前所有工作器工作于所有阶段,活跃和被请求的工作器系列对于每个工作阶段都是相同的。
图表402示出了该阶段的积压时间。在给定当前平均处理速度下,将积压减小至0所需要的预估时间。
图表404示出流CPU利用率。这里显示的是涵盖所有虚拟机的平均利用率。但是,也可以使用其他度量,包括排除异常值的平均值、中位数、模式、最小值、最大值或组合这些值的度量。
图表406示出了输入速率以约5MB/s开始,并且增加到6.6MB/s,然后开始降低到低于4MB/s。速率中的凸起归因于图表408中所示的减小的调整大小点。调整大小会引起线路(pipeline)拖延(stall),这反过来会引起备份,然后进行追赶工作。因此这些瞬态呈现在派生信号中。
图4是用于自动调谐资源调配的示例过程500的流程图。过程500可以由例如高度分布式计算环境100的元件执行。因此,举例来说,将参考高度分布式计算环境100对处理500进行描述。然而,可以使用其他元件来执行处理500或其他类似的处理。
处理500包括在包含多个处理资源的计算机系统中运行作业502,该作业接收数据流作为输入,其中数据流中的数据量是无限的。例如,分布式处理系统管理器110可以从外部用户接收作业。该作业可以包括例如来自流数据提供器106的一个或多个输入源的指令,以用作输入数据。高度分布式计算环境100可以通过将网络存储设备108的盘和/或数据处理器114分配给一个或多个工作器113来运行作业,或指示工作器管理器112来网络存储设备108的盘和/或数据处理器114分配给一个或多个工作器113来运行作业,并且通过将该一个或多个工作器113分配给作业来运行作业。作业的初始调配可基于任何技术上适当的因素来设定,包括但不限于作业111的过去的运行、可用系统资源或其他因素。
处理500包括针对作业迭代地确定积压增长504、积压量506以及是否调整调配508。
针对作业的迭代地确定积压增长504包括确定第一时间段内的积压增长,其中积压增长是要被输入到作业中的接收到的数据流中未处理数据的增长的度量。例如,当作业111运行时,它从流数据提供器106接收输入。该输入可以被存储在适当的存储结构中,例如队列或缓冲器,直到作业111能够接受和处理更多的数据为止。如果作业111无法像接收到的那样快速地处理数据,随着时间的推移这可能创建或增加积累增长。如果作业111能够更快地处理接收到的存储结构中的数据,这可能会导致积压增长的减少。无论如何,可以监测增长的变化或不变化。例如,可以根据数据大小(即比特、字节、兆字节、千兆字节、记录、基数)、处理时间(即微秒、秒、分钟、小时、天、MB/s)或其他的变化来测量这种积压增长。
针对作业迭代地确定积压量506包括确定积压量,该积压量是将被输入到作业中的接收到的数据流中的未处理数据的量度。如所描述的,等待由作业111处理的数据可以被称为积压。例如,可以根据数据大小(即比特、字节、兆字节、千兆字节、记录、基数)、处理时间(即微秒、秒、分钟、小时、天)或其他方式来测量该积压。
对于作业是否调整调配508的迭代确定包括基于积压增长和积压量确定是否调整调配给作业的处理资源的量。如将在下面的示例处理600中进一步描述的那样,积压增长和积压量的状态可以用作过度拨备或拨备不足的指标,并且可能或期望调配更少或更多的资源。
确定调整针对调配给作业的处理资源的数量的每次迭代,调整调配给作业的处理资源的数量510。例如,如果网络资源被过度提供给作业111,它们可能会减少。并且如果网络资源拨备不足,则可能会增加。
确定不调整针对调配给作业的处理资源的数量的每次迭代,维持调配给作业的处理资源的数量512。例如,如果网络资源既没有过度拨备也没有拨备不足,可以向作业111拨备相同或相似级别的网络资源。这可以包括持续拨备完全相同的资源,或者可以包括以等同的方式拨备不同资源。
其他示例处理可以包括不同的元件的顺序、数量和类型。例如,除了积压增长和积压量之外,可以确定平均处理器的利用率。在该示例中,还基于处理器利用率迭代地确定是否调整调配给作业的处理资源的量。如果处理器利用率(例如,所使用的虚拟机之间的平均值低于一个值,则系统可以确定调配给作业的处理资源的数量将被调整。例如,如果处理器利用率低于一个值,则系统可以响应于处理器值被确定为低于该值,而确定调配给作业的处理资源的数量被确定要调整。然后系统可以调整调配给作业的处理资源的数量包括:响应于处理器值被确定为低于一个值而减少调配给作业的处理资源的数量。例如,如果许多工作器具有处理器利用率低的处理器,则这可能被解释为过度拨备的标志,并且系统可以通过减少调配的资源来自动调谐调配的资源。
图5是用于确定资源调配是应该增加还是减少的示例处理600的流程图。处理600可以通过例如高度分布式计算环境100的元件来执行。处理600可以例如作为执行处理500的一部分来执行。然而,作为处理500的一部分或者不作为处理500的一部分,可以使用其他元件来执行处理600或其他类似处理。
可以维持调配给作业的处理资源的量606。例如,如果积压增长被确定为负或零(例如,零、在零的阈值内)并且积压量被确定处于目标值(例如,与目标相同、在目标阈值内),这可能表明所调配的资源足以允许作业在不过度拨备的情况下处理输入数据。
可以减少调配给作业的处理资源的量608。例如,如果积压增长被确定为负或零并且积压量低于目标,则可允许积压增长——可能直到积压接近或达到目标。
可以增加调配给作业的处理资源的数量610。例如,如果积压增长被确定为零并且积压量处于目标处,则可以调配附加资源以减小积压——可能直到积压接近或达到目标。
可以维持调配给作业的处理资源的数量612。例如,如果积压增长被确定为正并且积压量被确定为低于目标,则积压可以被允许增长——可能直到积压接近或达到目标。
可以增加调配给作业的处理资源的数量614。例如,如果积压增长被确定为正并且积压量不低于目标,则可以将附加资源调配给作业,以使得积压增长可以停止或逆转。
其他示例处理可以包括不同数量、类型和顺序的元件。
图6A,6B和6C是用于建立、调整大小和暂停任务的示例处理的流程图。
在初始启动700期间,流负载均衡器可以负责告诉工作器它们拥有哪些范围、要安装哪些盘、以及协调将数据盘附接到正确的工作器。在调整大小的处理中,负载均衡器可以告诉工作器在特定范围内停止工作、卸载相应的盘、分离盘、重新附接盘、为所有工作器创建新的拓扑建立任务以及创建新的启动计算任务。
流载均衡器使用小步骤运行实例与工作器进行交互。当流负载均衡器需要与工作器进行交互时,会触发这些实例。这些步骤可以以生成流负载平衡器消耗的特定盘迁移更新结果结束,以便知道它启动的步骤已完成。流负载均衡器接收到盘迁移更新后,可以使用新的盘分配向所有工作器发出新的建立(拓扑)任务。
初始启动702。流负载平衡器最初向每个工作器发送包含拓扑和盘分配的任务建立消息。初始建立任务可以为每个工作器包含盘,但系统可能会决策不在初始建立任务上发送盘分配。这可以阻止工作器尝试安装他们尚未附接的盘。工作器可以声明此建立任务,并且因为这可以是他们的第一个,所以他们可以尝试安装盘,但安装任务中不会出现盘,这可能会导致系统中出现错误。
流负载均衡器然后可以启动盘附接704。第一步可以在步骤输入中对所有给定拓扑的工作器执行盘附接。例如,一旦所有盘被附接,随后的计算启动可以触发,为所有工作器生成流计算任务,以告知它们附接什么盘。该步骤可以等到所有这些任务都进入完成状态。工作器可以声明这些计算任务并尝试安装盘并开始询问关联的范围。那时,工作器可以开始工作706。
当系统检测到所有流计算任务已经完成时,盘迁移更新708可以开始告知流负载平衡器一切已完成。流负载均衡器观察DiskMigrationUpdate并取消所有现有的建立任务,并可以向包含最终盘分配的所有工作器发出新的建立任务。
工作器在其任务建立消息租期(1s)的下一次更新时,可以放弃建立任务并寻找新的任务。假设工作器已经有了正确安装的盘,工作器无需在新的建立任务中的对盘执行操作,因为这并不是它们的第一个。
调整大小(例如,移动盘)710。至少可以存在2种情况,扩大和缩小。它们都可以在协议中使用相同或相似的步骤进行处置,其中的一个例子如下:为新工作器发出新的空建立任务712(没有缩小)。这些最初不包含盘。等待新的工作器来声明这些空建立任务(以免过早停止现有流)。可能不需要等待缩小。向丢失盘的所有工作器发送停止计算任务712,并等待它们全部完成。执行盘分离步骤714。执行盘附接步骤716。发送开始计算任务给所有获取盘的工作器718并等待它们全部完成。取消所有现有的建立任务,并向所有工作器发出新的最终建立任务720。流负载均衡器与上述迷你工作流程步骤之间的协调可以按照与初始建立处理相同的方式完成,也就是说,在完成最后一步之后,在流负载均衡器发出最终的新建立任务之前可以生成流负载均衡器消耗的盘迁移更新结果。
暂停740。为了暂停工作流程,可以初始化暂停参数742。可以开始工作器的计算暂停704。可以从一些或全部工作器分离盘706。可以完成盘迁移更新708。
虽然处理700,710和740被描述为具有特定的操作数量、次序和类型,但其他处理是可能的。例如,下面描述另一个处理。在这个处理中,系统可以在系统发出启动和停止计算任务的同时发出新的建立任务,从而使工作器的行为相对于失败是幂等的。在每次盘迁移时,可能至少有3种工作器:丢失盘的工作器。获得盘的工作器。保持相同的盘的工作器。为了测试,系统还支持第四种组合,获得和丢失盘的工作器。
失去任何盘的工作器可以得到他们的任务,并且需要在不再包含他们丢失的盘的同时得到新的建立任务。另外,如果工作器可以在下一个任务中获得盘,则此时发出的建立任务可能不包含它尚未拥有的盘。因此,如果它们发生崩溃,它们可能不一定尝试安装它们已经/刚刚放弃的盘,并且它们可能不一定尝试安装尚未收到的盘。如果他们成功地卸载了他们的盘,那么他们可以达到期望的状态。否则,他们可以再次重新声明并运行卸载,如果它已经完成,则这可能是空操作(noop)。如果它们发生崩溃并重新启动,它们只会安装它们在这一轮中保留的盘(既没丢失也没获得)
获得盘的工作器在得到启动计算任务的同时得到新的建立任务。如果它们崩溃,无论是否已完成启动计算任务,它们可以在重新启动时安装新盘。再次,如果他们已经安装了一些盘,重新安装可以是幂等的并且可能不会引起问题。在迁移期间,保持相同盘的工作器可以在任何时候被赋予新的建立任务。系统可以在停止计算点处为这些工作器创建新的建立任务,即,停止计算点为一些工作器不得不使用现有拓扑停止工作的第一点。
初始启动。在初始启动时,系统不再发出初始建立任务,而是系统附接盘,然后发出所有最终建立任务作为启动计算步骤的一部分。这就解决了竞赛并缩短了启动时间,因为没有建立任务需要被抛弃、重新声明。
调整大小(迁移)。放大时,将盘从生产性工作器中移出之前,系统应等待新的虚拟机准备就绪。因此,系统仍会为新工作器发出初始建立任务,同时设置一个标志(flag)(由于没有未分配的盘,在当时它们实际上不包含任何盘)。新工作器最初可以得到空的建立任务,但是这允许等待,直到他们准备就绪。
之后,为丢失盘的现有工作器发出停止计算任务以及其新的建立任务(以及现有建立任务的取消)。同时,系统也可以为既没增加也没丢失盘的工作器发出所有的建立任务。一旦所有停止计算任务完成,盘就会分离并随后附接。最后,发出新的开始计算任务,以及用于获得盘的工作器的新建立任务(以及现有建立任务的取消)。
然后,新工作器可以看到他们的具有最终盘分配的新建立任务,或首先看到开始计算任务。二者之一可以使得他们安装在当时他们所具有的盘。如果他们在那段时间崩溃,他们也可以达到新的目标状态。
暂停。暂停时,系统向所有虚拟机发出停止计算任务,以及对不包含盘分配的新建立任务和吸纳有的建立任务的取消(因此,在发生崩溃的情况下,工作器不尝试安装它们可能已经放弃的盘)。盘被分离。
计算从工作器到其建立任务的映射可能是有用的。因为这个映射在停止和开始计算步骤中被修改,它们有自己的嵌套事务,所以我们不能像先前在流负载均衡器中做的那样始终如一地维持这个映射。相反,我们在这些步骤中使用结果缓存来按需计算映射。这也提供了删除所有中止和完成任务的旧调用结果的机会。
无论何时我们为了此工作器发出新的建立任务以取消现有建立任务(如果存在),都可以计算和查询该映射。这在停止计算或在开始计算步骤,以及缩小或暂停后发生。
另外,可以使用对系统可用的一些但不是全部的信息将作业处理的通信传送给用户。以下是可能使用的一些示例细节。
图7示出了可以用于实现本文描述的技术的移动计算设备850和计算设备800的示例。计算设备800旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机以及其他适当的计算机。移动计算设备850旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。这里显示的组件,它们的连接和关系以及它们的功能仅意在作为示例,并不意味着限制。
计算设备800包括处理器802、内存804、存储设备806、连接到内存804和多个高速扩展端口810的高速接口808、以及连接到低速扩展端口814和存储设备806的低速接口812。处理器802、内存804、存储设备806、高速接口808、高速扩展端口810和低速接口812中的每一个使用各种总线互连,并且可以根据需要安装在通用母板上或以其他适当的方式安装。处理器802可以处理用于在计算设备800内运行的指令,包括存储在内存804中或存储设备806上的指令,以在诸如耦合到高速接口808的显示器816的外部输入/输出设备上显示GUI的图形信息。在其他实施方式中,可适当地使用多个处理器和/或多个总线以及多个内存和多种类型的内存。而且,可连接多个计算设备,每个设备提供必要操作的一部分(例如,作为服务器库(server bank),一组刀片服务器或多处理器系统)。
内存804存储在计算设备800内的信息。在一些实施方式中,内存804是一个或多个易失性内存单元。在一些实施方式中,内存804是一个或多个非易失性内存单元。内存804也可以是另一种形式的计算机可读介质,例如磁盘或光盘。
存储设备806能够为计算设备800提供大容量存储。在一些实施方式中,存储设备806可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其他类似的固态内存设备,或包括存储区域网络中的设备或其他配置的设备阵列。指令可以存储在信息载体中。当这些指令在由一个或多个处理设备(例如,处理器802)运行时,执行一个或多个如上所描述的方法。指令还可以由一个或多个存储设备,例如,存储设备为计算机或机器可读介质(例如,内存804、存储设备806或处理器802上的内存)来存储。
高速接口808为计算设备800管理带宽密集(bandwidth-intensive)操作,而低速接口812管理较低带宽密集操作。这种功能调配只是一个例子。在一些实施方式中,高速接口808耦合到内存804、显示器816(例如,通过图形处理器或加速器)、以及高速扩展端口810,高速扩展端口810可接受各种扩展卡(未示出)。在该实施方式中,低速接口812耦合到存储设备806和低速扩展端口814。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口814可以通过如网络适配器被耦合到一个或多个输入/输出设备,输入/输出设备诸如键盘、指示设备(pointing device)、扫描仪或诸如交换机或路由器的联网设备。
如图所示,计算设备800可以以多种不同的形式来实现。例如,它可以被实现为标准服务器820,或者在一组这样的服务器中被多次实现。另外,其可以在诸如膝上型计算机822的个人计算机中实现。它也可以被实现为机架服务器系统824的一部分。另外,来自计算设备800的组件可以与诸如移动计算设备850的移动设备(未示出)中的其他组件结合。这些设备中的每一个可以包含计算设备800和移动计算设备850中的一个或多个,并且整个系统可以由彼此通信的多个计算设备组成。
除其他组件外,移动计算设备850包括处理器852、内存864、诸如显示器854的输入/输出设备、通信接口866和收发器868。移动计算设备850还可以设置有诸如微型驱动器或其他设备的存储设备,以提供额外的存储。处理器852、内存864、显示器854、通信接口866和收发器868中的每个使用各种总线互连,并且若干组件可以被安装在通用母板上或以其他方式适当地安装。
处理器852可以执行移动计算设备850内的指令,包括存储在内存864中的指令。处理器852可以被实现为芯片的芯片组,芯片包括分离的多个模拟和数字处理器。例如,处理器852可以提供移动计算设备850的其他组件的协调,诸如用户界面的控制、移动计算设备850运行的应用程序以及通过移动计算设备850的无线通信。
处理器852可通过耦合到显示器854的显示器接口856和控制接口858与用户通信。例如,显示器854可以是TFT(薄膜晶体管液晶显示器)显示器或OLED(有机发光二极管)显示器或其他适当的显示技术。显示接口856可以包括用于驱动显示器854以向用户呈现图形和其他信息的适当电路。控制接口858可以接收来自用户的命令并将它们转换用于提交给处理器852。另外,外部接口862可以提供与处理器852的通信,以便实现移动计算设备850与其他设备的近距离通信。例如,外部接口862可以提供用于一些实施方式中的有线通信、或用于其他实施方式中的无线通信,并且还可以使用多个接口。
内存864存储在移动计算设备850中的信息。内存864可以被实现为以下中的一个或多个:计算机可读介质或媒介、易失性内存单元或单元组、或非易失性内存单元或单元组。扩展内存874也可以被提供并且通过扩展接口872连接到移动计算设备850,扩展接口872可以包括例如SIMM(单列内存模块(Single In Line memory Module))卡接口。扩展内存874可以为移动计算设备850提供额外的存储空间,或者也可以为移动计算设备850存储应用程序或其他信息。具体地,扩展内存874可以包括施行或补充上述处理的指令,并且也可以包括安全信息。因此,例如,扩展内存874可以作为移动计算设备850的安全模块来提供,并且可以用允许移动计算设备850的安全使用的指令来编程。另外,安全应用程序可以经由SIMM卡以及其他信息来被提供,例如以不可破解(non-hackable)的方式在SIMM卡上放置识别信息。
如下面所讨论的,内存可以包括例如闪存内存和/或NVRAM内存(非易失性随机访问存储器)。在一些实施方式中,指令存储在信息载体中。指令在由一个或多个处理设备(例如,处理器852)运行时执行如上文所述的一个或多个方法。指令还可以由一个或多个存储设备存储,例如,由一个或多个计算机或机器可读介质(例如,内存864、扩展内存874或处理器852上的内存)来存储。在一些实施方式中,可以通过诸如收发器868或外部接口862在传播信号中接收指令。
移动计算设备850可以通过通信接口866进行无线通信,通信接口866在必要时可以包括数字信号处理电路。通信接口866可以在各种模式或协议下提供通信,诸如通过GSM语音呼叫(全球移动通信系统)、SMS(短消息服务)、EMS(增强型消息服务)或MMS消息(多媒体消息服务)、CDMA(码分多址)、TDMA(时分多址)、PDC(个人数字蜂窝)、WCDMA(宽带码分多址)、CDMA2000或GPRS(通用分组无线业务)等。例如,这种通信可以通过使用射频的收发器868发生。另外,可以发生短距离通信,例如使用蓝牙、WiFi或其他这种收发器(未示出)。另外,GPS(全球定位系统)接收器模块870可以向移动计算设备850提供附加的导航和位置相关的无线数据,其可以被移动计算设备850上运行的应用程序适当地使用。
移动计算设备850还可以使用音频编解码器860进行听觉通信,音频编解码器860可以接收来自用户的谈话信息并将其转换为可用的数字信息。音频编解码器860可以同样为用户生成可听的声音,例如通过诸如在移动计算设备850的耳机中的扬声器。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息,音乐文件等),并且还可以包括由在移动计算设备850上操作的应用程序生成的声音。
如图所示,移动计算设备850可以以多种不同的形式来实现。例如,它可以被实现为蜂窝电话880。它也可以被实现为智能电话882、个人数字助理或其他类似的移动设备的一部分。
本文描述的系统和技术的各种实施方式可以以数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,其可以是专用或通用的,被耦合到存储系统、至少一个输入设备和至少一个输出设备,以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象的编程语言、和/或以汇编/机器语言来实现。如本文所使用的,术语机器可读介质和计算机可读介质是指用于提供机器指令和/或数据到可编程处理器的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、内存、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语机器可读信号是指用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,本文描述的系统和技术可以在具有显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)、键盘和指点设备(例如,鼠标或轨迹球)的计算机上实现,显示设备用于向用户显示信息,用户可以通过键盘和指点设备向计算机提供输入。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈(例如视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
本文描述的系统和技术可以在计算系统中实现,该计算系统可以包括后端组件(例如,作为数据服务器),或包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过其与本文描述的系统和技术的实施方式交互),或者这种后端、中间件或前端组件的任意组合。系统的部件可以通过数字数据通信的任何形式或介质(例如通信网络)互连。通信网络的示例包括局域网(LAN)、广域网(WAN)和因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器之间的关系是凭借运行在各个计算机上的计算机程序产生的,并且彼此具有客户端-服务器关系。
下面的例子总结了其他的实施方式:
示例1:一种在计算机系统中实现的方法,该方法包括:在包括多个处理资源的计算机系统中运行作业,作业接收数据流作为输入,其中数据流中的数据量是无限的;为作业迭代地确定:在第一时间段内的积压增长,其中积压增长是对接收到的要被输入到作业中的数据流中未处理数据的增长的量度;积压量,积压量是对接收到的要被输入到作业中的数据流中未处理的数据的量度;基于积压增长和积压量确定是否调整调配给作业的处理资源的数量;对于被确定为调整调配给作业的处理资源的数量的每次迭代,调整调配给作业的处理资源的数量;以及对于被确定为不调整调配给作业的处理资源的数量的每次迭代,维持调配给作业的处理资源的数量。
示例2:根据示例1的方法,其中,对于确定的迭代:积压增长被确定为零或负;积压量被确定为处于目标;响应于积压增长被确定为零或负并且积压量被确定为处于目标,确定调配给作业的处理资源的数量被确定为不调整。
示例3:根据示例1或2的方法,其中,对于确定的迭代:积压增长被确定为零或负;积压量被确定为低于目标;响应于积压增长被确定为零或负并且积压量被确定为低于目标,确定调配给作业的处理资源的数量被确定为要调整;并且其中调整调配给作业的处理资源的数量包括:响应于积压增长被确定为零或负且积压量被确定为低于目标而减少调配给作业的处理资源的数量。
示例4:根据示例1至3中的一个的方法,其中,对于确定的迭代:积压增长被确定为零或负;积压量被确定为高于目标;响应于积压增长被确定为零或负并且积压量被确定为高于目标,确定调配给作业的处理资源的数量被确定为要调整;并且其中调整调配给作业的处理资源的数量包括:响应于积压增长被确定为零或负并且积压量被确定为高于目标而增加调配给作业的处理资源的数量。
示例5:根据示例1至4中的一个的方法,其中,对于确定的迭代:积压增长被确定为正;积压量被确定为低于目标;响应于积压增长被确定为正且积压量被确定为低于目标,确定调配给作业的处理资源的数量被确定为不调整。
示例6:根据示例1至5中的一个的方法,其中,对于确定的迭代:积压增长被确定为正;积压量被确定为不低于目标;响应于积压增长被确定为正且积压量被确定为低于目标,确定调配给作业的处理资源的数量被确定为调整;并且其中调整调配给作业的处理资源的数量包括:响应于积压增长被确定为正且积压量被确定为低于目标而增加调配给作业的处理资源的数量。
示例7:根据示例1至6中的一个的方法,其中,积压增长是数据大小的量度。
示例8:根据示例7的方法,其中,数据大小的单位是由比特、字节、兆字节、千兆字节、记录和基数组成的组中的至少一个。
示例9:根据示例1至6中的一个的方法,其中,积压增长是对处理时间的量度。
示例10:根据示例9的方法,其中,处理时间的单位是由微秒、秒、分钟、小时和天组成的组中的至少一个。
示例11:根据示例1至10中的一个的方法,其中,积压量是数据大小的量度。
示例12:根据示例11的方法,其中,数据大小的单位是由比特、字节、兆字节、千兆字节、记录和基数组成的组中的至少一个。
示例13:根据示例1至10中的一个的方法,其中,积压量是对处理时间的量度。
示例14:根据示例13的方法,其中,处理时间的单位是由微秒、秒、分钟、小时和天组成的组中的至少一个。
示例15:根据示例1至14中的一个的方法,其中,方法还包括:迭代地确定用于作业的处理器利用率;其中迭代地确定是否调整调配给作业的处理资源的数量还基于处理器利用率。
示例16:根据示例15的方法,其中:其中,对于确定的迭代:处理器利用率低于一个值;响应于确定处理器利用率低于一个值,确定调配给作业的处理资源的数量被确定为要调整;和其中调整调配给作业的处理资源的数量包括:响应于确定处理器利用率低于一个值而减少调配给作业的处理资源的数量。
示例17:根据示例16的方法,其中,响应于确定处理器利用率低于一个值而减少调配给作业的处理资源的数量包括:减少调配给作业的资源的离散数量,离散数量是基于处理器利用率的。
示例18:根据示例17的方法,其中,离散数量是计算机内存盘的数量。
示例19:根据示例1至18中的一个的方法,其中,基于积压增长和积压量确定是否调整调配给作业的处理资源的数量包括:对导致调配给作业的处理资源的数量振荡的确定进行平滑。
示例20:根据示例19的方法,其中,对确定进行平滑包括:等待第二时间段。
示例21:根据示例19的方法,其中,对确定进行平滑包括:对是否调整调配给作业的处理资源的数量的多个确定进行平均。
示例22:一种系统,包括:一个或多个处理器,处理器被配置为运行计算机程序指令;和计算机存储介质,计算机存储介质用计算机程序指令编码,计算机程序指令在由一个或多个处理器运行时,使计算机设备执行操作。操作包括:在包括多个处理资源的计算机系统中运行作业,作业接收数据流作为输入,其中数据流中的数据量是无限的;为作业迭代地确定:在第一时间段内的积压增长,其中积压增长是对接收到的要被输入到作业中的数据流中未处理数据的增长的量度;积压量,积压量是对接收到的要被输入到作业中的数据流中未处理的数据的量度;基于积压增长和积压量确定是否调整调配给作业的处理资源的数量;对于被确定为调整调配给作业的处理资源的数量的每次迭代,调整调配给作业的处理资源的数量;以及对于被确定为不调整调配给作业的处理资源的数量的每次迭代,维持调配给作业的处理资源的数量。
示例23:根据示例22的系统,其中,对于确定的迭代:积压增长被确定为零或负;积压量被确定为处于目标;响应于积压增长被确定为零或负并且积压量被确定为处于目标,确定调配给作业的处理资源的数量被确定为不调整。
示例24:根据示例22或23的系统,其中,对于确定的迭代:积压增长被确定为零或负;积压量被确定为低于目标;响应于积压增长被确定为零或负并且积压量被确定为低于目标,确定调配给作业的处理资源的数量被确定为要调整;并且其中调整调配给作业的处理资源的数量包括:响应于积压增长被确定为零或负且积压量被确定为低于目标而减少调配给作业的处理资源的数量。
示例25:根据示例22至24中的一个的系统,其中,对于确定的迭代:积压增长被确定为零或负;积压量被确定为高于目标;响应于积压增长被确定为零或负并且积压量被确定为高于目标,确定调配给作业的处理资源的数量被确定为要调整;并且其中调整调配给作业的处理资源的数量包括:响应于积压增长被确定为零或负且积压量被确定为高于目标而增加调配给作业的处理资源的数量。
示例26:根据示例22至25中的一个的系统,其中,对于确定的迭代:积压增长被确定为正;积压量被确定为低于目标;响应于积压增长被确定为正且积压量被确定为低于目标,确定调配给作业的处理资源的数量被确定为不调整。
示例27:根据示例22至26中的一个的系统,其中,对于确定的迭代:积压增长被确定为正;积压量被确定为不低于目标;响应于积压增长被确定为正且积压量被确定为低于目标,确定调配给作业的处理资源的数量被确定为调整;并且其中调整调配给作业的处理资源的数量包括:响应于积压增长被确定为正且积压量被确定为低于目标而增加调配给作业的处理资源的数量。
示例28:根据示例22至27中的一个的系统,其中,积压增长是数据大小的量度。
示例29:根据示例28的系统,其中,数据大小的单位是由比特、字节、兆字节、千兆字节、记录和基数组成的组中的至少一个。
示例30:根据示例22至27中的一个的系统,其中,积压增长是对处理时间的量度。
示例31:根据示例30的系统,其中,处理时间的单位是由微秒、秒、分钟、小时和天组成的组中的至少一个。
示例32:根据示例22至31中的一个的系统,其中,积压量是数据大小的量度。
示例33:根据示例32的系统,其中,数据大小的单位是由比特、字节、兆字节、千兆字节、记录和基数组成的组中的至少一个。
示例34:根据示例22至31中的一个的系统,其中,积压量是对处理时间的量度。
示例35:根据示例34的系统,其中,处理时间的单位是由微秒、秒、分钟、小时和天组成的组中的至少一个。
示例36:根据示例22至35中的一个的系统,其中,操作还包括:迭代地确定用于作业的处理器利用率;其中迭代地确定是否调整调配给作业的处理资源的数量还基于处理器利用率。
示例37:根据示例36的系统,其中:其中,对于确定的迭代:处理器利用率低于一个值;响应于确定处理器利用率低于一个值,确定调配给作业的处理资源的数量被确定为要调整;和其中调整调配给作业的处理资源的数量包括:响应于确定处理器利用率低于一个值而减少调配给作业的处理资源的数量。
示例38:根据示例37的系统,其中,响应于确定处理器利用率低于一个值而减少调配给作业的处理资源的数量包括:减少调配给作业的资源的离散数量,离散数量是基于处理器利用率的。
示例39:根据示例38的系统,其中,离散数量是计算机内存盘的数量。
示例40:根据示例22至39中的一个的系统,其中,基于积压增长和积压量确定是否调整调配给作业的处理资源的数量包括:对导致调配给作业的处理资源的数量振荡的确定进行平滑。
示例41:根据示例40的系统,其中,对确定进行平滑包括:等待第二时间段。
示例42:根据示例40或41的系统,其中,对确定进行平滑包括:对是否调整调配给作业的处理资源的数量的多个确定进行平均。
尽管以上已经详细描述了一些实施方式,但其他修改是可能的。例如,虽然客户端应用程序被描述为访问委托(delegate),但是在其他实施方式中,委托可以由一个或多个处理器实现的其他应用程序使用,例如在一个或多个服务器上运行的应用程序。另外,附图中描绘的逻辑流程不要求所示出的特定顺序或顺次顺序来实现期望的结果。另外,可以从所描述的流程中提供其他动作,或者删除动作,并且可以将其他部件添加到所描述的系统或从所描述的系统移除。相应地,其他实施方式在以下权利要求的范围内。
Claims (42)
1.一种在计算机系统中实现的方法,其特征在于,所述方法包括:
在包括多个处理资源的计算机系统中运行作业,所述作业接收数据流作为输入,其中所述数据流中的数据量是无限的;
为所述作业迭代地确定:
在第一时间段内的积压增长,其中所述积压增长是对接收到的要被输入到作业中的数据流中未处理数据的增长的量度;
积压量,所述积压量是对接收到的要被输入到作业中的数据流中未处理的数据的量度;
基于所述积压增长和所述积压量确定是否调整调配给所述作业的处理资源的数量;
对于确定为调整调配给作业的处理资源的数量的每次迭代,调整调配给所述作业的处理资源的数量;以及
对于被确定为不调整调配给所述作业的处理资源的数量的每次迭代,维持调配给所述作业的处理资源的数量。
2.根据权利要求1所述的方法,其特征在于,对于所述确定的迭代:
所述积压增长被确定为零或负;
所述积压量被确定为处于目标;
响应于所述积压增长被确定为零或负并且所述积压量被确定为处于目标,确定所述调配给所述作业的处理资源的数量被确定为不调整。
3.根据权利要求1所述的方法,其特征在于,对于所述确定的迭代:
所述积压增长被确定为零或负;
所述积压量被确定为低于目标;
响应于所述积压增长被确定为零或负并且所述积压量被确定为低于目标,确定调配给所述作业的处理资源的数量被确定为要调整;并且
其中调整调配给所述作业的处理资源的数量包括:响应于所述积压增长被确定为零或负并且所述积压量被确定为低于目标而减少调配给所述作业的处理资源的数量。
4.根据权利要求1所述的方法,其特征在于,对于所述确定的迭代:
所述积压增长被确定为零或负;
所述积压量被确定为高于目标;
响应于所述积压增长被确定为零或负并且所述积压量被确定为高于目标,确定调配给所述作业的处理资源的数量被确定为要调整;并且
其中调整调配给所述作业的处理资源的数量包括:响应于所述积压增长被确定为零或负并且所述积压量被确定为高于目标而增加调配给所述作业的处理资源的数量。
5.根据权利要求1所述的方法,其特征在于,对于所述确定的迭代:
所述积压增长被确定为正;
所述积压量被确定为低于目标;
响应于所述积压增长被确定为正且所述积压量被确定为低于目标,确定所述调配给所述作业的处理资源的数量被确定为不调整。
6.根据权利要求1所述的方法,其特征在于,对于所述确定的迭代:
所述积压增长被确定为正;
所述积压量被确定为不低于目标;
响应于所述积压增长被确定为正且所述积压量被确定为低于目标,确定所述调配给所述作业的处理资源的数量被确定为调整;并且
其中调整调配给所述作业的处理资源的数量包括:响应于所述积压增长被确定为正且所述积压量被确定为低于目标而增加调配给所述作业的处理资源的数量。
7.根据权利要求1所述的方法,其特征在于,所述积压增长是数据大小的量度。
8.根据权利要求7所述的方法,其特征在于,所述数据大小的单位是由比特、字节、兆字节、千兆字节、记录和基数组成的组中的至少一个。
9.根据权利要求1所述的方法,其特征在于,积压增长是对处理时间的量度。
10.根据权利要求9所述的方法,其特征在于,所述处理时间的单位是由微秒、秒、分钟、小时和天组成的组中的至少一个。
11.根据权利要求1所述的方法,其特征在于,所述积压量是数据大小的量度。
12.根据权利要求11所述的方法,其特征在于,所述数据大小的单位是由比特、字节、兆字节、千兆字节、记录和基数组成的组中的至少一个。
13.根据权利要求1所述的方法,其特征在于,积压量是对处理时间的量度。
14.根据权利要求13所述的方法,其特征在于,所述处理时间的单位是由微秒、秒、分钟、小时和天组成的组中的至少一个。
15.根据权利要求1所述的方法,其特征在于,所述方法还包括:
迭代地确定用于作业的处理器利用率;
其中迭代地确定是否调整调配给所述作业的处理资源的数量还基于所述处理器利用率。
16.根据权利要求15所述的方法,其特征在于:
其中,对于所述确定的迭代:
所述处理器利用率低于一个值;
响应于确定所述处理器利用率低于一个值,确定调配给所述作业的处理资源的数量被确定为要调整;和
其中调整调配给所述作业的处理资源的数量包括:响应于确定所述处理器利用率低于一个值而减少调配给所述作业的处理资源的数量。
17.根据权利要求16所述的方法,其特征在于,响应于确定所述处理器利用率低于一个值而减少调配给所述作业的处理资源的数量包括:减少调配给所述作业的资源的离散数量,所述离散数量是基于所述处理器利用率的。
18.根据权利要求17所述的方法,其特征在于,所述离散数量是计算机内存盘的数量。
19.根据权利要求1所述的方法,其特征在于,基于所述积压增长和所述积压量确定是否调整调配给所述作业的处理资源的数量包括:对导致调配给所述作业的处理资源的数量振荡的所述确定进行平滑。
20.根据权利要求19所述的方法,其特征在于,对所述确定进行平滑包括:等待第二时间段。
21.根据权利要求19所述的方法,其特征在于,对所述确定进行平滑包括:对是否调整调配给所述作业的处理资源的数量的多个确定进行平均。
22.一种系统,其特征在于,包括:
一个或多个处理器,所述处理器被配置为运行计算机程序指令;和
计算机存储介质,所述计算机存储介质用计算机程序指令编码,所述计算机程序指令在由一个或多个处理器运行时,使计算机设备执行操作,操作包括:
在包括多个处理资源的计算机系统中运行作业,所述作业接收数据流作为输入,其中所述数据流中的数据量是无限的;
为所述作业迭代地确定:
在第一时间段内的积压增长,其中所述积压增长是对接收到的要被输入到所述作业中的数据流中未处理数据的增长的量度;
积压量,所述积压量是对接收到的要被输入到所述作业中的数据流中未处理的数据的量度;
基于所述积压增长和所述积压量,确定是否调整调配给所述作业的处理资源的数量;
对于被确定为调整调配给所述作业的处理资源的数量的每次迭代,调整调配给所述作业的处理资源的数量;以及
对于被确定为不调整调配给所述作业的处理资源的数量的每次迭代,维持调配给所述作业的处理资源的数量。
23.根据权利要求22所述的系统,其特征在于,对于所述确定的迭代:
所述积压增长被确定为零或负;
所述积压量被确定为处于目标;
响应于所述积压增长被确定为零或负并且所述积压量被确定为处于目标,确定所述调配给所述作业的处理资源的数量被确定为不调整。
24.根据权利要求22所述的系统,其特征在于,对于所述确定的迭代:
所述积压增长被确定为零或负;
所述积压量被确定为低于目标;
响应于所述积压增长被确定为零或负并且所述积压量被确定为低于目标,确定调配给所述作业的处理资源的数量被确定为要调整;并且
其中调整调配给所述作业的处理资源的数量包括:响应于所述积压增长被确定为零或负且所述积压量被确定为低于目标而减少调配给所述作业的处理资源的数量。
25.根据权利要求22所述的系统,其特征在于,对于所述确定的迭代:
所述积压增长被确定为零或负;
所述积压量被确定为高于目标;
响应于所述积压增长被确定为零或负并且所述积压量被确定为高于目标,确定调配给所述作业的处理资源的数量被确定为要调整;并且
其中调整调配给所述作业的处理资源的数量包括:响应于所述积压增长被确定为零或负且所述积压量被确定为高于目标而增加调配给所述作业的处理资源的数量。
26.根据权利要求22所述的系统,其特征在于,对于所述确定的迭代:
所述积压增长被确定为正;
所述积压量被确定为低于目标;
响应于所述积压增长被确定为正且所述积压量被确定为低于目标,确定所述调配给所述作业的处理资源的数量被确定为不调整。
27.根据权利要求22所述的系统,其特征在于,对于所述确定的迭代:
所述积压增长被确定为正;
所述积压量被确定为不低于目标;
响应于所述积压增长被确定为正且所述积压量被确定为低于目标,确定所述调配给所述作业的处理资源的数量被确定为调整;并且
其中调整调配给所述作业的处理资源的数量包括:响应于所述积压增长被确定为正且所述积压量被确定为低于目标而增加调配给所述作业的处理资源的数量。
28.根据权利要求22所述的系统,其特征在于,所述积压增长是数据大小的量度。
29.根据权利要求28所述的系统,其特征在于,所述数据大小的单位是由比特、字节、兆字节、千兆字节、记录和基数组成的组中的至少一个。
30.根据权利要求22所述的系统,其特征在于,积压增长是对处理时间的量度。
31.根据权利要求30所述的系统,其特征在于,所述处理时间的单位是由微秒、秒、分钟、小时和天组成的组中的至少一个。
32.根据权利要求22所述的系统,其特征在于,所述积压量是数据大小的量度。
33.根据权利要求32所述的系统,其特征在于,所述数据大小的单位是由比特、字节、兆字节、千兆字节、记录和基数组成的组中的至少一个。
34.根据权利要求22所述的系统,其特征在于,积压量是对处理时间的量度。
35.根据权利要求34所述的系统,其特征在于,所述处理时间的单位是由微秒、秒、分钟、小时和天组成的组中的至少一个。
36.根据权利要求22所述的系统,其特征在于,所述操作还包括:
迭代地确定用于作业的处理器利用率;
其中迭代地确定是否调整调配给所述作业的处理资源的数量还基于所述处理器利用率。
37.根据权利要求36所述的系统,其特征在于:
其中,对于所述确定的迭代:
所述处理器利用率低于一个值;
响应于确定所述处理器利用率低于一个值,确定调配给所述作业的处理资源的数量被确定为要调整;和
其中调整调配给所述作业的处理资源的数量包括:响应于确定所述处理器利用率低于一个值而减少调配给所述作业的处理资源的数量。
38.根据权利要求37所述的系统,其特征在于,响应于确定所述处理器利用率低于一个值而减少调配给所述作业的处理资源的数量包括:减少调配给所述作业的资源的离散数量,所述离散数量是基于所述处理器利用率的。
39.根据权利要求38所述的系统,其特征在于,所述离散数量是计算机内存盘的数量。
40.根据权利要求22所述的系统,其特征在于,基于所述积压增长和所述积压量确定是否调整调配给所述作业的处理资源的数量包括:对导致调配给所述作业的处理资源的数量振荡的所述确定进行平滑。
41.根据权利要求40所述的系统,其特征在于,对所述确定进行平滑包括:等待第二时间段。
42.根据权利要求40所述的系统,其特征在于,对所述确定进行平滑包括:对是否调整调配给所述作业的处理资源的数量的多个确定进行平均。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210267059.1A CN114756341A (zh) | 2016-03-04 | 2016-12-19 | 计算机处理的资源调配 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662303827P | 2016-03-04 | 2016-03-04 | |
US62/303,827 | 2016-03-04 | ||
PCT/US2016/067538 WO2017151209A1 (en) | 2016-03-04 | 2016-12-19 | Resource allocation for computer processing |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210267059.1A Division CN114756341A (zh) | 2016-03-04 | 2016-12-19 | 计算机处理的资源调配 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108885561A true CN108885561A (zh) | 2018-11-23 |
CN108885561B CN108885561B (zh) | 2022-04-08 |
Family
ID=57799812
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210267059.1A Pending CN114756341A (zh) | 2016-03-04 | 2016-12-19 | 计算机处理的资源调配 |
CN201680078758.4A Active CN108885561B (zh) | 2016-03-04 | 2016-12-19 | 计算机处理的资源调配 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210267059.1A Pending CN114756341A (zh) | 2016-03-04 | 2016-12-19 | 计算机处理的资源调配 |
Country Status (8)
Country | Link |
---|---|
US (2) | US10558501B2 (zh) |
EP (2) | EP3394753A1 (zh) |
JP (2) | JP6637186B2 (zh) |
KR (1) | KR102003872B1 (zh) |
CN (2) | CN114756341A (zh) |
AU (3) | AU2016396079B2 (zh) |
SG (1) | SG11201805281YA (zh) |
WO (1) | WO2017151209A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11934673B2 (en) | 2022-08-11 | 2024-03-19 | Seagate Technology Llc | Workload amplification metering and management |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10331481B2 (en) * | 2017-03-08 | 2019-06-25 | International Business Machines Corporation | Automatic reconfiguration of high performance computing job schedulers based on user behavior, user feedback, and job performance monitoring |
US11334391B2 (en) * | 2017-04-17 | 2022-05-17 | Red Hat, Inc. | Self-programmable and self-tunable resource scheduler for jobs in cloud computing |
US20180332367A1 (en) * | 2017-05-09 | 2018-11-15 | EMC IP Holding Company LLC | Dynamically scaling a number of stream segments that dynamically store streaming data while preserving the order of writes |
CN110019944A (zh) * | 2017-12-21 | 2019-07-16 | 飞狐信息技术(天津)有限公司 | 一种视频的推荐方法及系统 |
EP3640800A1 (fr) * | 2018-10-17 | 2020-04-22 | Bull Sas | Procédé d'amélioration de l'efficacité d'utilisation des ressources d'une infrastructure destinée a exécuter un plan d'ordonnancement |
FR3087556B1 (fr) * | 2018-10-17 | 2022-04-29 | Bull Sas | Procede d'amelioration de l'efficacite d'utlisation des ressources d'une infrastructure destinee a executer un plan d'ordonnancement |
JP7145094B2 (ja) * | 2019-02-05 | 2022-09-30 | Kddi株式会社 | 制御装置、コンピュータプログラム及び情報処理方法 |
US11366697B2 (en) * | 2019-05-01 | 2022-06-21 | EMC IP Holding Company LLC | Adaptive controller for online adaptation of resource allocation policies for iterative workloads using reinforcement learning |
US11025711B2 (en) | 2019-05-02 | 2021-06-01 | EMC IP Holding Company LLC | Data centric resource management for edge cloud systems |
US11586474B2 (en) | 2019-06-28 | 2023-02-21 | EMC IP Holding Company LLC | Adaptation of resource allocation for multiple workloads using interference effect of resource allocation of additional workloads on performance |
US11113171B2 (en) | 2019-08-29 | 2021-09-07 | EMC IP Holding Company LLC | Early-convergence detection for online resource allocation policies for iterative workloads |
US11327801B2 (en) | 2019-08-29 | 2022-05-10 | EMC IP Holding Company LLC | Initialization of resource allocation for a workload characterized using a regression model |
US20210096927A1 (en) * | 2019-09-27 | 2021-04-01 | Citrix Systems, Inc. | Auto-scaling a pool of virtual delivery agents |
US11868810B2 (en) | 2019-11-15 | 2024-01-09 | EMC IP Holding Company LLC | Resource adaptation using nonlinear relationship between system performance metric and resource usage |
TWI813413B (zh) * | 2019-12-20 | 2023-08-21 | 美商尼安蒂克公司 | 具有可預測之查詢回應時間之地理定位資料的分區式儲存 |
JP2021192189A (ja) * | 2020-06-05 | 2021-12-16 | 富士通株式会社 | パイプライン分割位置決定方法及びパイプライン分割位置決定プログラム |
US11650858B2 (en) | 2020-09-24 | 2023-05-16 | International Business Machines Corporation | Maintaining stream processing resource type versions in stream processing |
CN113821336B (zh) * | 2021-03-08 | 2024-04-05 | 北京京东乾石科技有限公司 | 资源分配方法和装置、存储介质、电子设备 |
US11665106B2 (en) * | 2021-09-07 | 2023-05-30 | Hewlett Packard Enterprise Development Lp | Network-aware resource allocation |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1674485A (zh) * | 2004-03-25 | 2005-09-28 | 国际商业机器公司 | 动态提供计算机系统资源的方法和系统 |
CN101533362A (zh) * | 2009-04-15 | 2009-09-16 | 南京联创科技股份有限公司 | 进程间cpu资源平衡调度方法 |
US20110022871A1 (en) * | 2009-07-21 | 2011-01-27 | Bouvier Daniel L | System-On-Chip Queue Status Power Management |
US20120254443A1 (en) * | 2011-03-30 | 2012-10-04 | International Business Machines Corporation | Information processing system, information processing apparatus, method of scaling, program, and recording medium |
US20130060555A1 (en) * | 2011-06-10 | 2013-03-07 | Qualcomm Incorporated | System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains |
CN104023042A (zh) * | 2013-03-01 | 2014-09-03 | 清华大学 | 云平台资源调度方法 |
CN104951368A (zh) * | 2014-03-28 | 2015-09-30 | 中国电信股份有限公司 | 资源动态分配装置和方法 |
WO2015165546A1 (en) * | 2014-05-01 | 2015-11-05 | Longsand Limited | Dynamically scaled web service deployments |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591287B1 (en) * | 1999-09-08 | 2003-07-08 | Lucent Technologies Inc. | Method to increase the efficiency of job sequencing from sequential storage |
JP3884427B2 (ja) * | 2003-12-10 | 2007-02-21 | 東芝ソリューション株式会社 | 計算機システム及び資源割り当てプログラム |
US7660955B2 (en) * | 2005-12-01 | 2010-02-09 | International Business Machines Corporation | Node polling in consistency group formation |
US8458720B2 (en) * | 2007-08-17 | 2013-06-04 | International Business Machines Corporation | Methods and systems for assigning non-continual jobs to candidate processing nodes in a stream-oriented computer system |
KR20100035394A (ko) * | 2008-09-26 | 2010-04-05 | 삼성전자주식회사 | 멀티 프로세싱에서의 메모리 관리장치 및 그 방법 |
JP2011118525A (ja) * | 2009-12-01 | 2011-06-16 | Hitachi Ltd | サーバ管理装置とサーバ管理方法およびサーバ管理プログラム |
US8201820B2 (en) * | 2010-07-27 | 2012-06-19 | Foxlink Image Technology Co., Ltd. | Document feeding mechanism |
US8799916B2 (en) * | 2011-02-02 | 2014-08-05 | Hewlett-Packard Development Company, L. P. | Determining an allocation of resources for a job |
KR20120122136A (ko) * | 2011-04-28 | 2012-11-07 | 삼성전자주식회사 | 데이터 스트림 관리 시스템에서의 부하 경감을 조절하는 방법 및 장치 |
US20120296696A1 (en) * | 2011-05-17 | 2012-11-22 | International Business Machines Corporation | Sustaining engineering and maintenance using sem patterns and the seminal dashboard |
US9069606B2 (en) * | 2012-05-08 | 2015-06-30 | Adobe Systems Incorporated | Autonomous application-level auto-scaling in a cloud |
KR20150062634A (ko) * | 2013-11-29 | 2015-06-08 | 고려대학교 산학협력단 | 클라우드 컴퓨팅 환경 내 오토 스케일링 시스템 및 방법 |
US9542107B2 (en) * | 2014-06-25 | 2017-01-10 | International Business Machines Corporation | Flash copy relationship management |
US20160306416A1 (en) * | 2015-04-16 | 2016-10-20 | Intel Corporation | Apparatus and Method for Adjusting Processor Power Usage Based On Network Load |
WO2016183028A2 (en) * | 2015-05-10 | 2016-11-17 | Apl Software Inc. | Methods and architecture for enhanced computer performance |
US10044632B2 (en) * | 2016-10-20 | 2018-08-07 | Dell Products Lp | Systems and methods for adaptive credit-based flow |
-
2016
- 2016-12-19 AU AU2016396079A patent/AU2016396079B2/en active Active
- 2016-12-19 EP EP16826534.6A patent/EP3394753A1/en not_active Withdrawn
- 2016-12-19 KR KR1020187020037A patent/KR102003872B1/ko active IP Right Grant
- 2016-12-19 JP JP2018536462A patent/JP6637186B2/ja active Active
- 2016-12-19 EP EP21206839.9A patent/EP3971719A1/en active Pending
- 2016-12-19 WO PCT/US2016/067538 patent/WO2017151209A1/en active Application Filing
- 2016-12-19 SG SG11201805281YA patent/SG11201805281YA/en unknown
- 2016-12-19 CN CN202210267059.1A patent/CN114756341A/zh active Pending
- 2016-12-19 CN CN201680078758.4A patent/CN108885561B/zh active Active
- 2016-12-30 US US15/395,225 patent/US10558501B2/en active Active
-
2019
- 2019-12-19 JP JP2019229115A patent/JP6971294B2/ja active Active
-
2020
- 2020-02-04 US US16/781,467 patent/US20200225991A1/en active Pending
- 2020-02-13 AU AU2020201056A patent/AU2020201056B2/en active Active
-
2022
- 2022-02-03 AU AU2022200716A patent/AU2022200716B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1674485A (zh) * | 2004-03-25 | 2005-09-28 | 国际商业机器公司 | 动态提供计算机系统资源的方法和系统 |
CN101533362A (zh) * | 2009-04-15 | 2009-09-16 | 南京联创科技股份有限公司 | 进程间cpu资源平衡调度方法 |
US20110022871A1 (en) * | 2009-07-21 | 2011-01-27 | Bouvier Daniel L | System-On-Chip Queue Status Power Management |
US20120254443A1 (en) * | 2011-03-30 | 2012-10-04 | International Business Machines Corporation | Information processing system, information processing apparatus, method of scaling, program, and recording medium |
US20130060555A1 (en) * | 2011-06-10 | 2013-03-07 | Qualcomm Incorporated | System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains |
CN104023042A (zh) * | 2013-03-01 | 2014-09-03 | 清华大学 | 云平台资源调度方法 |
CN104951368A (zh) * | 2014-03-28 | 2015-09-30 | 中国电信股份有限公司 | 资源动态分配装置和方法 |
WO2015165546A1 (en) * | 2014-05-01 | 2015-11-05 | Longsand Limited | Dynamically scaled web service deployments |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11934673B2 (en) | 2022-08-11 | 2024-03-19 | Seagate Technology Llc | Workload amplification metering and management |
Also Published As
Publication number | Publication date |
---|---|
CN108885561B (zh) | 2022-04-08 |
AU2016396079A1 (en) | 2018-07-26 |
WO2017151209A1 (en) | 2017-09-08 |
AU2016396079B2 (en) | 2019-11-21 |
AU2020201056B2 (en) | 2021-11-04 |
EP3971719A1 (en) | 2022-03-23 |
CN114756341A (zh) | 2022-07-15 |
JP2019508795A (ja) | 2019-03-28 |
KR102003872B1 (ko) | 2019-10-17 |
US20200225991A1 (en) | 2020-07-16 |
US20170255491A1 (en) | 2017-09-07 |
AU2020201056A1 (en) | 2020-03-05 |
AU2022200716B2 (en) | 2023-06-01 |
JP6637186B2 (ja) | 2020-01-29 |
SG11201805281YA (en) | 2018-07-30 |
AU2022200716A1 (en) | 2022-02-24 |
US10558501B2 (en) | 2020-02-11 |
EP3394753A1 (en) | 2018-10-31 |
KR20180085806A (ko) | 2018-07-27 |
JP2020074101A (ja) | 2020-05-14 |
JP6971294B2 (ja) | 2021-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108885561A (zh) | 计算机处理的资源调配 | |
US11656911B2 (en) | Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items | |
US11294726B2 (en) | Systems, methods, and apparatuses for implementing a scalable scheduler with heterogeneous resource allocation of large competing workloads types using QoS | |
US10467152B2 (en) | Dynamic cache management for in-memory data analytic platforms | |
US10678602B2 (en) | Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures | |
US8789050B2 (en) | Systems and methods for transparently optimizing workloads | |
US20180321975A1 (en) | Systems, methods, and apparatuses for implementing a stateless, deterministic scheduler and work discovery system with interruption recovery | |
CN110866167B (zh) | 任务分配方法、装置、服务器和存储介质 | |
WO2020151626A1 (zh) | 交易系统和业务处理方法 | |
US20180246744A1 (en) | Management of demand for virtual computing resources | |
US20170337135A1 (en) | Dynamic memory tuning for in-memory data analytic platforms | |
US20180262413A1 (en) | Dynamic Capacity Planning for Application Delivery Platform across Multiple Cloud Deployment | |
WO2012125143A1 (en) | Systems and methods for transparently optimizing workloads | |
CN113302591A (zh) | 管理云计算平台的计算资源的方法及系统 | |
TWM583564U (zh) | 雲端資源管理系統 | |
CN114548928A (zh) | 申请审核方法、装置、设备及介质 | |
US10419347B2 (en) | Centralized transaction collection for metered release | |
US20230136226A1 (en) | Techniques for auto-tuning compute load resources | |
US20220382595A1 (en) | Weighted availing of cloud resources | |
US20230342200A1 (en) | System and method for resource management in dynamic systems | |
US20200160349A1 (en) | Business data driven resource management |
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 |