CN116048766A - 用于无服务器应用的基于轨迹的分层自动缩放 - Google Patents
用于无服务器应用的基于轨迹的分层自动缩放 Download PDFInfo
- Publication number
- CN116048766A CN116048766A CN202210042039.4A CN202210042039A CN116048766A CN 116048766 A CN116048766 A CN 116048766A CN 202210042039 A CN202210042039 A CN 202210042039A CN 116048766 A CN116048766 A CN 116048766A
- Authority
- CN
- China
- Prior art keywords
- cluster
- traffic
- applications
- time interval
- computing nodes
- 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.)
- Pending
Links
Images
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/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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- 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
- 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
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- 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/104—Peer-to-peer [P2P] networks
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1068—Discovery involving direct consultation or announcement among potential requesting and potential source peers
- H04L67/107—Discovery involving direct consultation or announcement among potential requesting and potential source peers with limitation or expansion of the discovery scope
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种方法,包括在第一时间间隔期间监控与由计算节点的集群执行的一个或多个应用相关联的流量,并且鉴于在第一时间间隔期间与一个或多个应用相关联的流量,确定流量被预测为在第二时间间隔结束时超过计算节点的集群的容量阈值。该方法还包括发起要添加到计算节点的集群的附加的计算节点的启动,以执行一个或多个应用的副本。
Description
技术领域
本公开的各方面涉及无服务器应用的缩放,并且更具体地,涉及用于无服务器应用集群的基于轨迹的分层自动缩放。
背景技术
无服务器应用系统可以由云计算系统执行。云计算系统可以动态管理云计算系统的服务器上的无服务器功能的分配和供应。无服务器应用可以是执行各种功能的执行环境。
发明内容
根据第一方面,本公开提供了一种方法,包括:在第一时间间隔期间,监控与由计算节点的集群执行的一个或多个应用相关联的流量;鉴于在第一时间间隔期间与一个或多个应用相关联的流量,由处理设备确定流量被预测为在第二时间间隔结束时超过计算节点的集群的容量阈值;以及发起要添加到计算节点的集群的附加的计算节点的启动,以执行一个或多个应用的副本。
根据第二方面,本公开提供了一种系统,包括:存储器;以及可操作地耦合到存储器的处理设备,处理设备用于:在第一时间间隔期间,监控与由计算节点的集群执行的一个或多个应用相关联的流量;鉴于在第一时间间隔期间与一个或多个应用相关联的流量,确定流量被预测为在第二时间间隔结束时超过计算节点的集群的容量阈值;和发起要添加到计算节点的集群的附加的计算节点的启动,以执行一个或多个应用的副本。
根据第三方面,本公开提供了一种非暂时性计算机可读存储介质,包括指令,当由处理设备执行时,指令使得处理设备:在第一时间间隔期间,监控与由计算节点的集群执行的一个或多个应用相关联的流量;由处理设备鉴于在第一时间间隔期间与一个或多个应用相关联的流量,确定流量被预测为在第二时间间隔结束时超过计算节点的集群的容量阈值;以及发起要添加到计算节点的集群的附加的计算节点的启动,以执行一个或多个应用的副本。
所公开的方法、系统和非暂时性计算机可读存储介质的其他特征和优点在以下详细描述和附图中进行了描述,并且将从以下详细描述和附图中变得显而易见。
附图说明
通过结合附图参考以下描述,可以最好地理解所描述的实施例及其优点。这些附图决不限制本领域技术人员在不脱离所描述的实施例的精神和范围的情况下可以对所描述的实施例进行的任何形式和细节上的改变。
图1是示出根据一些实施例的用于无服务器应用集群的基于轨迹的自动缩放的示例系统的系统图。
图2是示出根据一些实施例的用于无服务器应用集群的基于轨迹的自动缩放的系统的另一示例的框图。
图3是根据一些实施例的无服务器应用集群的基于轨迹的分层缩放的框图。
图4是示出根据一些实施例的用于无服务器集群的基于轨迹的自动缩放的预计集群利用的时间-利用图。
图5描绘了根据一些实施例的自动缩放无服务器集群的示例方法的流程图。
图6是根据本公开的一些实施例的可以执行本文描述的一个或多个操作的示例装置的框图。
具体实施方式
无服务器应用可以服务于大型并行工作负载,而无需手动缩放应用。无服务器应用可以基于流量相关指标(如每秒请求数或并发数)自动缩放(scale),以确定处理特定工作负载需要多少个应用的副本。因此,无服务器应用可以根据需要灵活地向上缩放(scaleup)或向下缩放(scale down),以支持对应的工作负载。实例化应用的新副本可能花费相对较少的时间(例如,1-3秒),因此创建和删除应用副本相对便宜。当托管应用副本的集群的所有计算节点都已满时,可能需要启动附加的计算节点来支持应用的附加缩放。但是,启动附加的计算节点可能需要相对较长的时间(例如,长达30分钟)。因此,当需要附加的计算节点来支持缩放时,缩放无服务器应用的弹性可能会受到限制。因此,传统系统要么过度配置托管的应用所需的计算节点的数量,要么在达到集群的最大计算容量时启动附加的节点,从而抵消无服务器平台的弹性。例如,当没有足够容量的节点可用于满足对应用副本的调度请求时,传统系统以被动方式缩放集群,导致等待新节点启动的延迟。
本公开的各方面通过为无服务器应用提供基于轨迹的分层自动缩放解决了上述和其他缺陷。基于轨迹的集群自动缩放器可以从由计算节点的集群托管的所有无服务器应用收集度量(例如,流量度量,如每秒请求数或观察到的并发数)。基于轨迹的自动缩放器可以在集群范围规模(cluster-wide scale)上组合为无服务器应用收集的度量,以确定集群的整体流量轨迹。例如,基于轨迹的集群自动缩放器可以外推(extrapolate)历史和当前流量度量,以确定流量轨迹在未来时间点(例如,在特定的未来时间窗口内)是否可能超过集群的当前容量。因此,基于轨迹的自动缩放器可以预测对托管无服务器应用的集群的附加的计算节点的需求。
在一个示例中,基于轨迹的自动缩放器可以对由集群托管的每个无服务器应用收集的流量度量执行一个或多个统计分析或者应用一个或多个机器学习算法,以预测整个集群的未来流量。因此,基于轨迹的自动缩放器可以预测是否将超过集群的容量阈值,然后在集群达到其容量限制之前主动地向上缩放集群。在一些示例中,基于轨迹的自动缩放器可以结合流量突发容量、紧急窗口(例如,一次向上缩放多个节点)和其他无服务器缩放技术。
通过前瞻性地(proactively)预测集群的整体流量,可以在集群达到其当前容量之前启动附加的计算节点并将其添加到集群,这减少了由于当集群达到容量时附加的节点的启动时间而导致的集群的无服务器应用的延迟。此外,在达到容量之前发起附加的计算节点可能使计算资源向集群的过度分配变得不必要,从而提供更有效的计算资源分配。
图1描绘了根据本公开的一个或多个方面的计算机系统架构100的说明性示例的高级组件图。本领域的技术人员将理解,其他计算机系统体系结构也是可能的,并且利用本发明的示例的计算机系统的实现不必限于图1所示的特定体系结构。
如图1所示,计算机系统架构100包括主机系统110A-110B和缩放系统140。主机系统110A-110B和缩放系统140包括一个或多个处理设备160A-160B、存储器170,存储器170可以包括易失性存储器设备(例如,随机存取存储器(RAM))、非易失性存储器设备(例如,闪存)和/或其他类型的存储器设备、存储设备180(例如,一个或多个磁硬盘驱动器、外围组件互连(PCI)固态驱动器、独立磁盘冗余阵列(RAID)系统、网络连接存储(NAS)阵列等),和一个或多个设备190(例如,外围组件互连(PCI)设备、网络接口控制器(NIC)、视频卡、I/O设备等)。在某些实现中,存储器170可以是非均匀访问(NUMA),使得存储器访问时间取决于相对于处理设备160A-160B的存储器位置。应当注意,尽管为了简单起见,主机系统110A在图1中被描绘为包括单个处理设备160A、存储设备180和设备190,但是主机系统110A的其他实施例可以包括多个处理设备、存储设备和设备。类似地,缩放系统140和主机系统110B可以包括多个处理设备、存储设备和设备。主机系统110A-110B和缩放系统140可以各自是服务器、大型机、工作站、个人计算机(PC)、移动电话、手掌大小的计算设备等。在实施例中,主机系统110A-110B和缩放系统140可以是单独的计算设备。在一些实施例中,主机系统110A-110B和/或缩放系统140可以由单个计算设备来实现。为了清楚起见,缩放系统140和主机系统110B的一些组件未示出。此外,尽管计算机系统架构100被示为具有两个主机系统,但是本公开的实施例可以利用任何数量的主机系统。
主机系统110A还可以包括一个或多个虚拟机(VM)130、容器136和主机操作系统(OS)120。VM 130是机器的软件实现,其执行程序就像它是实际的物理机器一样。容器136作为应用不同功能的隔离执行环境。VM 130和/或容器136可以是用于执行无服务器框架的一个或多个应用的无服务器应用或功能的实例。主机OS 120管理计算机系统的硬件资源,并提供诸如进程间通信、调度、存储器管理等功能。
主机OS 120可以包括管理程序(hypervisor)125(也可以称为虚拟机监视器(VMM)),其为VM 130提供虚拟操作平台并管理它们的执行。管理程序125可以管理系统资源,包括对物理处理设备(例如,处理器、CPU等)、物理存储器(例如,RAM)、存储设备(例如,HDD、SSD)和/或其他设备(例如,声卡、视频卡等)的访问。尽管系统管理程序125通常以软件实现,但它可以以虚拟处理器和客户存储器的形式模拟裸机接口并将其导出到更高级别的软件。更高级别的软件可以包括标准或实时OS,可以是具有有限操作系统功能的高度精简的操作环境,和/或可以不包括传统的OS设施,等等。管理程序125可以向其他软件(即,“客户”软件)呈现一个或多个VM的抽象,这些VM向各种客户软件(例如,客户操作系统、客户应用)提供相同或不同的抽象。应当注意,在一些替代实现中,管理程序125可以在主机OS120外部,而不是嵌入在主机OS 120内,或者可以代替主机OS 120。
主机系统110A-110B和缩放系统140可以经由网络105耦合(例如,可以可操作地耦合、可通信地耦合、可以彼此传送数据/消息)。网络105可以是公共网络(例如,互联网)、专用网络(例如,局域网(LAN)或广域网(WAN))或其组合。在一个实施例中,网络105可以包括有线或无线基础设施,其可以由一个或多个无线通信系统提供,如与网络105连接的WiFiTM热点和/或可以使用各种数据处理装备、通信塔(例如,蜂窝塔)等实现的无线运营商系统。网络105可以在主机系统110A-110B和/或缩放系统140的各种组件之间承载通信(例如,数据、消息、分组、帧等)。
在实施例中,缩放系统140的处理设备160B可以执行基于轨迹的集群自动缩放器145。基于轨迹的集群自动缩放器145可以基于由集群执行的无服务器应用的未来流量的轨迹或估计来先发制人地缩放集群(例如,VM 130)。集群可以包括用于执行无服务器应用的一个或多个计算节点(例如,VM 130)。基于轨迹的集群自动缩放器145可以监控由集群执行的每个无服务器应用的流量度量(例如,并发请求和实例调用)。基于轨迹的集群自动缩放器145可以组合来自在集群上执行的不同无服务器应用的流量度量,以确定整个集群的流量轨迹。基于轨迹的集群自动缩放器145然后可以使用整个集群的流量轨迹来确定集群的当前最大容量、容量阈值或其他阈值是否可能在未来时间被超过,如果是,则发起附加的处理节点的启动。例如,基于轨迹的集群自动缩放器145可以确定在与启动附加的处理节点所需时间相对应的未来时间是否会超过容量。关于基于轨迹的集群自动缩放器145的进一步细节将在下面的图2-图5中讨论。
图2是示出根据一些实施例的用于无服务器应用集群的基于轨迹的自动缩放的缩放系统200的框图。在所描绘的实施例中,缩放系统200包括用于执行一个或多个无服务器应用的两个计算节点205A-205B的初始集群。例如,应用210和220可以在节点205A上执行,应用230可以在节点205B上执行。应当注意,尽管三个应用被描绘为在两个计算节点上执行,但是实施例可以包括由任意数量的计算节点执行的任意数量的应用。应用自动缩放器208A-208C可以与在集群的节点205A-205B上执行的应用210、220和230中的每一个相关联。例如,如图所描绘的,应用自动缩放器208A可以与应用210相关联,应用自动缩放器208B可以与应用220相关联,并且应用自动缩放器208C可以与应用230相关联。应用自动缩放器208A-208C可以从对应的应用210、220和230中抓取流量相关的度量,以根据需要适当地缩放要为每个应用实例化的副本的数量。例如,应用自动缩放器208A-208C可以基于对应的应用210、220和230中的每一个的并发请求的数量来缩放应用210、220和230的副本的数量。在一些实施例中,可以基于附加的流量度量来进一步缩放应用的副本的数量,该附加的流量度量如无服务器应用的延期、由无服务器应用执行的无服务器应用副本的运行时间、无服务器应用的空闲时间和/或与无服务器应用相关联的任何其他度量。因此,应用210、220和230可以基于与应用210、220和230中的每一个相关联的流量度量来向上缩放和向下缩放。
另外,缩放系统200可以包括基于轨迹的集群自动缩放器145,用于前瞻性地缩放集群的计算节点的数量。虽然应用副本可以相对快速地被实例化(例如,几秒钟的时间),从而允许应用响应于传入流量而被缩放,但是计算节点(例如,虚拟机)可能需要更长的时间量来启动(例如,引导(boot))。因此,基于轨迹的集群自动缩放器145通过将应用210、220和230的当前流量趋势外推至未来时间来前瞻性地缩放集群中的计算节点的数量,以确定是否应该向集群添加附加的计算节点。基于轨迹的集群自动缩放器145可以从由集群执行的每个应用中抓取流量度量(例如,流量信息、并发请求、每秒请求等),并聚集整个集群的流量度量。因此,基于轨迹的集群自动缩放器145可以随着时间监控集群的整体流量,以使用集群的历史流量数据和当前流量数据来预测未来流量。
在一些示例中,基于轨迹的集群自动缩放器145可以使用统计分析、机器学习或其他技术来预测集群的未来流量水平。例如,基于轨迹的集群自动缩放器145可以对历史流量数据到当前流量数据的窗口执行回归分析(例如,线性回归),以外推集群的流量水平的趋势。在另一示例中,基于轨迹的集群自动缩放器145可以使用集群和集群的每个应用的历史流量数据来训练一个或多个机器学习算法。基于轨迹的自动缩放器145然后可以将一个或多个机器学习算法应用于最近流量数据的部分,以预测未来的特定时间的流量水平。在一些示例中,基于轨迹的自动缩放器145可以基于先前的流量数据来考虑一天中的高流量时间,并且可以识别倾向于在流量增加之前的流量模式(traffic pattern)。因此,基于轨迹的集群自动缩放器145可以预测未来的时间的流量水平,并在集群达到最大容量、容量阈值或其他流量相关阈值之前用附加的节点来缩放集群。
在一个示例中,基于轨迹的集群自动缩放器145可以预测与集群的应用210、220和230相关联的流量水平在与新计算节点要被启动的时间的长度相对应的未来时间。例如,如果新计算节点的引导时间是30分钟,则基于轨迹的集群自动缩放器145可以预测未来30分钟或更长时间的流量水平。因此,基于轨迹的集群自动缩放器145可以发起附加的计算节点(例如,节点205C)的启动,该节点可以在节点205A-B达到其容量之前完成引导,并且不再支持工作负载。在一个示例中,基于轨迹的集群自动缩放器145还可以结合流量突发容量、紧急窗口(例如,一次向上缩放多个节点)以及用于基于流量和工作负载对单个无服务器应用进行无服务器缩放的任何其他技术。
图3是示出根据一些实施例的用于集群的基于轨迹的缩放的计算系统300的框图。计算系统300可以包括处理设备310和存储器320。存储器320可以包括易失性存储设备(例如,随机存取存储器(RAM))、非易失性存储设备(例如,闪存)和/或其他类型的存储器设备。处理设备310可以是计算系统300的中央处理单元(CPU)或其他处理设备。在一个示例中,计算机系统300可以耦合到计算集群340。在另一个示例中,计算机系统300可以包括在计算集群340中,或者计算集群340可以包括在计算机系统300中。计算集群340可以包括用于执行一个或多个应用344(例如,无服务器应用)的一个或多个计算节点342。
在一个示例中,处理设备310可以执行基于轨迹的集群自动缩放器145,以预测计算集群340的未来高流量情况,并且在计算集群340达到当前计算节点342的工作负荷极限之前,利用附加的计算节点主动地向上缩放计算集群340。基于轨迹的集群自动缩放器145可以包括流量监控组件312、流量预测组件314和集群缩放组件316。流量监控组件312可以从计算集群340的应用344收集流量度量。流量度量可以包括每个应用344的流量数据,如每秒请求、并发请求等。在一些示例中,流量度量还可以包括无服务器应用的延期、由无服务器应用执行的无服务器应用副本的运行时间、无服务器应用的空闲时间和/或与无服务器应用相关联的任何其他度量。流量监控组件312可以聚集在计算集群340的计算节点342上执行的所有应用344的流量度量(例如,流量数据)。流量监控组件312可以收集和存储整个计算集群340的历史流量数据,并持续监控计算集群340的当前流量数据。
流量预测组件314可以对计算集群340的历史和当前流量数据执行一个或多个分析,以预测计算集群340的未来流量水平。例如,流量预测组件314可以对导致当前流量数据的历史流量数据窗口(例如,进入历史流量数据的几分钟到几个小时)执行一个或多个回归分析,以外推未来的流量水平趋势(例如,如图4所描绘)。在另一个示例中,流量预测组件314可以用由流量监控组件312收集的历史流量数据来训练机器学习模型(例如,深度学习模型、人工神经网络等)。流量预测组件314然后可以将训练的机器学习模型应用于直到当前流量数据的最近历史流量数据的部分,以预测计算集群340的未来流量水平。例如,机器学习模型可以识别与流量水平增加相对应的流量水平形状,将一天中的时间与对应的流量水平相关联,或者确定影响应用344和计算集群340的整体流量水平的任何其他度量。在一个示例中,流量预测组件314可以确定引导新的计算节点并将其添加到计算集群340所花费的时间。流量预测组件314然后可以预测计算集群340在未来的时间的流量水平,该时间与新计算节点被引导并添加到计算集群340的时间量相对应。
集群缩放组件316可以基于流量预测组件314的流量水平预测来确定是否缩放计算集群340。例如,集群缩放组件316可以确定计算集群340的应用344的预测流量水平是否超过计算集群340的当前计算节点342的容量阈值(例如,最大容量)。响应于确定未来流量水平超过计算集群340的计算节点342的容量阈值,集群缩放组件316可以通过发起要添加到集群的附加的计算节点的创建来缩放计算集群340。例如,集群缩放组件316可以经由计算集群340的应用编程接口(API)请求新节点。因此,集群缩放组件316可以基于由流量预测组件314预测的未来流量水平先发制人地(preemptively)缩放计算集群340。
图4是根据一些实施例的利用(utilization)-时间图400,其示出了用于计算集群的先发制人的缩放的示例未来流量预测。图400示出了容量阈值402,在该点可能需要附加的计算节点来支持集群的流量水平和对应的工作负载。容量阈值402可以对应于集群的当前节点的100%利用,或者触发向集群添加新计算节点的任何其他容量阈值、利用或流量水平。如图所描绘,在时间T1,可以从从集群上执行的应用提取的流量度量中知道流量水平404或利用。基于当前流量水平404和历史流量数据的至少一部分,基于轨迹的集群自动缩放器可以预测未来流量水平406(例如,通过将流量趋势外推至未来)。因此,在图4所描绘的示例中,集群的预计流量水平406被预计在时间T2超过集群的容量阈值402。因此,因为流量水平被预测为在时间T2超过容量阈值402,所以基于轨迹的集群自动缩放器可以发起向集群添加新的计算节点,以支持在时间T2之后、超过集群的当前容量阈值402的附加工作负荷。
图5是根据一些实施例的虚拟机联网配置迁移的方法500的流程图。方法500可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微码)或其组合。在一些实施例中,方法500的至少一部分可以由基于轨迹的集群自动缩放器(例如,图1的基于轨迹的集群自动缩放器145)来执行。
参考图5,方法500示出了各种实施例使用的示例功能。尽管在方法500中公开了特定的功能框(“框”),但是这些框是示例。也就是说,实施例非常适合于执行方法500中列举的各种其他框或框的变化。应当理解,方法500中的框可以以不同于所呈现的顺序来执行,并且不是方法500中的所有框都可以被执行。
方法500开始于框510,其中处理逻辑在第一时间间隔期间监控与由计算节点的集群执行的一个或多个应用相关联的流量。例如,处理逻辑可以收集和存储在第一时间间隔期间由集群执行的一个或多个应用的度量(例如,流量数据)。第一时间间隔可以对应于直到(leading up)当前时间的时间窗口。一个或多个应用可以是无服务器应用,其可以基于为集群上执行的每个应用收集的流量度量在计算节点的集群上向上缩放和向下缩放。例如,每个无服务器应用可以基于无服务器应用接收到的并发请求、每秒请求数等来向上缩放或向下缩放。
在框520,鉴于第一时间间隔期间一个或多个应用的流量,处理逻辑确定流量被预测为在第二时间间隔结束时超过计算节点的集群的容量阈值。在一个示例中,处理逻辑可以基于为集群执行的每个应用收集的度量(例如,流量数据)来预测或外推集群的流量水平。例如,处理逻辑可以将一个或多个统计分析或机器学习模型应用于整个集群的历史和当前流量,以预测整个集群的未来流量水平。
在一个示例中,集群的容量阈值可以是集群的最大处理能力。在另一示例中,容量阈值可以是集群的最大容量的百分比、当前集群的定义限制、或者与当前集群的流量水平和/或容量相关联的任何其他阈值。第二时间间隔可以对应于启动附加的计算节点并将其添加到集群所需的时间量。例如,处理逻辑可以确定流量是否被预测为在新节点被添加到集群所需的时间前后(之前或之后)的时间窗口内超过集群的容量阈值。例如,如果附加的计算节点需要30分钟来启动,则第二时间间隔可以是从当前时间开始的25-40分钟,使得处理逻辑可以确定流量是否被预测为超过容量,并有足够的时间来启动新节点,而很少或没有停机时间(例如,在达到容量阈值之后等待新节点)。
在框530,处理逻辑发起要添加到计算节点的集群的附加的计算节点的启动,以执行一个或多个应用的副本。响应于确定流量被预测超过计算节点的当前容量阈值,处理逻辑可以使用集群API来发起向集群添加新节点。一旦附加的节点被添加到集群,集群的容量阈值可以相应地被更新。例如,鉴于附加的节点的附加的计算能力,可以增加容量阈值。因此,鉴于集群的流量水平和集群的预测流量水平,处理逻辑可以根据需要先发制人地缩放集群。
图6是根据一些实施例的可以执行本文描述的一个或多个操作的示例计算设备600的框图。计算设备600可以连接到LAN、内联网、外联网和/或互联网中的其他计算设备。计算设备600可以在客户端-服务器网络环境中以服务器机器的身份或者在对等网络环境中以客户端的身份操作。计算设备600可以由个人计算机(PC)、机顶盒(STB)、服务器、网络路由器、交换机或网桥(bridge)或能够执行指定该机器要采取的动作的一组指令(顺序的或其他的)的任何机器来提供。此外,虽然仅示出了单个计算设备,但是术语“计算设备”也应当被理解为包括单独或共同执行一组(或多组)指令以执行本文讨论的方法的计算设备的任何集合。
示例计算设备600可以包括处理设备(例如,通用处理器、PLD等)602、主存储器604(例如,同步动态随机存取存储器(DRAM)、只读存储器(ROM))、静态存储器606(例如,闪存和数据存储设备618),它们可以经由总线630彼此通信。
处理设备602可以由一个或多个通用处理设备(如微处理器、中央处理单元等)提供。在说明性示例中,处理设备602可以包括复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或者实现其他指令集的处理器或者实现指令集组合的处理器。处理设备602还可以包括一个或多个专用处理设备,如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。根据本公开的一个或多个方面,处理设备602可以被配置为执行本文描述的操作,用于执行本文讨论的操作和步骤。
计算设备600还可以包括可以与网络620通信的网络接口设备608。计算设备600还可以包括视频显示单元610(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备612(例如,键盘)、光标控制设备614(例如,鼠标)和声音信号生成设备616(例如,扬声器)。在一个实施例中,视频显示单元610、字母数字输入设备612和光标控制设备614可以组合成单个组件或设备(例如,LCD触摸屏)。
根据本公开的一个或多个方面,数据存储设备618可以包括计算机可读存储介质628,其上可以存储一组或多组指令625,指令625可以包括用于基于轨迹的集群自动缩放器(例如,基于轨迹的集群自动缩放器145)的指令,用于执行本文描述的操作。指令625也可以在由计算设备600执行期间完全或至少部分地驻留在主存储器604和/或处理设备602中,主存储器604和处理设备602也构成计算机可读介质。指令625还可以经由网络接口设备608在网络620上发送或接收。
虽然计算机可读存储介质628在说明性示例中被示为单个介质,但是术语“计算机可读存储介质”应当被理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应被理解为包括能够存储、编码或携带一组由机器执行的指令并使机器执行本文描述的方法的任何介质。因此,术语“计算机可读存储介质”应被理解为包括但不限于固态存储器、光学介质和磁介质。
除非特别声明,否则诸如“接收”、“路由”、“更新”、“提供”等术语指的是由计算设备执行或实现的动作和过程,该动作和过程将计算设备的寄存器和存储器内表示为物理(电子)量的数据操纵和转换成类似地表示为计算设备的存储器或寄存器或其他这种信息存储、传输或显示设备内的物理量的其他数据。此外,本文使用的术语“第一”、“第二”、“第三”、“第四”等是指用于区分不同元素的标签,并且根据它们的数字名称,不一定具有序数含义。
本文描述的示例还涉及用于执行本文描述的操作的装置。该装置可以为所需目的而专门构造,或者它可以包括由存储在计算设备中的计算机程序选择性编程的通用计算设备。这种计算机程序可以存储在计算机可读的非暂时性存储介质中。
本文描述的方法和说明性示例并不固有地与任何特定的计算机或其他装置相关。根据本文描述的教导,可以使用各种通用系统,或者可以证明构建更专用的装置来执行所需的方法步骤是方便的。各种这些系统所需的结构将如上面的描述所示。
上面的描述是说明性的,而不是限制性的。尽管已经参考具体的说明性示例描述了本公开,但是应当认识到,本公开不限于所描述的示例。本公开的范围应当参考以下权利要求以及权利要求所赋予的等同物的全部范围来确定。
如本文所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文清楚地另外指出。将进一步理解,当在此使用时,术语“包括”、“包含”、“含有”和/或“具有”指定所陈述的特征、整体、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整体、步骤、操作、元件、组件和/或其组合的存在或添加。因此,本文使用的术语仅用于描述特定实施例的目的,并不旨在进行限制。
还应当注意,在一些替代实现中,所述功能/动作可以不按图中所示的顺序发生。例如,根据所涉及的功能/动作,连续示出的两个图形实际上可以基本上同时执行,或者有时可以以相反的顺序执行。
尽管以特定顺序描述了方法操作,但是应当理解,在所描述的操作之间可以执行其他操作,可以调整所描述的操作,使得它们在稍微不同的时间发生,或者所描述的操作可以分布在允许在与处理相关联的各种间隔发生处理操作的系统中。
各种单元、电路或其他组件可以被描述或声明为“被配置为”或“可配置为”执行一项或多项任务。在这样的上下文中,短语“配置为”或“可配置到”用于通过指示单元/电路/组件包括在操作期间执行一个或多个任务的结构(例如,电路)来暗示结构。因此,单元/电路/组件可以说被配置为执行任务,或者可配置为执行任务,即使当指定的单元/电路/组件当前不工作(例如,不开启)时。与“被配置为”或“可配置为”语言一起使用的单元/电路/组件包括硬件-例如,电路、存储可执行以实现操作的程序指令的存储器等。陈述单元/电路/组件被“配置为”执行一个或多个任务,或者被“可配置为”执行一个或多个任务,明确地不旨在为该单元/电路/组件调用《美国法典》第35篇第112节第6段(35 U.S.C.112,sixthparagraph)。另外,“配置为”或“可配置为”可以包括通用结构(例如,通用电路),其由软件和/或固件(例如,现场可编程门阵列或执行软件的通用处理器)操纵,以能够执行所讨论的任务的方式操作。“被配置为”还可以包括调整制造工艺(例如,半导体制造设施)以制造适于实现或执行一个或多个任务的器件(例如,集成电路)。“可配置为”明确地不旨在适用于空白介质、未编程的处理器或未编程的通用计算机、或未编程的可编程逻辑器件、可编程门阵列或其他未编程的器件,除非伴随有赋予未编程器件被配置为执行所公开的功能的能力的编程介质。
出于解释的目的,已经参考特定实施例描述了前述描述。然而,上面的说明性讨论并不旨在穷举或将本发明限制于所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。选择和描述这些实施例是为了最好地解释这些实施例的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用这些实施例和可能适合于预期的特定用途的各种修改。因此,本实施例被认为是说明性的而非限制性的,并且本发明不限于本文给出的细节,而是可以在所附权利要求的范围和等同物内进行修改。
Claims (20)
1.一种方法,包括:
在第一时间间隔期间,监控与由计算节点的集群执行的一个或多个应用相关联的流量;
鉴于在第一时间间隔期间与一个或多个应用相关联的流量,由处理设备确定流量被预测为在第二时间间隔结束时超过计算节点的集群的容量阈值;以及
发起要添加到计算节点的集群的附加的计算节点的启动,以执行一个或多个应用的副本。
2.根据权利要求1所述的方法,其中第二时间间隔对应于与启动附加的计算节点相关联的时间量。
3.根据权利要求1所述的方法,其中一个或多个应用包括一个或多个无服务器应用。
4.根据权利要求1所述的方法,其中流量包括由计算节点的集群执行的一个或多个应用中的每一个接收的并发请求的数量。
5.根据权利要求1所述的方法,其中监控与由计算节点的集群执行的一个或多个应用相关联的流量包括:
从一个或多个应用的每一个中抓取一个或多个流量度量;以及
鉴于来自一个或多个应用中的每一个的一个或多个流量度量,确定在第一时间间隔期间集群的总流量水平。
6.根据权利要求5所述的方法,其中确定与一个或多个应用相关联的流量被预测为在第二时间间隔结束时超过计算节点的集群的容量阈值包括:
将第一时间间隔期间集群的总流量水平外推至第二时间间隔上。
7.根据权利要求6所述的方法,其中将集群的总流量水平外推包括:
对第一时间间隔期间集群的总流量水平应用统计分析或机器学习模型,以估计在第二时间间隔结束时集群的未来总流量水平。
8.一种系统,包括:
存储器;以及
可操作地耦合到存储器的处理设备,所述处理设备用于:
在第一时间间隔期间,监控与由计算节点的集群执行的一个或多个应用相关联的流量;
鉴于在第一时间间隔期间与一个或多个应用相关联的流量,确定流量被预测为在第二时间间隔结束时超过计算节点的集群的容量阈值;和
发起要添加到计算节点的集群的附加的计算节点的启动,以执行一个或多个应用的副本。
9.根据权利要求8所述的系统,其中第二时间间隔对应于与启动附加的计算节点相关联的时间量。
10.根据权利要求8所述的系统,其中一个或多个应用包括一个或多个无服务器应用。
11.根据权利要求8所述的系统,其中流量包括由计算节点的集群执行的一个或多个应用中的每一个接收的并发请求的数量。
12.根据权利要求8所述的系统,其中用于监控与由计算节点的集群执行的一个或多个应用相关联的流量,所述处理设备用于:
从一个或多个应用的每一个中抓取一个或多个流量度量;以及
鉴于来自一个或多个应用中的每一个的一个或多个流量度量,确定在第一时间间隔期间集群的总流量水平。
13.根据权利要求12所述的系统,其中用于确定与一个或多个应用相关联的流量被预测为在第二时间间隔结束时超过计算节点的集群的容量阈值,所述处理设备用于:
将第一时间间隔期间集群的总流量水平外推至第二时间间隔上。
14.根据权利要求13所述的系统,其中,用于将集群的总流量水平外推,所述处理设备用于:
对第一时间间隔期间集群的总流量水平应用统计分析或机器学习模型,以估计在第二时间间隔结束时集群的未来总流量水平。
15.一种非暂时性计算机可读存储介质,包括指令,当由处理设备执行时,所述指令使得处理设备:
在第一时间间隔期间,监控与由计算节点的集群执行的一个或多个应用相关联的流量;
由处理设备鉴于在第一时间间隔期间与一个或多个应用相关联的流量,确定流量被预测为在第二时间间隔结束时超过计算节点的集群的容量阈值;以及
发起要添加到计算节点的集群的附加的计算节点的启动,以执行一个或多个应用的副本。
16.根据权利要求15所述的非暂时性计算机可读存储介质,其中第二时间间隔对应于与启动附加的计算节点相关联的时间量。
17.根据权利要求15所述的非暂时性计算机可读存储介质,其中一个或多个应用包括一个或多个无服务器应用。
18.根据权利要求15所述的非暂时性计算机可读存储介质,其中流量包括由计算节点的集群执行的一个或多个应用中的每一个接收的并发请求的数量。
19.根据权利要求15所述的非暂时性计算机可读存储介质,其中用于监控与由计算节点的集群执行的一个或多个应用相关联的流量,所述处理设备用于:
从一个或多个应用的每一个中抓取一个或多个流量度量;以及
鉴于来自一个或多个应用中的每一个的一个或多个流量度量,确定在第一时间间隔期间集群的总流量水平。
20.根据权利要求19所述的非暂时性计算机可读存储介质,其中用于确定与一个或多个应用相关联的流量被预测为在第二时间间隔结束时超过计算节点的集群的容量阈值,所述处理设备用于:
将第一时间间隔期间集群的总流量水平外推至第二时间间隔上。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/513,246 US12020036B2 (en) | 2021-10-28 | 2021-10-28 | Trajectory-based hierarchical autoscaling for serverless applications |
US17/513,246 | 2021-10-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116048766A true CN116048766A (zh) | 2023-05-02 |
Family
ID=80112234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210042039.4A Pending CN116048766A (zh) | 2021-10-28 | 2022-01-14 | 用于无服务器应用的基于轨迹的分层自动缩放 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12020036B2 (zh) |
EP (1) | EP4174653A1 (zh) |
CN (1) | CN116048766A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12106155B2 (en) * | 2021-12-20 | 2024-10-01 | Jpmorgan Chase Bank N.A. | System and method for performing preemptive scaling of micro service instances in cloud network |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9412075B2 (en) * | 2013-08-23 | 2016-08-09 | Vmware, Inc. | Automated scaling of multi-tier applications using reinforced learning |
US10374900B2 (en) * | 2014-12-03 | 2019-08-06 | Hewlett Packard Enterprise Development Lp | Updating a virtual network topology based on monitored application data |
US9971621B1 (en) * | 2015-02-02 | 2018-05-15 | Amazon Technologies, Inc. | Hotpooling virtual machines |
US9848041B2 (en) | 2015-05-01 | 2017-12-19 | Amazon Technologies, Inc. | Automatic scaling of resource instance groups within compute clusters |
US10594562B1 (en) * | 2015-08-25 | 2020-03-17 | Vmware, Inc. | Intelligent autoscale of services |
WO2018063574A1 (en) | 2016-09-30 | 2018-04-05 | Uchicago Argonne, Llc | Systems and methods for metric driven deployments to cloud service providers |
US10609131B2 (en) * | 2018-01-12 | 2020-03-31 | Citrix Systems, Inc. | Non-disruptive enablement of highly available cloud computing services |
US11164125B2 (en) | 2018-11-19 | 2021-11-02 | Capital One Services, Llc | Systems and methods for proactive infrastructure resource management for multiple application clusters |
US10761889B1 (en) | 2019-09-18 | 2020-09-01 | Palantir Technologies Inc. | Systems and methods for autoscaling instance groups of computing platforms |
US11487579B2 (en) * | 2020-05-05 | 2022-11-01 | Adobe Inc. | System and method for resource scaling for efficient resource management |
-
2021
- 2021-10-28 US US17/513,246 patent/US12020036B2/en active Active
-
2022
- 2022-01-14 EP EP22151660.2A patent/EP4174653A1/en active Pending
- 2022-01-14 CN CN202210042039.4A patent/CN116048766A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US12020036B2 (en) | 2024-06-25 |
US20230140272A1 (en) | 2023-05-04 |
EP4174653A1 (en) | 2023-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9697068B2 (en) | Building an intelligent, scalable system dump facility | |
US10860353B1 (en) | Migrating virtual machines between oversubscribed and undersubscribed compute devices | |
US11831410B2 (en) | Intelligent serverless function scaling | |
US10417012B2 (en) | Reprogramming a field programmable device on-demand | |
US20210294730A1 (en) | Managing resources used during a development pipeline | |
CN112162891B (zh) | 服务器集群中的性能测试方法及相关设备 | |
US20220413931A1 (en) | Intelligent resource management | |
US20120144389A1 (en) | Optimizing virtual image deployment for hardware architecture and resources | |
US20240143377A1 (en) | Overlay container storage driver for microservice workloads | |
Patel et al. | Improved pre-copy algorithm using statistical prediction and compression model for efficient live memory migration | |
EP4174653A1 (en) | Trajectory-based hierarchical autoscaling for serverless applications | |
US20200065126A1 (en) | Resource optimization for virtualization environments | |
EP4261682A1 (en) | Just-in-time packager build system | |
US11954534B2 (en) | Scheduling in a container orchestration system utilizing hardware topology hints | |
US11868805B2 (en) | Scheduling workloads on partitioned resources of a host system in a container-orchestration system | |
US20230418688A1 (en) | Energy efficient computing workload placement | |
US11972242B2 (en) | Runtime environment optimizer for JVM-style languages | |
US11368521B1 (en) | Utilizing reinforcement learning for serverless function tuning | |
US11977907B2 (en) | Hybrid push and pull event source broker for serverless function scaling | |
US20230101885A1 (en) | Reliable device assignment for virtual machine based containers | |
US11451615B1 (en) | Probabilistic per-file images preloading | |
US20240152453A1 (en) | Mitigation of garbage collection overhead | |
US11126452B2 (en) | Performance modeling for virtualization environments | |
CN115390984A (zh) | 微服务架构中的工作负载感知网络 |
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 |