CN114449042A - 自适应云请求处理 - Google Patents
自适应云请求处理 Download PDFInfo
- Publication number
- CN114449042A CN114449042A CN202111268722.1A CN202111268722A CN114449042A CN 114449042 A CN114449042 A CN 114449042A CN 202111268722 A CN202111268722 A CN 202111268722A CN 114449042 A CN114449042 A CN 114449042A
- Authority
- CN
- China
- Prior art keywords
- server
- group
- tenant
- requests
- servers
- 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
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1027—Persistence of sessions during load balancing
-
- 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
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- 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/5019—Workload prediction
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
云计算系统接收源自多个租户的多个请求。此后,构成云计算系统的一部分的负载均衡器基于被配置为优化高速缓存命中率的组映射表,将每个请求分派给多个服务器组之一。每个服务器组包括多个服务器,将每个请求分派给每个服务器组内的多个服务器之一。云计算系统向各个租户提供由各个服务器组内的各个服务器生成的对请求的响应。可以通过监视租户中的每一个的历史请求统计数据、监视多个服务器组在处理来自租户的请求时的当前资源消耗、以及基于这样的监视关联每个租户与服务器组之一来生成组映射表。
Description
技术领域
本文所描述的主题涉及由构成云计算系统一部分的后端服务器处理租户请求的增强型技术。
背景技术
因为在前端可能存在数十万个源自租户计算设备的请求,因此云计算环境越来越多地处理更多的负载。这些请求进而可以由后端的数百甚至数千个服务器来处理。为了改善性能或响应时间,特定数据(诸如元数据、会话信息等)可以存储在服务器侧高速缓存存储器中。在这样的安排下,通过将后续地从同一租户接收的请求定向到同一后端服务器,使得这些请求命中(hit)高速缓存,可以更快地处理这些请求。相比之下,如果来自租户的请求被重新定向到不具有与租户相关联的高速缓存的后端服务器,则需要用缓存在这样的服务器上的特定数据(例如,元数据、会话信息等)来对这些请求进行完全处理。
假设后端存在N个服务器,如果负载均衡器采用轮询(round robin)方法将请求分派到各种后端服务器,则服务器高速缓存命中率为1/N。随着云系统规模的扩大,N增加,并且1/N减少,使得服务器高速缓存命中率变得非常低,进而需要大量时间来擦除服务器高速缓存中的旧数据并在服务器高速缓存中构建新数据。
一种不同的负载均衡方法使用其中在会话期间与租户和服务器有特定的关联的会话持久性(也被称为会话粘性)。这样安排可能存在问题,因为每个租户的请求量或频率可能会改变。如果租户的请求数量急剧增加,并且这些请求仍然被重新定向到同一个后端服务器,则该服务器的资源可能会紧张,导致响应延迟,或者在极端情况下,资源耗尽而导致服务器崩溃。过于简单地说,当一个租户消耗大量服务器资源,使得在同一服务器上被服务的第二个租户在其接收到的响应中开始看到延迟增加时,这样的问题出现。相反地,如果来自租户的请求的数量显著减少,并且来自其他租户的请求没有被重新定向到该后端服务器,则该服务器可能未被充分利用,从而浪费了可用的计算资源。
发明内容
在第一方面,云计算系统接收源自多个租户的多个请求。此后,构成云计算系统的一部分的负载均衡器基于组映射表将每个请求分派给多个服务器组之一,该组映射表可以被配置为优化高速缓存命中率。每个服务器组包括多个服务器,其在每个服务器组内将每个请求分派给每个服务器组内的多个服务器之一。云计算系统向各个租户提供由各个服务器组内的各个服务器生成的对请求的响应。例如,可以通过对租户中的每一个的历史请求统计数据(statistics)进行第一监视,对服务器在处理来自租户的请求时的当前资源消耗进行第二监视,并且基于第一监视和第二监视关联每个租户与服务器组之一来生成组映射表,以便优化高速缓存命中率。
在一些变型中,可以存在N个服务器,例如,N/2个服务器组。
可以基于由服务器的当前资源消耗(包括中央处理单元(CPU)使用、内存消耗和输入/输出(I/O)消耗)生成的值的加权来生成服务器组度量。
可以基于根据租户的历史请求度量而为每个租户生成的值的加权来生成租户度量,该租户的历史请求度量包括所监视的请求的数量和处理请求的响应时间。组映射表可以被配置为创建具有基本相似的聚合租户度量的租户组。
组监视器可以与每个服务器组相关联,并且可以提供服务器组在处理来自租户的请求时的当前资源消耗。组监视器可以是在各个服务器组的一个或多个服务器上执行的软件代理。组监视器可以将当前资源消耗信息发送到构成负载均衡器一部分的中央监视器。中央监视器可以是专用服务器,或者可替代地,是由负载均衡器执行的代理。
在一个相关方面,监视与云计算系统接收到的源自多个租户中的每一个的多个请求相关联的请求统计数据。此外,还监视构成云计算系统的一部分的服务器组当处理由云计算系统接收到的多个请求时的资源消耗。请求统计数据信息可以用于生成租户度量,并且所监视的资源消耗可以用于生成服务器组度量。然后,租户度量和服务器组度量可以用于生成被配置为优化服务器组的高速缓存命中率的组映射表。云计算系统随后接收源自多个租户的多个新请求。构成云计算系统的一部分的负载均衡器基于组映射表分派将由多个服务器组之一处理的每个新请求。然后,可以由云计算系统将由各个服务器组生成的对新请求的响应提供给各个租户。可以连续地或周期性地监视请求统计数据和资源消耗中的一个或多个,使得组映射表可以相应地被更新,以便在云计算系统随后遇到变化的租户负载情况时优化高速缓存命中率。
非暂时性计算机程序产品(即,物理上实施的计算机程序产品、非暂时性计算机可读介质等)还被描述为存储指令,当这些指令被一个或多个计算系统的一个或多个数据处理器执行时,使得至少一个数据处理器执行本文的操作。类似地,还描述了可以包括一个或多个数据处理器和耦合到一个或多个数据处理器的存储器的计算机系统。存储器可以临时或永久地存储使得至少一个处理器执行本文所描述的一个或多个操作的指令。此外,方法可以由单个计算系统内或分布在两个或更多个计算系统中的一个或更多个数据处理器来实现。这样的计算系统可以经由一个或多个连接(包括但不限于通过网络(例如,互联网、无线广域网、局域网、广域网、有线网络等)的连接、经由多个计算系统中的一个或多个之间的直接连接等)相连,并且可以交换数据和/或命令或者其他指令等。
本文所描述的主题提供了多个技术益处。例如,当前主题提供了更高效地处理租户请求的增强型技术,该增强型技术在处理云服务器时提高了高速缓存命中率。
在附图和下面的描述中阐述本文所描述的主题的一个或多个变型的细节。从说明书和附图以及权利要求中,本文所描述的主题的其他特征和优点将是清楚的。
附图说明
图1是示出云计算系统的第一架构图;
图2是示出云计算系统的第二架构图;
图3是示出构成负载处理器的一部分的中央监视器的第一示意图;
图4是示出云计算系统的第二架构图;
图5是示出构成负载处理器的一部分的中央监视器的第二示意图;
图6是示出服务器组监视器的图;
图7是示出租户对请求进行自适应处理以供云计算系统处理的处理流程图;以及
图8是示出用于实现当前主题的各方面的计算设备的图。
不同附图中相同的附图标记表示相同的元件。
具体实施方式
当前主题提供了处理租户请求的增强型技术,其中云服务器上的高速缓存信息可以更容易地被重用。
参考图1的图100,多个租户计算设备110(例如,客户端等)通过一个或多个网络120(例如,互联网、内部专用网络、分布式专用网络等)与云计算系统130交换数据。在这方面,租户可以指具有访问云计算系统130的多个相关联的计算设备的客户或企业。云计算系统130包括向构成云计算系统130的一部分的各种服务器1501…N分派请求的至少一个负载均衡器140。作为说明,如果负载均衡器140采取轮询方法来分派/处理来自租户1101…N的请求,则服务器高速缓存命中率为1/N。如果负载均衡器140采取会话持久性方法来分派请求,则服务器高速缓存命中率提高;然而,整个云系统计算系统130的性能可能会受到影响,因为一些服务器上的负载可能太重,而其他服务器却保持空闲。
图2是示出了在配置阶段期间当前主题的其他方面的图200,在配置阶段中,负载均衡器140逻辑上将服务器1501…N分组为X个服务器150的组(在这种情况下X=2)。此外,负载均衡器140可以包括作为监视、生成和存储租户表212的代理的中央监视器210,租户表212包括租户1101…N的统计数据,诸如请求的数量、请求的数据大小、响应的数据大小、对于每个租户110的请求和相关联的响应之间的时间等。此外,中央监视器210可以监视、生成和存储服务器组表214,该服务器组表214包括与包括可用CPU容量、可用内存容量、数据流量吞吐量(例如,I/O)、线程计数等的服务器组相关的统计数据。租户表212、服务器组表214和服务器组映射表216(如下所述)可以存储在诸如数据库的本地数据存储中,或者在一些情况下,可以是远程数据存储和/或数据库的一部分。此外,取决于期望的配置,表212、214、216可以构成单个表的一部分,或者每个表212、214、216可以包括多个表。下面结合图3和图5提供关于中央监视器210的附加信息。
如上所述,负载均衡器140可以逻辑上将服务器分组为两个或更多个的组。进一步参考图2,第一组包括两个服务器1501、1502,第二组包括服务器1503、1504,一直到服务器150N-1、150N。假设总共有N个服务器150,那么将有N/2个组。应该注意的是,离散数字(诸如3、4、5等)的服务器的其他大小分组也是可能的,使得总共N个服务器150将被分组为N/3、N/4、N/5等的组。在其他的安排中,服务器150可以以不同的大小被分组。也就是说,一些服务器150可以被分组为2的组,同时,其他服务器150可以被分组为3、4、5等的组。
每个服务器组150可以具有可以是在组中的服务器150中的每一个上执行的代理的组监视器2201…N/2。在一种替代安排中,组监视器2201…N/2可以是单独的硬件和软件组合,其被专门编程以收集必要的数据并将其报告给中央监视器210。组监视器2201…N/2可以监视组内相应服务器的CPU、内存、I/O,并将相关数据发送到中央监视器210。组监视器220的采样率可以被配置为从亚秒(sub-second)采样率到每几秒采样一次,使得中央监视器210可以利用关于服务器负载的信息。参考图6的图600,组监视器220可以是具有配置文件610的代理,该配置文件610定义了对于相应组中的服务器150收集哪些数据以及这种数据收集的采样间隔。基于配置文件610,收集器620可以以相应的时间间隔收集指定的数据。上载器630可以耦合到收集器620,并且可以附加地(可以以由配置字段610指定的周期)将数据发送到中央监视器210。
图3是示出中央监视器210的其他方面的系统图300。中央监视器210可以包括从各个租户1101…M接收请求并且可以附加地向租户1101…M发送对请求的响应的路由器215。路由器215可以与用于向服务器1501…N分派请求并且附加地从服务器1501…N接收响应的处理器217连接。例如,路由器215可以根据各种策略将请求路由到服务器组中的特定服务器150。这些策略可以提供,例如,包括策略(a):对于新请求,选择基于当前和/或预计工作负载的服务器组、策略(b):对于新请求,仅考虑资源消耗数据、或策略(c):考虑策略(a)和策略(b)两者。。在一些情况下,第一形式的请求可以被分配第一策略,并且第二形式的请求可以被分配不同的第二策略。处理器217负责执行策略,并且如上所述的,向服务器1501…N分派请求。中央监视器210可以附加地包括从服务器组监视器2201…N/2接收各种统计数据的收集器218。数据处理器219可以利用收集器218获得的信息来生成租户表212和服务器组表214。
如上所述,中央监视器210可以生成和维护可以是每个租户的聚合统计数据(诸如请求的数量、请求的数据大小、响应的数据大小、对于每个租户的请求和相关联的响应之间的时间)的表的租户表212。中央监视器210可以附加地通过组合(通常通过添加)每个组中每个服务器的CPU、内存、IO、线程计数等来生成和维护可以是每个服务器组的属性/统计数据的表的服务器表214。表212、214两者都可以利用特定的时间窗口,使得只有特定的历史数据(例如,最后10秒、最后30秒、最后一分钟、最后一小时、12小时、一天、一周的一部分(如周一至周五或周六至周日)、一个或多个周、一个月、三个月等)如下所示用于计算度量。
当负载均衡器140接收到来自租户110的第一请求时,负载均衡器通过遍历服务器表214(其基于由各个组监视器220周期性发送并由中央监视器210周期性接收的信息)来将该请求重新定向到所指示的最空闲的服务器组。在一些情况下,如果被分配给最空闲的服务器组的租户的历史使用指示这样的服务器组可能在处理第一请求时变得忙于处理请求,则负载均衡器140可以将第一请求重新定向到不同的服务器组(即,不是最空闲的服务器组)。在这种情况下,通过最小化特定服务器组因请求而负担过重的可能性来均衡高速缓存命中率。当从同一租户110接收到后续请求时,负载均衡器140将该请求重新定向到与第一请求相同的服务器组(而不管来自该服务器组的当前负载如何)。采用这种安排,高速缓存命中率至少为50%。
将以类似方式处理从其他租户后续接收到的请求;即,将请求分派给服务器表214所指示的、具有最少需求的服务器组(即最空闲的组)。
如上所述,组监视器2201…N/2可以持续地向中央监视器210报告它们的数据,使得当前资源消耗数据可以被聚合并存储在服务器表214中。
中央监视器210可以附加地跟踪请求的总数、响应时间或针对每个租户110可以获得的其他信息,并在租户表212中对数据进行聚合和排序。这些项目/属性可以构成租户度量的一部分,例如,可以具有不同的权重。例如,这些属性可以构成逻辑回归模型的一部分,并且是可配置的。例如,一些应用和/或系统可能具有不同的权重。对于某些应用,响应时间可能至关重要,因此,与响应时间相关的属性可能比与资源消耗相关的属性权重更大。此外,还可以调整权重以均衡相对比例,其中一些属性可以是整数,并且其他属性可以是整数的分数,因此被较大值的整数属性所掩盖。
租户的度量可以是逻辑回归,其中与租户相关的属性被加权,诸如Ti=requestNumber i*w1+responseTime1i*w2+……。
服务器组的度量可以类似地是逻辑回归,其中与服务器组的性能相关的属性可以是Gi=CPU Usagei*w’1+Memoryi*w’2+IOi*W’3+……。
每个服务器组220可以具有共享同一数据库资源的两个对等服务器150。如果一个服务器150停机或负载过重(即负载超过阈值等),则对特定组的请求将由另一个服务器150处理。在一些变型中,属性CPU Usagei是服务器组220的平均CPU使用。如果有两个活跃服务器150,则CPU Usagei=(服务器1CPU Usagei+服务器2CPU Usagei)/2。
在(管理员可以定义的)配置阶段时段过去之后,将有两个经排序的表。如本文所提供的,可以假设租户经排序的统计数据是T1>T2>T3>……;并且服务器组经排序的统计是G1>G2>G3>……。
根据租户表212中租户经排序的统计数据,租户110可以被分为N/2个组,使得每个组具有相似的度量总和Ti。如图4所示的,在运行时阶段,这些租户组4101..N在逻辑上是相关的(与包括专用或组合的硬件相反)。例如,组4101..N可以是(T1,T2)、(T3,T4,T5,T6,T7)、(T8,T9,…T30)、(T31,……),使得
作为配置阶段的一部分,中央监视器210可以生成将服务器组映射到租户组的组映射表216(参见图4的图400)。还参考图5的图500,数据处理器219可以基于如图2所示的配置阶段中生成的租户表212和服务器组表214来生成组映射表216。例如,下面的表1提供组映射表216。
表1
一旦生成了组映射表216,负载均衡器140将根据组映射表216重新定向请求。对于请求,高速缓存命中率约为50%。通过将租户分组到两个服务器上,可以避免/减少出现意外的大量请求并且一个服务器无法充分处理这些请求的情况。换句话说,有两个或更多个服务器允许进行备份,同时提高高速缓存命中率和系统稳定性。在一些变型中,可以基于变化的服务器组度量(例如,当前资源消耗等)和/或变化的租户度量来连续地或周期性地更新组映射表216。
图7是示出在配置阶段期间出现的特定方面和在运行时期间出现的特定方面的图700。应当理解,在一些变型中,租户和服务器监视可以是连续的,使得组映射表在运行时期间被附加地更新。参考图7,在710中,接收初始租户请求以供云计算系统处理。在720中,当接收到这些请求时,负载均衡器将这些请求路由到最空闲的服务器组。例如,可以通过访问作为对于服务器负载周期性(例如,从亚秒到每几分钟等)更新的服务器组表来确定最空闲的服务器组。一旦出现了初始路由,在730中,来自同一服务器的后续请求被路由到该同一服务器组。在740中,在逐租户的基础上,监视与对请求的执行和/或处理相关联的各种统计数据。此外,在750中,当处理请求时,监视服务器资源消耗。然后,在760中,使用所监视的信息(与租户请求和服务器负载两者相关)来生成组映射表。该组映射表被配置为在执行后续接收到的请求时优化服务器的命中率。
一旦生成了组映射表,就可以在运行时期间使用该组映射表。特别地,在770中,云计算系统接收到源自多个租户的多个请求。然后,在780中,负载均衡器基于组映射表(如上所述被配置为优化高速缓存命中率)分派将由多个服务器组之一处理的每个请求。在790中,云计算系统向各个租户提供由各个服务器组生成的对请求的响应。如上所述,可以连续地或周期性地监视请求统计数据和资源消耗中的一个或多个,使得组映射表可以相应地被更新,以便在云计算系统随后遇到变化的租户负载情况时优化高速缓存命中率。
图8是示出用于实现本文所描述的各个方面的示例计算设备架构的图800。总线804可以用作互连硬件的其他所示组件的信息高速公路。标记为CPU(中央处理单元)的处理系统808(例如,给定计算机或多个计算机处的一个或多个计算机处理器/数据处理器)可以执行运行程序所需的计算和逻辑操作。诸如只读存储器(ROM)812和随机访问存储器(RAM)816的非暂时性处理器可读存储介质可以与处理系统808通信,并且可以包括用于这里所指定的操作的一个或多个编程指令。可选地,程序指令可以存储在非暂时性计算机可读存储介质(诸如磁盘、光盘、可记录存储器设备、闪存或其他物理存储介质)上。
在一个示例中,盘控制器848可以通过系统总线804与一个或多个可选盘驱动器接口。这些盘驱动器可以是外部或内部软盘驱动器(诸如860),外部或内部或或固态驱动器(诸如852)、或者外部或内部硬盘驱动器856。如前所述,各种盘驱动器852、856、860和盘控制器是可选设备。系统总线804还可以包括至少一个通信端口820,以允许与物理连接到计算系统或者通过有线或无线网络在外部可用的外部设备进行通信。在一些情况下,至少一个通信端口820包括或以其他方式包含网络接口。
为了提供与用户的交互,本文所描述的主题可以在计算设备上实现,该计算设备具有用于经由显示接口814向用户显示从总线804获得的信息的显示设备840(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器),以及用户可以通过其向计算机提供输入的输入设备832,诸如键盘和/或定点设备(例如,鼠标或轨迹球)和/或触摸屏。还可以使用其他类型的输入设备832来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、通过麦克风836的听觉反馈、或触觉反馈);并且可以以任何形式(包括声音、语音或触觉输入)接收来自用户的输入。输入设备832和麦克风836可以经由输入设备接口828耦合到总线804并经由总线804传送信息。诸如专用服务器的其他计算设备可以省略显示器840和显示接口814、输入设备832、麦克风836和输入设备接口828中的一个或多个。
本文所描述的主题的一个或多个方面或特征可以以数字电子电路、集成电路、专门设计的专用集成电路(ASIC)、现场可编程门阵列(FPGA)计算机硬件、固件、软件和/或其组合来实现。这些不同的方面或特征可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实现方式,该可编程系统包括至少一个可编程处理器,该可编程处理器可以是专用的或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。可编程系统或计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过运行在相应计算机上并且彼此之间具有客户端-服务器关系的计算机程序产生的。
这些计算机程序,也可以被称为程序、软件、软件应用、应用、组件或代码,包括用于可编程处理器的机器指令,并且可以用高级过程语言、面向对象的编程语言、功能编程语言、逻辑编程语言和/或汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备,诸如磁盘、光盘、存储器和可编程逻辑期间(PLD),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。机器可读介质可以非暂时性地存储这样的机器指令,诸如非瞬态固态存储器或磁硬盘驱动器或任何等效的存储介质。机器可读介质可以替代地或附加地以瞬态方式存储这样的机器指令,诸如例如与一个或多个物理处理器核相关联的处理器高速缓存或其他随机访问存储器。
在以上描述和权利要求中,诸如“……中的至少一个”或“……中的一个或多个”的短语可以出现在元素或特征的连接列表之后。术语“和/或”也可以出现在两个或更多个元素或特征的列表中。除非与使用其的上下文隐式地或显式地相矛盾,否则这样的短语意在表示单独列出的任何元素或特征,或者任何列举的元素或特征与任何其他列举的元素或特征的组合。例如,短语“A和B中的至少一个”、“A和B中的一个或多个”以及“A和/或B”各自旨在表示“单独的A、单独的B、或者A和B一起”。类似的解释也旨在包含三个或更多个项目的列表。例如,短语“A、B和C中的至少一个”、“A、B和C中的一个或多个”以及“A、B和/或C”各自旨在表示“单独的A、单独的B、单独的C、A和B一起、A和C一起、B和C一起、或者A和B和C一起”。此外,以上描述和权利要求中使用的术语“基于”旨在表示“至少部分地基于”,使得未引用的特征或元素也是允许的。
取决于期望的配置,本文所描述的主题可以体现在系统、装置、方法和/或物品中。前述描述中阐述的实现方式不代表与本文描述的主题一致的所有实现方式。相反,它们仅仅是与所描述的主题相关的方面一致的一些示例。尽管上面已经详细描述了一些变化,但是其他修改或添加也是可能的。特别地,除了在此阐述的特征和/或变化之外,还可以提供进一步的特征和/或变化。例如,上述实现方式可以针对所公开的特征的各种组合和子组合和/或以上公开的若干个进一步特征的组合和子组合。此外,附图中描绘的和/或本文描述的逻辑流程不一定需要所示的特定顺序或依次序来实现期望的结果。其他实现方式可以在所附权利要求的范围内。
Claims (20)
1.一种计算机实现的方法,包括:
由云计算系统接收源自多个租户的多个请求;
由构成云计算系统的一部分的负载均衡器基于组映射表将每个请求分派到多个服务器组之一,每个服务器组包括多个服务器,每个服务器组将每个请求分派到所述服务器组内的多个服务器之一;以及
由所述云计算系统向各个租户提供由各个服务器组内的各个服务器生成的对所述请求的响应;
其中,所述组映射表通过以下方式生成:
对租户中的每一个的历史请求统计数据进行第一监视;
对多个服务器组在处理来自租户的请求时的当前资源消耗进行第二监视;以及
基于所述第一监视和第二监视,依次关联每个租户与服务器组之一。
2.根据权利要求1所述的方法,其中,存在N个服务器和N/2个服务器组。
3.根据权利要求2所述的方法,还包括:基于根据由服务器的当前资源消耗生成的值的加权来生成服务器组度量,所述当前资源消耗包括中央处理单元(CPU)使用、内存消耗和输入/输出(I/O)消耗。
4.根据权利要求3所述的方法,还包括:基于根据租户的历史请求度量而对每个租户生成的值的加权来生成租户度量,所述租户的历史请求度量包括所监视的请求的数量和处理请求的响应时间。
5.根据权利要求4所述的方法,其中,所述组映射表被配置为创建具有基本相似的聚合租户度量的租户组。
6.根据权利要求1所述的方法,其中,与每个服务器组相关联的组监视器提供服务器组在处理来自租户的请求时的当前资源消耗。
7.根据权利要求6所述的方法,其中,所述组监视器是在各个服务器组的服务器上执行的软件代理。
8.根据权利要求7所述的方法,其中,所述组监视器将当前资源消耗信息发送到构成负载均衡器的一部分的中央监视器。
9.根据权利要求8所述的方法,其中,所述中央监视器在与负载均衡器不同且分离的服务器上执行。
10.根据权利要求8所述的方法,其中,所述中央监视器是由负载均衡器执行的代理。
11.一种系统,包括:
至少一个数据处理器;以及
存储器,存储指令,所述指令当被所述至少一个数据处理器执行时,导致操作,所述操作包括:
由云计算系统接收源自多个租户的多个请求;
由构成云计算系统的一部分的负载均衡器基于组映射表将每个请求分派到多个服务器组之一,每个服务器组包括多个服务器,每个服务器组将每个请求分派到所述服务器组内的多个服务器之一;以及
由云计算系统向各个租户提供由各个服务器组内的各个服务器生成的对请求的响应;
其中,所述组映射表通过以下方式生成:
对租户中的每一个的历史请求统计数据进行第一监视;
对多个服务器组在处理来自租户的请求时的当前资源消耗进行第二监视;以及
基于第一监视和第二监视,依次关联每个租户与服务器组之一。
12.根据权利要求11所述的系统,其中,存在N个服务器和N/2个服务器组。
13.根据权利要求12所述的系统,其中,所述操作还包括:基于根据由服务器的当前资源消耗生成的值的加权来生成服务器组度量,所述当前资源消耗包括中央处理单元(CPU)使用、内存消耗和输入/输出(I/O)消耗。
14.根据权利要求13所述的系统,其中,所述操作还包括:基于根据租户的历史请求度量而对每个租户生成的值的加权来生成租户度量,所述租户的历史请求度量包括所监视的请求的数量和处理请求的响应时间。
15.根据权利要求14所述的系统,其中,所述组映射表被配置为创建具有基本相似的聚合租户度量的租户组。
16.根据权利要求11所述的系统,其中,与每个服务器组相关联的组监视器提供服务器组在处理来自租户的请求时的当前资源消耗。
17.根据权利要求16所述的系统,其中,所述组监视器是在各个服务器组的服务器上执行的软件代理。
18.根据权利要求17所述的系统,其中,所述组监视器将当前资源消耗信息发送到构成负载均衡器的一部分的中央监视器。
19.根据权利要求11所述的系统,其中,构成负载均衡器的一部分的中央监视器提供租户的历史请求统计数据,并且是由负载均衡器执行的代理。
20.一种计算机实现的方法,包括:
对与云计算系统接收到的源自多个租户中的每一个的多个请求相关联的请求统计数据进行第一监视;
对在处理由云计算系统接收到的多个请求时构成云计算系统的一部分的服务器组的资源消耗进行第二监视;
基于第一监视生成每个租户的租户度量;
基于第二监视生成每个服务器组的服务器组度量;
基于所生成的租户度量和所生成的服务器组度量来生成组映射表,所述组映射表被配置为优化服务器组的高速缓存命中率;
由云计算系统接收源自多个租户的多个新请求;
由构成云计算系统的一部分的负载均衡器基于所述组映射表来将每个新请求分派到多个服务器组之一,每个服务器组包括多个服务器,每个服务器组将每个请求分派到所述服务器组内的多个服务器之一;以及
由云计算系统向各个租户提供由各个服务器组内的各个服务器生成的对新请求的响应。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/091,974 US11153374B1 (en) | 2020-11-06 | 2020-11-06 | Adaptive cloud request handling |
US17/091,974 | 2020-11-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114449042A true CN114449042A (zh) | 2022-05-06 |
Family
ID=78083051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111268722.1A Pending CN114449042A (zh) | 2020-11-06 | 2021-10-29 | 自适应云请求处理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11153374B1 (zh) |
EP (1) | EP3995958A1 (zh) |
CN (1) | CN114449042A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2008226428A1 (en) * | 2007-03-12 | 2008-09-18 | Citrix Systems, Inc. | Systems and methods for load balancing based on user selected metrics |
US20160021196A1 (en) * | 2014-07-17 | 2016-01-21 | Microsoft Corporation | Processing changes in a multi-tenant system |
US20170264679A1 (en) * | 2016-03-11 | 2017-09-14 | International Business Machines Corporation | Load balancing based on user behavior prediction |
US20180183671A1 (en) * | 2016-12-22 | 2018-06-28 | Salesforce.Com, Inc. | Methods and systems for protecting computing resources |
CN108829507A (zh) * | 2018-03-30 | 2018-11-16 | 北京百度网讯科技有限公司 | 分布式数据库系统的资源隔离方法、装置和服务器 |
CN109314704A (zh) * | 2016-09-14 | 2019-02-05 | 甲骨文国际公司 | 用于多租户身份和数据安全管理云服务的单点登录和单点注销功能 |
US10728317B1 (en) * | 2019-02-11 | 2020-07-28 | Verizon Patent And Licensing, Inc. | Usage-based server load balancing |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7346695B1 (en) * | 2002-10-28 | 2008-03-18 | F5 Networks, Inc. | System and method for performing application level persistence |
US6374300B2 (en) * | 1999-07-15 | 2002-04-16 | F5 Networks, Inc. | Method and system for storing load balancing information with an HTTP cookie |
US6859834B1 (en) * | 1999-08-13 | 2005-02-22 | Sun Microsystems, Inc. | System and method for enabling application server request failover |
US7584262B1 (en) * | 2002-02-11 | 2009-09-01 | Extreme Networks | Method of and system for allocating resources to resource requests based on application of persistence policies |
US20030225859A1 (en) * | 2002-05-31 | 2003-12-04 | Sun Microsystems, Inc. | Request mapping for load balancing |
US7185096B2 (en) * | 2003-05-27 | 2007-02-27 | Sun Microsystems, Inc. | System and method for cluster-sensitive sticky load balancing |
US20070233843A1 (en) * | 2006-03-30 | 2007-10-04 | Gabriele Frey-Ganzel | Method and system for an improved work-load balancing within a cluster |
US9268663B1 (en) * | 2012-04-12 | 2016-02-23 | Amazon Technologies, Inc. | Software testing analysis and control |
US9478221B2 (en) * | 2013-02-05 | 2016-10-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Enhanced audio frame loss concealment |
US9800567B2 (en) * | 2014-03-31 | 2017-10-24 | Sap Se | Authentication of network nodes |
US10320680B1 (en) * | 2015-11-04 | 2019-06-11 | Amazon Technologies, Inc. | Load balancer that avoids short circuits |
US10659366B1 (en) * | 2015-11-04 | 2020-05-19 | Amazon Technologies, Inc. | Load balancer metadata forwarding on secure connections |
-
2020
- 2020-11-06 US US17/091,974 patent/US11153374B1/en active Active
-
2021
- 2021-10-29 CN CN202111268722.1A patent/CN114449042A/zh active Pending
- 2021-11-05 EP EP21206653.4A patent/EP3995958A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2008226428A1 (en) * | 2007-03-12 | 2008-09-18 | Citrix Systems, Inc. | Systems and methods for load balancing based on user selected metrics |
US20160021196A1 (en) * | 2014-07-17 | 2016-01-21 | Microsoft Corporation | Processing changes in a multi-tenant system |
US20170264679A1 (en) * | 2016-03-11 | 2017-09-14 | International Business Machines Corporation | Load balancing based on user behavior prediction |
CN109314704A (zh) * | 2016-09-14 | 2019-02-05 | 甲骨文国际公司 | 用于多租户身份和数据安全管理云服务的单点登录和单点注销功能 |
US20180183671A1 (en) * | 2016-12-22 | 2018-06-28 | Salesforce.Com, Inc. | Methods and systems for protecting computing resources |
CN108829507A (zh) * | 2018-03-30 | 2018-11-16 | 北京百度网讯科技有限公司 | 分布式数据库系统的资源隔离方法、装置和服务器 |
US10728317B1 (en) * | 2019-02-11 | 2020-07-28 | Verizon Patent And Licensing, Inc. | Usage-based server load balancing |
Also Published As
Publication number | Publication date |
---|---|
US11153374B1 (en) | 2021-10-19 |
EP3995958A1 (en) | 2022-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9081624B2 (en) | Automatic load balancing, such as for hosted applications | |
KR100586283B1 (ko) | 동적 쓰레드 풀 조정 방법 | |
JP3817541B2 (ja) | プログラムに基づいた応答時間ベースの作業負荷分配技法 | |
US9766960B2 (en) | Workload-driven techniques for providing biased service level guarantees | |
Wang et al. | Multi-resource fair allocation in heterogeneous cloud computing systems | |
US9934473B2 (en) | Selecting a synchronous or asynchronous process to determine a forecast | |
US20110078303A1 (en) | Dynamic load balancing and scaling of allocated cloud resources in an enterprise network | |
US20050256971A1 (en) | Runtime load balancing of work across a clustered computing system using current service performance levels | |
US8875152B2 (en) | System, method and computer program product for dynamically increasing resources utilized for processing tasks | |
US9137325B2 (en) | Efficiently isolating malicious data requests | |
WO2020086956A1 (en) | Collecting samples hierarchically in a datacenter | |
US20170357681A1 (en) | Dynamic in-flight database request throttling | |
Hu et al. | Job scheduling without prior information in big data processing systems | |
Zaouch et al. | Load balancing for improved quality of service in the cloud | |
US11126608B2 (en) | Techniques and architectures for partition mapping in a multi-node computing environment | |
KR20070032441A (ko) | 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법 | |
CN114449042A (zh) | 自适应云请求处理 | |
CN107911484B (zh) | 一种消息处理的方法及装置 | |
Gohad et al. | Model driven provisioning in multi-tenant clouds | |
Wang et al. | Model-based scheduling for stream processing systems | |
Xia et al. | A $ c/\mu $-Rule for Service Resource Allocation in Group-Server Queues | |
Hu et al. | Low latency big data processing without prior information | |
US8589540B2 (en) | System, method and computer program product for determining a rate at which an entity is polled | |
Brar et al. | A survey of load balancing algorithms in cloud computing | |
US11409570B2 (en) | Dynamic management of system computing resources |
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 |