CN1610347B - 在基于群集的系统内管理性能及资源利用率的方法和设备 - Google Patents

在基于群集的系统内管理性能及资源利用率的方法和设备 Download PDF

Info

Publication number
CN1610347B
CN1610347B CN2004100841874A CN200410084187A CN1610347B CN 1610347 B CN1610347 B CN 1610347B CN 2004100841874 A CN2004100841874 A CN 2004100841874A CN 200410084187 A CN200410084187 A CN 200410084187A CN 1610347 B CN1610347 B CN 1610347B
Authority
CN
China
Prior art keywords
request
communication delay
data processing
monitored
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2004100841874A
Other languages
English (en)
Other versions
CN1610347A (zh
Inventor
吉利施·彼姆拉奥·莎弗勒
曼加拉·格维利·南达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1610347A publication Critical patent/CN1610347A/zh
Application granted granted Critical
Publication of CN1610347B publication Critical patent/CN1610347B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/083Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed

Abstract

本发明公开一种方法、设备、和计算机程序,用于改进基于群集的数据处理系统的性能及资源利用率。根据这些节点之间被监测的通信性能,调整系统的第一和第二数据处理单元之间的持续连接数。被监测性能的测量,是这些节点之间的排队延迟,而随着变化的负载条件使排队延迟增加和减少,该连接数也增加和减少。一种建立和关闭持续连接的方法,用于对前端网关计算机与后端服务器每一个群集之间被监测的排队延迟,作出响应,改进基于群集的Web服务器的性能或提供Web服务的性能。不需要的连接被关闭,以便能把系统资源分配给其他的处理。

Description

在基于群集的系统内管理性能及资源利用率的方法和设备
技术领域
本发明涉及在数据处理系统内例如基于群集(cluster-based)的系统内,用于管理性能或资源利用率,或性能与资源利用率两者的方法、设备、和计算机程序。
背景技术
基于群集的体系结构,是一种主管(hosting)许多互连网应用程序,如Web服务器或Web服务程序的有用的平台。基于群集的系统包括由局域网连接至一组后端节点的前端(网关)节点。该前端节点接收请求,并把请求转发至实际处理这些请求的后端节点。基于群集的系统有许多优点,包括增量的可缩放性、增加的可用性及性能、费用控制和维护。因此,群集被用于可缩放的Web服务器,见M.Aron,D.Sanders,P.Druschel,and W.Zwaenepoel的“Scalable Content-Aware RequestDistribution in Cluster-based Network Servers”,Proceedings of 2000USENIX Annual Technical Conference,2000年6月,及见M.Aron,P.Druschel,and W.Zwaenepoel的“Efficient Support for P-HTTP inCluster-based Web Servers”Proceedings of 1999 USENIX AnnualTechnical Conference,1999年6月。
在基于群集的网络服务器内,一种使用基于内容的请求分配的专用技术,由V.S.Pai,M.Maron,G.Banga,M.Svendsen,P.Druschel,W.Zwanenepoel,and E.Nahum等人在下述文章中说明:“Locality-AwareRequest Distribution in Cluster-based Network Servers”,Proceedings of8th ACM Conference on Architectural Support for Programming Languagesand Operating System,1998年10月。位置识别的请求分配(locality-awarerequest distribution,LARD)包括,在后端服务器把数据分为若干部分,并按照考虑数据存储地点的方式,使用前端分配进入的请求。
基于群集的体系结构,还适合用于提供Web服务程序,见E.Casalicchio and M.Colajanni,“A Client-Aware Dispatching Algorithmfor Web Clusters Providing Multiples Services”,Proceedings of the 10thInternational Eorld Wide Web Conference,2001年5月。把群集用于提供互连网服务程序的优点,见A.Fox,S.Gribbe,Y.Chawathe,E.Brewerand P.Gauthier“Cluster-based Scalable Network Services”,Proceedingsof the Sixteenth ACM Symposium on Operating System Principles,1997年10月。
M.Welsh,D.Culler and E.Brewer,在2001年10月的“SEDA:AnArchitecture for Well-Conditioned,Scalable Internet Services”,Proceedings of 18th Symposium on Operating System Principles(SOSP’01)中,说明一种用于高并发的服务器应用程序的构架,该构架使用基于事件编程模型的线程操作和方面,提供自动调谐来响应大的负载变化。该构架被称为分级的事件驱动体系结构(SEDA)。各级被事件队列分开,并为响应负载的变化,包括动态地调整资源分配和调度的控制器。每一级线程存储池的大小,根据监测的事件队列长度调整。
已经尝试用各种机制改进基于群集的系统的性能-包括高速缓存、负载均衡、和用户的越区切换(如TCP越区切换)。前端可以分配请求,使后端节点之间的负载均衡,并可以根据用户、请求内容、当前资源使用、或调度算法,来分配负载。已经知道,基于群集的负载分配,可改进可缩放性、可用性、和互连网服务的故障容限。已经在文献中报告了各种用于请求转发的越区切换机制。但是,这些机制通常要求改变操作系统,因而不可能是便携式的。
在“On the Use of Virtual Channels in Networkstations withIrregular Topology”,IEEE Transactions Parallel and DistributedSystems,Vol.11,No.8,2000年8月,813-828页中,F.Silla和J.Duato说明一种流量控制协议,用于支持实施自适应路由的工作站网络中的许多虚拟信道。该流量控制协议使用信道流水线技术并查找最小的控制业务量。
已公开的美国专利申请第2002/0055980号、2002/0055982号、和2002/0055983号(Goddard)说明一种与分配器有多个持续连接的服务器计算机。为了改进后端服务器性能,分配器监测后端服务器的性能,或者控制并发地处理的数据请求的数量,或者控制并发地支持连接的数量。
虽然为改进基于群集的系统的性能,已经做了许多工作,但仍有进一步改进的余地。例如,现有的基于群集的系统,并没有有效地利用前端与后端之间的网络带宽。现有的基于群集的系统,没有充分开发多连接的优点。现有系统一般按静态设计,不适于系统变化的工作负载。此外,现有系统一般根据直接的网络子系统(如TCP/IP),并不开发中介网络子系统的优点(如Java Messaging Service,Java电子信函服务)。
发明内容
本发明的第一方面,是提供一种方法,用于管理数据处理系统数据处理单元之间的连接。通过在系统的第一与第二数据处理单元之间建立多个持续连接,提供并发性利益。数据处理单元之间的最佳连接数,与系统上的负载有关(如并发的客户请求数),也与数据处理单元之间发送的请求类型有关(数据密集型/CPU密集型)。本方法包括监测从系统第一数据处理单元传输至第二数据处理单元的请求的通信延迟,并在被监测的通信延迟表明某种预定性能条件时,作出响应,修改第一和第二数据处理单元之间的持续连接数。
本申请所说的“连接”,包括在该连接端点之间通信信道的物理确立。建立“连接”,通常包括交换和存储连接端点地址的标识,以及使用的通信端口号码,还为经过该连接的通信的使用,保留资源-诸如系统存储器和缓冲存储区。虽然受可用的通信带宽的限制,但在两个计算机系统之间,可能有大量规定给予单个物理链路上使用的连接可供使用。“持续连接”是一种在多个请求上持续存在的连接。
本发明的第一实施例,提供一种用于管理计算机系统数据处理单元之间持续连接的方法,其中,第一数据处理单元与第二数据处理单元连接,以便把请求发送到第二数据处理单元处理,本方法包括的步骤有:
监测从第一数据处理单元传输至第二数据处理单元的请求的通信延迟周期;
把被监测的延迟周期与阈值延迟周期比较,确定被监测的延迟周期是否表明某种预定性能条件;和
在确定监测的延迟周期表明该预定性能条件时,作出响应,调整第一和第二数据处理单元之间的连接数。
本方法可以在基于群集的数据处理系统内使用,用于管理系统前端‘分配器’或‘网关’节点与后端处理节点的每一群集之间的持续连接。
为了扣除第二数据处理单元上的处理时间,通信延迟可以计算如下。按照本发明一个实施例,被监控的通信延迟是用第一时间标记与第二时间标记之差,减去实际处理该请求的时间(该实际处理时间是在第二数据处理单元上测量的)计算的。该第一时间标记是请求从第一数据处理单元发送至第二数据处理单元时产生的,该第二时间标记是当对所述请求的响应被第一数据处理单元从第二数据处理单元接收时产生的。这样计算的等于时间标记之差减去处理时间的时间周期,被称为排队延迟。个别请求的大小及其他特性,对排队延迟的影响,不如对总的响应时间的影响大。
在一个具体的实施例中,本方法对被监测的延迟周期超过第一阈值延迟周期时,作出响应,启动附加连接的建立,在第一与第二数据处理单元之间建立至少一个附加连接(以连接数不超过最大值为限,在该最大值以上,性能对某些负载水平恶化)。第一阈值延迟周期,最好作为表示最小延迟周期的值确定,对该最小延迟周期值,添加一个或多个连接能使通信延迟降低一定量,可以证明该添加是合理的。
在一个实施例中,还定义第二阈值延迟周期,并且在确定被监测的延迟周期小于该第二阈值延迟周期时,作出响应,至少删除第一与第二数据处理单元之间的一个连接(以保留至少一个连接为条件)。第二阈值延迟周期最好标识为在该阈值以下的延迟周期,删除一个或多个连接,不会导致延迟周期增加不可接受的量。
本发明第二实施例是提供一种数据处理系统,该系统包括:
第一数据处理单元,用于从客户请求者接收请求,并把接收的请求传递至第二数据处理单元,还用于从第二数据处理单元接收响应,并把接收的响应转发至客户请求者;
第二数据处理单元,用于处理从第一数据处理单元接收的请求,产生响应,并把响应转发至第一数据处理单元;和
连接管理器,用于管理第一与第二数据处理单元之间的连接数,该连接管理器能对表明某种预定性能条件的第一与第二数据处理单元之间被监测的通信延迟,作出响应,修改第一与第二数据处理单元之间的持续连接数。
本发明第三实施例,是提供一种数据处理系统,该系统包括:
网络子系统;
网关节点,用于从客户请求者接收请求,并把接收的请求传递至网络子系统,以便送至一组后端处理节点之一,还用于经过网络子系统从后端处理节点接收响应,并把接收的响应转发至客户请求者;和
一组后端处理节点,用于处理经过网络子系统从网关节点接收的请求,产生响应,还用于把响应经过网络子系统转发至网关节点;
连接管理器,用于管理网关节点与每一个后端节点之间的连接数,该连接管理器能对表明某种预定性能条件的网关节点与后端处理节点之间被监测的通信延迟,作出响应,修改网关节点与后端处理节点中至少第一个之间的持续连接数。
在一个实施例中,监测通信延迟并对该组后端节点求平均,还在每一后端节点与网关节点之间提供相等数量的连接。在一个优选实施例中,连接管理器在被监测的通信延迟超过第一延迟阈值时,作出响应,增加网关节点与每一个后端处理节点之间的持续连接数,还在被监测的通信延迟小于第二延迟阈值时,作出响应,减少网关节点与每一个后端处理节点之间的持续连接数。
再一个实施例是提供一种管理网关节点与一组后端处理节点每一个之间持续连接的方法,这些后端处理节点安排在数据处理系统中的群集内,本方法包括的步骤有:
监测从网关节点传送到后端处理节点的请求的通信延迟周期;
把被监测的通信延迟周期与阈值通信延迟周期比较,确定被监测的通信延迟周期是否表明某种预定性能条件;和
在确定被监测的通信延迟周期表明某种预定性能条件时,作出响应,调整网关节点与至少一个该组后端节点之间的连接数。
再一个实施例是提供一种计算机程序产品,包括记录在记录媒体上的程序码,用于控制执行该程序码的数据处理系统的操作,该程序码包括连接管理器,用于管理系统的第一数据处理单元与第二数据处理单元之间的连接数,管理步骤如下:
监测从第一数据处理单元传输至第二数据处理单元的请求的通信延迟周期;
把被监测的通信延迟周期与阈值通信延迟周期比较,确定被监测的通信延迟周期是否表明某种预定性能条件;和
在确定被监测的延迟周期表明某种预定性能条件时,作出响应,调整第一和第二数据处理单元之间的连接数。
按照本发明实施例的方法、系统、和计算机程序,可以用于使用中介的或直接连接的网络子系统的系统,以便对系统负载的改变作出响应,修改系统节点之间的连接数。同样,按照本发明实施例的方法和系统,能够结合现有方案工作-例如结合负载平衡,或结合自适应盒子(container)工作-以进一步改进系统的性能。
附图说明
下面,通过举例方式,参照附图说明本发明的实施例,附图中:
图1画出基于群集系统的体系结构示意图;
图2A是曲线,表示通过量随连接数的变化,说明并发性对性能的影响;
图2B是曲线,表示排队延迟随连接数的变化,说明并发性对性能的影响;
图3画出连接数的上限,超出该上限,增加连接数不能改进通过量;
图4按照本发明的一个实施例,画出计算排队延迟的方法;
图5按照本发明的一个实施例,画出一种系统体系结构;和
图6按照本发明的一个实施例,画出添加或删除连接的方法的步骤。
具体实施方式
以下说明的某些部分,明显地或不明显地用算法和符号表示对计算机存储器内数据的操作。这些算法的描述和表示,是本领域熟练人员在数据处理领域,用于最有效地向本领域其他人员传达他们工作实质的手段。一种算法可以设想为能导致需要结果的、自洽的一系列步骤。这些步骤是要求对物理量进行物理操纵的步骤。这些物理量一般取电信号或磁信号的形式,能被存储、传送、组合、比较、或其他的操作。常常为了方便,把这些信号称为比特、值、单元、符号、字符、数字,等等。
但是,上述和类似的术语应能与适当的物理量关联,且仅仅是便于这些物理量的标记。除非另外特别声明,贯穿本说明书讨论中使用诸如“运算”、“计算”、“确定”、“比较”、“产生”、“选择”、“输出”等等术语,是指计算机系统或类似的电子装置中的动作和处理过程,这种动作和处理过程,操纵和变换计算机系统内寄存器和存储器中表示为物理(电子)量的数据,使之成为同样在计算机系统存储器或寄存器中,或其他该类信息存储、传输、或显示装置中表示为物理量的其他数据。
本说明书还公开用于实现本方法的操作的设备。这一设备可以专门按需要的目的构建,也可以由通用计算机组成,或由存储在计算机内的计算机程序有选择地激活或重新配置的其他装置组成。本文提出的算法,并不专门地涉及任何特定计算机或其他设备。各种一般用途的机器,可以与按照本文教导的程序一起使用。另外,为执行本方法要求的步骤,更加专业化的设备可能是适当的。
此外,本说明书还公开一种包含计算机程序的计算机可读媒体,该程序用于执行本方法的操作。本文考虑的计算机可读媒体,包括任何在源与目的地之间传输计算机程序的传输媒体。该传输媒体可以包括如磁盘或光盘之类的存储装置、存储芯片、或其他适合与通用计算机对接的存储装置。该传输媒体还可以包括硬布线的媒体,例如互连网系统中的媒体,或无线的媒体,例如GSM移动电话系统中的媒体。本文说明的任何计算机程序,不受任何特定编程语言及该语言的实施方案限制。显然,各种编程语言及其编码,都可以用来实施本文公开的教导内容。
当引用附图的任何一个或多个有相同参考数字的步骤或部件时,则所引用的那些步骤或部件,就本说明书而言有相同功能或操作,除非出现相反的注明。
群集概述
图1画出典型的、基于群集的系统的体系结构,本发明可以在其中实施。前端节点10对系统的数据处理节点,起网关的作用,并通过网络子系统30与后端节点20连接。前端节点从客户50接收请求,并负责把进入的请求以对客户透明的方式,分配至后端节点。后端节点20完成请求的主要处理,必要时接入数据库40,并直接地或经前端节点10,向客户50发回响应。
本发明不限于特定的数据处理硬件,图1所示的各种体系结构部件,都可以用适当的数据处理设备实施-包括分离的计算系统或集成在并行处理系统中的分离的数据处理单元(例如,后端处理节点20可以是单个系统的分离的处理单元)。但是,本发明可用于群集的Web服务器,在该Web服务器中,Web服务器软件运行在多个后端服务器计算机的每一个上。在这种情况中,每一个后端计算机20与网关服务器10协同运作。
前端与后端节点通过网络子系统30彼此连接,这种连接可以是与网络子系统的直接连接,也可以是与网络子系统通过中介的连接。在与子系统的直接连接中(如在TCP/IP实施方案中),前端与后端节点之间的持续连接是开放的;而在与子系统通过中介的连接中,连接经过前端与后端节点之间的代理。持续连接是一种在多个请求上持续的连接,所以不必对每一请求建立新的连接。每一个前端与后端节点都可用作消息的产生者和用户。
许多普通功能,如认证、接入控制、负载平衡、请求分配、和资源管理,由前端节点处理。前端节点运行提供这些功能的多线程服务器(即能够处理并发请求的服务器),并让后端节点专注于核心服务功能上。通常,前端节点分配请求时,力求后端节点间的负载均衡。
借助基于内容的请求分配,前端节点在判定客户请求应分配给哪一后端节点时,还要考虑请求的服务内容或类型。每一后端节点是一多线程服务器(盒子)并提供核心服务功能。本文使用普通术语“盒子”来标记后端节点,因为它包含Web服务,又是通用的可以在HTTP、TCP/IP、或JMS连接上监听的服务器。
系统的体系结构
下面举例说明一种系统体系结构。网关与一后端群集连接,使它们之间的通信,能用推/拉方法,和用简单的循环算法使负载在后端节点的群集上均衡。
该系统包括如下部件:
·有助于“推/拉”通信的代理。
·在HTTP上从客户接收请求的网关。该网关:
ο通过把进入的请求公布在指定的请求主题上,把请求推向代理;
ο通过把代理的响应署名在代理的相应响应主题上,从代理拉出响应;和
ο在开放的HTTP连接上,把响应发回客户。
·后端节点的群集。每一后端节点是一服务器,它:
ο部署/包含Web服务器;
ο通过署名在请求主题上,从代理拉出请求,并启用相关的web服务;和
ο通过把响应公布在响应主题上,把响应从web服务 代理。
在推/拉系统中,一旦公布者(或用户)建立了用于公布(或署名)的主题,则公布者(或用户)保持与代理的持续连接,并在该连接上推(拉)数据。
令N个后端盒子为C1、C2、...、CN。初始,每一盒子Ci准确地有一个请求主题“ReqTopicCi 1”和一个响应主题“ResTopicCi 1”。因此,在网关与每一后端盒子之间,有一个经过代理的持续连接。随着网关从客户接收每一请求,网关在主题“ReqTopicC1 1”上公布第一个请求,在主题“ReqTopicC2 1”上公布第二个请求,余类推,直至在主题“ReqTopicCN 1”上公布第N个请求为止。然后,按循环方式,再在主题“ReqTopicC1 1”上公布第(N+1)个请求,如此等等。
当负载增加时,若干请求在同一连接上排成流水线。就是说,若干个请求经过同一连接发送,不用等待网关在发送下一个请求前完成网关对请求的执行。类似的流水线技术也用于响应。在重的负载下,连接的流水线可能“已满”-就是说,为连接保留的计算机存储器和缓存器已经充满,不能再增加请求(或响应),直至现有的请求(或响应)已经处理完毕。这样导致把请求(或响应)传递到连接流水线上的延迟,从而导致把请求从网关传递到后端节点,及从后端节点传递到网关的延迟。该延迟被称为排队延迟。
为降低排队延迟,可以增加网关与每一后端盒子之间的持续连接数。例如,如果持续连接数增加到3,那么使用的请求主题,对后端节点C1将是“ReqTopicC1 1”、“ReqTopicC1 2”、和“ReqTopicC1 3”,对其余的盒子,情况类似。同样产生对应的响应主题。这一点在下面更详细说明。每一新连接的建立,涉及保留系统存储器及缓存器空间,和交换通信端口号码及网络地址,以便在连接端点之间传送数据时使用。新连接的建立,还涉及规定通信协议及服务参数质量(在某些系统中),或向代理注册(在通过中介连接的系统中)。删除连接则把保留的资源返还系统另作他用。把请求分配给多个连接,使用循环方法-但本发明不限于任何特定的工作负载共享或负载平衡算法。
性能特征
本系统的性能是以通过量测量的-在给定时间内系统可以服务的请求总数。测量通过量的时间称为循环周期。通过量受如下三个参数的影响:
·并发的客户数;
·对每一请求,前端节点与后端节点之间交换的消息(来自盒子的响应)的长度;和
·对每一请求,需要在后端节点(盒子)上进行的计算活动(CPU负载)。
这些参数的第一个,加在整个系统上,而其他两个参数,加在后端的盒子上。已经观察到,消息长度的增加(诸如当处理不断增加的数据密集型请求时)与计算活动的增加(诸如当处理不断增加的计算密集型请求时),有基本上相同的效应-两种盒子负载类型都导致通过量的下降。随着系统负载的增加,网关与后端节点之间的流水线已经用尽了它全部的容量。于是导致不能经现有的连接增加通过量,和排队延迟的随后增如。
下面详细说明(见“指定系统体系结构及算法”一节),在可用带宽约束条件内,增加连接数是有可能的(这对典型基于群集的系统是实质性的)。这样通过增加后端与前端节点之间的持续连接数,可降低排队延迟,从而改进整个系统的性能。图2对重的请求负载,画出持续连接数对通过量的影响。
具体说,图2A根据连接数的改变,画出并发性对以通过量变化表示的性能的影响。各曲线表示如下不同的持续连接数:曲线A表示1个连接;B表示5个连接;C表示15个连接;D表示20个连接;E表示30个连接;F表示60个连接;和G表示90个连接。
图2B根据连接数的改变,画出并发性对以排队延迟变化表示的性能的影响。在图2B中,被标记的各曲线表示如下不同的持续连接数:A=1、B=5、C=15、D=20、E=30、F=60、和G=90。
如图2A所示,给定并发客户数的系统的通过量,随持续连接数的增加而增加,直至某一点,超过该点,系统通过量开始恶化(如以曲线G为例子)。图2B反映类似的行为-排队延迟作为增加连接数的结果而下降-直至某一点,超过该点,排队延迟再次增加(如以曲线G为例子)。因此,存在连接数的上限,超出该上限,增加连接数不再对性能有利,反而有害。这种在连接数超过一最大数时性能的恶化和排队延迟的增加,部分归因于对资源的争用,例如对可用的缓存器存储器/系统存储器的争用,也部分归因于额外开销,例如同步化的处理。这种行为图3中画得更加清楚。
虽然图2和3画出实验的结果,把这些结果包括在本说明书内,仅作为举例,以说明定量的变化和通常的行为。特别是图2和3曲线表示的数值只是举例,且图2和3不代表相同的实验数据(所以,图中以曲线表示的数值之间是有差别的)。
图3中,标记的曲线各代表不同的并发客户数如下:P=10;Q=50;R=100;S=200;和T=250。对给定的并发客户数,通过量开始随连接数的增加而增加。超出给定的连接数,通过量随连接数的增加而迅速下降。例如,如图3代表250个并发客户的曲线T所示,随连接数从1增加到20,通过量迅速增加。超过20个连接,通过量迅速下降。
对轻的请求(就是既非CPU密集型,也非数据密集型),增加连接数不给出多大的利益,但对连接数的界限也小于重的请求(就是CPU密集型或数据密集型,或两者)。
监测系统的性能
基于群集的系统的性能特征,表明排队延迟(或“网络延迟”)是系统整体性能的一个重要的决定因素-不论负载或负载的类型。能够开发由多个连接(在界限内)提供的并发性的优点,以降低排队延迟和改进系统的整体性能。特别是,一种自适应系统能够随排队延迟的变化改变连接数,使之工作在最佳的区域。在本发明的实施例中,排队延迟被用作被监测的性能特征,而持续连接数被用作控制参数,以改进系统的整体性能。如图4所示,在网关用如下方法计算排队延迟(d)。
计算排队延迟(d)
现在参考图1和4,前端(网关)10从客户50接收请求,并在把该请求转发至后端20前,对请求加上时间标记(以时间标记TS1)。该时间标记作为本地数据,存储在网关10的控制线程中。后端接收该请求并处理该请求,还跟踪处理时间。后端20把表明处理该请求所用时间的数据,连同响应发送回去。在接收响应时,前端再次对请求加上时间标记(TS2)并用如下公式计算排队延迟:
d=(TS2-TS1)-处理时间
网关保持两个变数“TotalDelay(总延迟)”和“Count(计数)”,这两个变数在初始化时设为零。对每一个已完成的请求,“TotalDelay”递增延迟的值,而“Count”递增1。在循环结束时,以“Count”除“TotalDelay”,计算平均排队延迟(dAV)。
为了使排队延迟与连接数相关,把系统校准(或加“基准标记”)。这一校准涉及对平均排队延迟计算阈值(t),超出该阈值,不可能通过增加额外的连接来改进性能。还存在一上限(h),超出该上限,进一步增加连接事实上使性能恶化,所以还要校准系统来计算该上限。对一定连接数计算阈值和上限的方法,说明于后。
计算排队延迟阈值(t)
图2画出通过量的变化,和对各种不同连接数画出排队延迟与客户负载的关系。系统的校准,是对数据密集型和CPU密集型两种请求,通过对每一连接数和并发客户数,画出通过量和排队延迟曲线(如在图2A、2B、和3中所示)完成的。对通过量曲线,比较了1个连接和(1+a)个连接的两条性能曲线,并识别最小客户负载,在该负载上,通过量有x%的差。‘x’是对应于最小百分比差的配置参数,该配置参数证明修改连接数是合理的;x通常将随系统变化。在本实施例中,用于选择x的因素包括:系统的稳定性和使连接数振荡最小的比要性。如果x值太低,系统状态频繁被干扰(对通过量中的每一增量x%)。对较少数量的并发客户,修改连接数不会提供显著的利益。
图2A所示性能曲线,是对各个固定的连接数1、1+a、1+2a...等等,按各种客户负载(并发客户数),从一组离散点(负载、通过量)产生的。让我们对1和1+a个连接,考虑一组离散点。对每一种客户负载,找出从1个连接到1+a连接时,通过量百分比的增加。把通过量的增加与需要的x值比较,从而识别我们获得该增量时对应的最小客户负载。如果不是准确相符,那么就识别两个点,使需要的通过量增量x位于该两点之间。用线性内插技术识别该最小客户负载,就是在该负载上,通过从1个连接到1+a连接的变化,获得通过量x%的增加。选择的负载点,被投影在排队延迟曲线上,以找出1个连接时的排队延迟值(因为系统初始时,是向每一后端服务器配置单个连接的)。这一系列步骤能够以计算机程序代码实施,本领域熟练人员是熟知的。
图2B所示性能曲线,是对各个固定的连接数1、1+a、1+2a...等等,画出在各种客户负载上的一组离散点(负载、排队延迟)。对选择的负载值,从图2B找出排队延迟。如果选择的负载点的值,不能直接使用,那么就识别两个点,使选择的负载值位于该两点之间。用线性内插技术,找出选择的负载的排队延迟。
接着该过程的是,把负载点投影在排队延迟曲线上,给出CPU密集型请求的阈值排队延迟tc,及数据密集型请求的阈值排队延迟td。然后计算这两个值中的最小值tcd:
tcd=minimum(tc,td)
对不同负载条件取最小值的方法,给出计算的值tcd,它是对CPU密集型和数据密集型请求负载的最低投影阈值排队延迟。
从排队延迟曲线(如图2B所示),还可以对CPU密集型(dcm)和数据密集型(ddm),识别排队延迟的最小值。然后,确定排队延迟阈值t为tcd、dcm、和ddm的最大值:
t=maximum(tcd,dcm,ddm)
这样取得的最大值,是为了防止如下的潜在问题:就是最低的投影排队延迟阈值tcd,低于数据密集型和CPU密集型分别确定的最小值时可能产生的问题。如果阈值排队延迟低于数据密集型和CPU密集型的最小值,尽管这种情况不大可能发生,但一旦发生,系统永远不能达到稳态-连接数重复地增加,试图把被监测的排队延迟值降到不可能达到的值,直至连接数达到上限。在确定投影的最小值tcd之后,取一最大值,可以避免这个潜在问题。
按照本实施例修改连接数,将趋于但不能到达一确定的最佳连接数;这认为是可以接受的,以便确保该修改不致使性能恶化。实际上,通常的负载条件包括CPU密集型和数据密集型请求的混合,且每一请求的请求类型,在处理该请求之前是不清楚的。
计算连接数的上限(h)
图3对各种客户负载,画出通过量随连接数的变化。系统已经校准,以便对数据密集型请求和CPU密集型请求获得类似的曲线。已经识别最大通过量的点,并且已经投影,对该连接数得到了相应的值。
如图3所示的性能曲线,是对固定客户负载画出不同连接上的一组离散点(连接、通过量)。对每一客户负载,通过量最大的点已经识别,并记下相应的连接数。然后,对所有曲线找出该值的最小值。
接着该过程的是,取得CPU密集型请求的上限hc和数据密集型请求的上限hd。连接数的上限是选择该两个值的最小值。
h=maximum(hc,hd)
特定系统的体系结构和算法
下面的说明涉及自适应的基于群集的系统,该系统监测网关与盒子之间的网络延迟,并根据监测的值增加/删除连接。如上所述,该系统在初始时已经校准,确定了阈值。
如图5所示,运行的基础设施包括监测器100和在系统10前端(网关)的网关部件110。基准标记部件120保持网关110的配置和校准信息。如上面参照图4所述,监测器110对每一请求,在发送时对请求加上时间标记,又在接收时对响应加上时间标记,并减去后端系统20监测器130测量的处理时间,保持对排队延迟d的跟踪。把被监测的处理时间,随响应发回前端系统。监测器100还对一段时间周期上(循环时间)的排队延迟求平均。循环时间是可以改变的配置参数。把延迟与阈值t比较,判定是否增加/删除连接。如果平均排队延迟dAV是在阈值的y%之内(t-{yt/100}≤dAV≤t+{yt/100}),则不干扰系统。如果平均延迟与阈值t之差dAV大于y%,则改变表示连接数的N数。
步骤中连接数的改变a,例如每次添加或删除2个连接(a=2),凭借选择的该a值来降低该连接数的振荡趋势。检验连接数的值N,看它是否在1(连接的最少值)与上限h之间。如果该值是在界限之内,则对是否/删除一个或多个连接作出判定。在作出增加或删除连接的判定之后,如下面所述,接着是网关与盒子的一个增加/删除连接的协议。然后,在有规则的时间段上(循环时间)重复相同的过程。
使连接数适应于当前系统负载的方法的步骤系列,参照图6说明于下。
增加或删除连接的协议
在与诸如TCP/IP的网络子系统的直接连接中,尽管我们保持多个打开的并行的连接,但不改变每一连接的服务器地址。相反,在诸如JMS的通过中介连接的子系统中,每一用户要求一独立的主题,所以前端和后端必须协调该主题名字。为解决命名问题,由前端10保持控制(见图5)。如果前端10确定需要一额外的连接,前端向后端20发送附有需要的主题的消息。后端20在给定主题上产生一新的用户,并向前端10发送确认。然后,前端可以在新的连接上开始发送数据。
如在图6中所示,管理持续连接数的过程,以单一连接(N=1)开始于200。当一个循环周期期满时,该周期的平均排队延迟dAV,由前端系统10中的监测器,在步骤210,用该循环周期中对每一请求计算并保存的排队延迟计算。确定计算的平均排队延迟dAV是否在阈值排队延迟t的预定百分比y%之内。如果dAV是在t的y%之内,则可以认为,修改连接数可能获得的利益,不能证明执行该任务是合理的。降低连接数可以在某种程度上降低通过量,但增加连接数将不提供实质性利益(按照指定的x%标准)。
如果在步骤220的确定是否定的,所以平均排队延迟dAV与阈值排队延迟t的之差大于y%,则在步骤230确定dAV是否大于t。如果dAV大于t,则保持在寄存器中的值N(代表当前的连接数)在步骤240增加一整数a(令N=N+a),获得代表连接的潜在增加数的新值。在用该新值增加连接数前,在步骤250检验该新值N是否小于或等于连接数的上限h。如果N小于或等于h,则在步骤260,通过增加a个连接,使连接数增加至N的新值。如果新值N高于上限h(由步骤250确定),该值N在步骤270重新置为上限h(令N=h),并把该新值N用于步骤280,把总连接数增加至上限h。
但是,如果确定步骤230确定,平均延迟dAV不大于阈值t,(即参照步骤220,比t至少小y%),则在步骤290,使N值递减一整数a。在步骤300执行检验,新的N值是否大于或等于1。
如果在步骤300确定,新的N值大于或等于1,则在步骤310,通过删除a个连接,使实际连接数降低一整数值a。现在,新设置的N值与系统中实际连接数一致。另外,如果步骤300确定的结果是,被确定新的N值小于1,则该N值在步骤320再次重新设置(令N=1)。现在把该新的N值在步骤330用于实际连接数,除留下一个连接外,删除所有连接。
类似地,当必须关闭连接时,前端10对该连接加上备用标记,以便不会有请求在该连接上发送。然后,前端10向后端20发送消息,该消息附有按该主题发送的最后一个消息的标识。当后端收到该指示消息时,关闭该连接。当前端收到对该消息的响应时,也关闭该连接。
在TCP/IP持续连接的情形中,当需要增加连接时,网关打开一新的与后端的连接,并开始在该连接上发送请求。当需要关闭连接时,网关停止在该连接上发送任何新的请求。在后端,检测被关闭的连接,并在后端自动地关闭该连接。
上述实施例能够结合任何盒子工作。因此,一种自适应的盒子-它能根据系统负载,改变(修改)它的配置参数,以维持最佳的性能-能用于符合本发明实施例的系统。
本领域熟练人员知道,能够在本发明的范围内,对图6所示举出的处理作各种修改。例如,在步骤220中,确定平均排队延迟dAV与阈值t的差别标准是由百分比之差确定的,但这不是本质的-例如可以用t的最大值和最小值。此外,当平均排队延迟超过阈值t的某一特定百分比值y%时,如果确定继续修改连接数的过程,那么当考虑平均排队延迟dAV比阈值t小某一范围时,用一个不同的百分比值z%是适当的。
图6的步骤220和230,可以用等效的单个确定步骤表示。借助步骤240的实施是以步骤250的结果为条件,步骤250可以放在步骤240之前,在这种情形下,不需要步骤270。同样,借助步骤290的实施以步骤300的结果为条件,步骤300可以放在步骤290之前,于是不需要步骤320。步骤260添加的连接数a,可以与步骤310删除的连接数不同(例如,如果系统的使用特征是,在快速的工作负载增加后接着是较不快速的逐渐减少,反之亦真)。
在上面详细说明的实施例中,排队延迟d,是作为请求的时间标记和响应的时间标记之间的差,减去后端处理时间而计算的(d=(TS2-TS2)-处理时间)。在后端服务器直接把响应发送至请求者客户,而不经过前端分配器发送响应的实施例中,仍然可以把包括响应时间标记TS2的通知提供给前端节点,以便能计算排队延迟。
在另外的实施例中,监测的通信延迟,是请求从第一数据处理单元发送和在第二数据处理单元开始处理之间的时间。这一点要求第一和第二数据处理单元之间的时钟同步,但不要求测量处理时间或响应时间标记(从而对第二数据处理单元直接把响应发送至请求者客户,不经过第一数据处理单元的系统有利)。
还有另外的实施例,是对基于群集的系统内多个后端节点的每一个,独立地监测通信延迟和修改连接数的。那么在网关上,要对每一后端节点提供分离的监测器和连接管理器。尽管这样的方案比群集内持续地修改每一后端节点连接数的方案增加了复杂性,但这样的方案,对网关与不同后端节点之间有不同类型连接的群集,是有利的。
上面说明的本发明的实施例,能够在基于群集的Web服务器、Web应用服务器、和在Web主管的服务实施方案中实施。一种按照本发明实施例的系统,在遭受使许多常规系统性能下降的工作负载时,能够使持续连接数自适应地变化,保持系统的性能。

Claims (30)

1.一种管理计算机系统的数据处理单元之间持续连接的方法,其中第一数据处理单元连接至第二数据处理单元,以便把请求发送至第二数据处理单元处理,该方法包括步骤:
监测从第一数据处理单元传输至第二数据处理单元的请求的通信延迟周期;
把被监测的通信延迟周期与阈值通信延迟周期比较,以确定被监测的通信延迟周期与阈值通信延迟周期的关系;和
响应于所述确定,调整第一和第二数据处理单元之间的连接数,该调整步骤包括当被监测的通信延迟周期超过第一阈值延迟周期时建立至少一个附加的连接或者当被监测的通信延迟周期小于第二阈值延迟周期时关闭至少一个连接,其中建立至少一个附加的连接的步骤还包括对不同数量的并发客户及不同数量的持续连接监测通信延迟周期及对应的请求通过量信息,并确定最大许可连接数,即对不同数量的并发的客户从被监测的请求通过量信息识别最大的通过量,对每一相应的并发的客户数识别与所述已识别的最大通过量对应的持续连接数,并从所述已识别的持续连接数中选择一最小数作为最大许可连接数,其中,建立至少一个附加连接的步骤仅在被调整的连接数不超过最大许可连接数时执行。
2.按照权利要求1的方法,其中的比较步骤包括确定被监测的延迟周期是否超过第一阈值延迟周期。
3.按照权利要求1的方法,其中的比较步骤包括确定被监测的延迟周期是否小于第二阈值延迟周期。
4.按照权利要求3的方法,其中的比较步骤还包括确定被监测的延迟周期是否超过第一阈值延迟周期;并且其中调整连接数的步骤是作为对确定被监测的延迟周期超过第一阈值的响应,建立至少一个附加的连接。
5.按照权利要求1的方法,其中被监测的延迟周期计算如下:
计算与从第一数据处理单元至第二数据处理单元的请求的传送相关的时间标记和与在第一数据处理单元对第二数据处理单元对所述请求的响应的接收相关的时间标记之间的差;和
减去作为第二数据处理单元内处理请求的时间而测量的时间周期。
6.按照权利要求5的方法,其中被监测的通信延迟周期,是在被监测的通信延迟周期与阈值通信延迟周期的所述比较步骤之前对预定时间周期中处理的一组请求的平均。
7.按照权利要求2的方法,还包括校准系统的步骤,用于确定第一阈值通信延迟周期,超过该第一阈值延迟周期希望建立至少一个附加的连接以降低通信延迟周期。
8.按照权利要求7的方法,其中用于确定第一阈值的校准系统的步骤包括:
对不同数量的并发客户及不同数量的持续连接监测通信延迟周期及对应的请求通过量信息;
通过在第一和第二数据处理单元之间将持续连接数增加一个整数值a,确定并发客户的最小数量,按该最小数量能够使通过量增加预定的百分比;
参照被监测的通信延迟周期及对应的请求通过量信息,识别与被确定的并发客户最小数量对应的通信延迟周期。
9.按照权利要求8的方法,其中校准系统的步骤是分开地对每一CPU密集型请求及数据密集型请求执行的,且该校准步骤包括附加的步骤:从已识别的CPU密集型请求的通信延迟周期及已识别的数据密集型请求的通信延迟周期中选择最小的通信延迟周期。
10.按照权利要求9的方法,还包括使用所述系统校准确定第二阈值通信延迟周期,在该第二阈值以下关闭至少一个连接不会导致通信延迟周期增加不可接受的量。
11.按照权利要求10的方法,其中的第一和第二阈值通信延迟周期,是作为百分比差值从选择的最小通信延迟周期计算的。
12.按照权利要求2的方法,还包括在建立至少一个附加连接步骤之前检验被调整的连接数是否超过最大许可连接数的步骤。
13.按照权利要求1的方法,其中的第一数据处理单元是基于群集的数据处理系统的前端网络网关节点,而第二数据处理单元是基于群集的数据处理系统的后端处理节点,该方法包括:
网关节点经过网络从客户请求者接收请求,把接收的请求传递至一组后端处理节点的相应各个节点,从相应的后端处理节点接收响应,并把接收的响应转发至客户请求者;和
后端处理节点处理从网关节点接收的请求以产生响应,并把响应转发至网关节点。
14.按照权利要求13的方法,其中基于群集的数据处理系统包括多个后端处理节点,且其中该方法对多个后端处理节点被监测的通信延迟作出响应,不断为多个后端处理节点修改持续连接数。
15.一种数据处理系统,包括:
第一数据处理单元,用于从客户请求者接收请求并把接收的请求传递至第二数据处理单元,还用于从第二数据处理单元接收响应并把接收的响应转发至客户请求者;和
第二数据处理单元,用于处理从第一数据处理单元接收的请求以产生响应,并把响应转发至第一数据处理单元;和
连接管理器,用于管理第一与第二数据处理单元之间的连接数,该连接管理器能对第一与第二数据处理单元之间被监测的通信延迟与阈值通信延迟周期的关系作出响应,修改第一与第二数据处理单元之间的持续连接数,该修改包括当被监测的通信延迟超过第一阈值延迟周期时建立至少一个附加的连接或者当被监测的通信延迟小于第二阈值延迟周期时关闭至少一个连接,其中建立至少一个附加的连接的步骤还包括对不同数量的并发客户及不同数量的持续连接监测通信延迟周期及对应的请求通过量信息,并确定最大许可连接数,即对不同数量的并发的客户从被监测的请求通过量信息识别最大的通过量,对每一相应的并发的客户数识别与所述已识别的最大通过量对应的持续连接数,并从所述已识别的持续连接数中选择一最小数作为最大许可连接数,其中,建立至少一个附加连接的步骤仅在被调整的连接数不超过最大许可连接数时执行。
16.按照权利要求15的数据处理系统,其中
第二数据处理单元包括监测器,用于监测和记录与第二数据处理单元处理请求所用时间对应的处理时间周期,并且
第一数据处理单元包括监测器,用于记录第一时间标记和第二时间标记以便确定第一时间标记与第二时间标记之间的差,该第一时间标记当请求从第一数据处理单元发送至第二数据处理单元时产生,而该第二时间标记当对所述请求的响应被第一数据处理单元从第二数据处理单元接收时产生,该监测器还从所述差减去所述处理时间周期来计算通信延迟周期。
17.一种数据处理系统,包括:
网关节点,用于从客户请求者接收请求并把接收的请求传递至一组后端处理节点之一,还用于从后端处理节点接收响应并把接收的响应转发至客户请求者;和
一组后端处理节点,用于处理从网关节点接收的请求以产生响应,还用于把响应转发至网关节点;
连接管理器,用于管理网关节点与每一个后端节点之间的连接数,该连接管理器能对网关节点与后端处理节点之间被监测的通信延迟与阈值通信延迟周期的关系作出响应,修改网关节点与后端处理节点中至少第一个之间的持续连接数,该修改包括当被监测的通信延迟超过第一阈值延迟周期时在网关节点与每一个后端处理节点之间建立至少一个附加的连接或者当被监测的通信延迟小于第二阈值延迟周期时在网关节点与每一个后端处理节点之间关闭至少一个连接,其中建立至少一个附加的连接的步骤还包括对不同数量的并发客户及不同数量的持续连接监测通信延迟周期及对应的请求通过量信息,并确定最大许可连接数,即对不同数量的并发的客户从被监测的请求通过量信息识别最大的通过量,对每一相应的并发的客户数识别与所述已识别的最大通过量对应的持续连接数,并从所述已识别的持续连接数中选择一最小数作为最大许可连接数,其中,建立至少一个附加连接的步骤仅在被调整的连接数不超过最大许可连接数时执行。
18.按照权利要求17的数据处理系统,其中还包括:
网络子系统;
所述网关节点经过网络子系统从后端处理节点接收响应并把接收的响应转发至客户请求者;和
该组后端处理节点排列在群集内,用于把响应经过网络子系统转发至网关节点。
19.按照权利要求18的数据处理系统,其中的连接管理器对该组后端处理节点被监测的通信延迟作出响应,不断为所有该组后端处理节点修改持续连接数。
20.按照权利要求18的数据处理系统,其中
该组后端处理节点的每一个都包括监测器,用于监测和记录与各后端处理节点处理请求所用时间对应的处理时间周期,和
网关节点包括监测器,用于记录第一时间标记和第二时间标记以便确定第一时间标记与第二时间标记之间的差,该第一时间标记当请求从网关节点发送至所述后端处理节点的相应节点时产生,而该第二时间标记当对所述请求的响应被网关节点从相应后端处理节点接收时产生,该监测器还从所述差减去所述处理时间周期来计算通信延迟周期。
21.按照权利要求18的数据处理系统,其中的连接管理器包括:用于比较被监测的通信延迟和第一阈值通信延迟周期的装置。
22.按照权利要求18的数据处理系统,其中的连接管理器包括:用于比较被监测的通信延迟和第二阈值通信延迟周期的装置。
23.按照权利要求18的数据处理系统,其中该组后端处理节点是群集的Web服务器的节点。
24.一种管理网关节点与一组后端处理节点的每一个之间的持续连接的方法,所述后端处理节点安排在数据处理系统中的群集内,该方法包括步骤:
监测从网关节点传送到后端处理节点的请求的通信延迟周期;
把被监测的通信延迟周期与阈值通信延迟周期比较,确定被监测的通信延迟周期与阈值通信延迟周期的关系;和
响应于所述确定,调整网关节点与至少一个该组后端节点之间的连接数,该调整步骤包括当被监测的通信延迟周期超过第一阈值延迟周期时建立至少一个附加的连接或者当被监测的通信延迟周期小于第二阈值延迟周期时关闭至少一个连接,其中建立至少一个附加的连接的步骤还包括对不同数量的并发客户及不同数量的持续连接监测通信延迟周期及对应的请求通过量信息,并确定最大许可连接数,即对不同数量的并发客户从被监测的请求通过量信息识别最大的通过量,对每一相应的并发客户数识别与所述已识别的最大通过量对应的持续连接数,并从所述已识别的持续连接数中选择一最小数作为最大许可连接数,其中,建立至少一个附加连接的步骤仅在被调整的连接数不超过最大许可连接数时执行。
25.按照权利要求24的方法,其中的比较步骤包括确定被监测的延迟周期是否超过第一阈值延迟周期。
26.按照权利要求24的方法,其中的比较步骤包括确定被监测的延迟周期是否小于第二阈值延迟周期。
27.按照权利要求24的方法,其中被监测的通信延迟周期计算如下:
计算与从第一数据处理单元至第二数据处理单元的请求的传送相关的时间标记和与在第一数据处理单元对第二数据处理单元对所述请求的响应的接收相关的时间标记之间的差;和
减去作为后端处理节点内处理请求的时间而测量的时间周期。
28.按照权利要求27的方法,其中,在所述比较被监测的延迟周期与阈值延迟周期步骤之前,对预定时间周期中处理的一组请求计算平均的被监测通信延迟周期,且其中被监测的延迟周期的比较包括把计算的平均被监测延迟周期与阈值延迟周期比较。
29.按照权利要求25的方法,还包括校准系统的步骤,用于确定第一阈值通信延迟周期,超过该第一阈值延迟周期希望建立至少一个附加的连接以降低通信延迟周期。
30.按照权利要求25的方法,还包括在建立至少一个附加连接步骤之前检验被调整的连接数是否超过最大许可连接数的步骤。
CN2004100841874A 2003-10-22 2004-10-15 在基于群集的系统内管理性能及资源利用率的方法和设备 Active CN1610347B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/690,693 US7388839B2 (en) 2003-10-22 2003-10-22 Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems
US10/690,693 2003-10-22

Publications (2)

Publication Number Publication Date
CN1610347A CN1610347A (zh) 2005-04-27
CN1610347B true CN1610347B (zh) 2010-04-28

Family

ID=34521702

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004100841874A Active CN1610347B (zh) 2003-10-22 2004-10-15 在基于群集的系统内管理性能及资源利用率的方法和设备

Country Status (2)

Country Link
US (2) US7388839B2 (zh)
CN (1) CN1610347B (zh)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590739B2 (en) * 1999-11-22 2009-09-15 Akamai Technologies, Inc. Distributed on-demand computing system
US7925713B1 (en) 1999-11-22 2011-04-12 Akamai Technologies, Inc. Method for operating an integrated point of presence server network
US7388839B2 (en) * 2003-10-22 2008-06-17 International Business Machines Corporation Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems
JP2005202589A (ja) * 2004-01-14 2005-07-28 Kddi Corp P2pネットワークのトラヒック制御システム
US20060029016A1 (en) * 2004-06-29 2006-02-09 Radware Limited Debugging application performance over a network
US8316438B1 (en) 2004-08-10 2012-11-20 Pure Networks Llc Network management providing network health information and lockdown security
US7904712B2 (en) 2004-08-10 2011-03-08 Cisco Technology, Inc. Service licensing and maintenance for networks
US7925729B2 (en) 2004-12-07 2011-04-12 Cisco Technology, Inc. Network management
US7571464B2 (en) * 2004-08-27 2009-08-04 International Business Machines Corporation Secure bidirectional cross-system communications framework
US8478849B2 (en) 2004-12-07 2013-07-02 Pure Networks LLC. Network administration tool
US7827252B2 (en) * 2004-12-07 2010-11-02 Cisco Technology, Inc. Network device management
GB0426846D0 (en) * 2004-12-08 2005-01-12 Ibm Method and system for administration of a broker-based publish/subscribe messaging system
KR100807817B1 (ko) * 2004-12-17 2008-02-27 엔에이치엔(주) 버스형 네트워크 구조의 통신 네트워크 시스템에서서브시스템 사이의 로드를 조절하는 방법
PL1872054T5 (pl) 2005-03-17 2022-08-16 Nox Ii International, Ltd. Zmniejszenie emisji rtęci w spalinach ze spalania węgla
EP1729247A1 (de) * 2005-06-01 2006-12-06 InVision Software AG Mitarbeitereinsatzplanung
US8239535B2 (en) * 2005-06-06 2012-08-07 Adobe Systems Incorporated Network architecture with load balancing, fault tolerance and distributed querying
JP4857818B2 (ja) * 2006-03-02 2012-01-18 株式会社日立製作所 ストレージ管理方法およびストレージ管理サーバ
US7783747B2 (en) 2006-07-24 2010-08-24 International Business Machines Corporation Method and apparatus for improving cluster performance through minimization of method variation
US8078972B2 (en) 2006-09-15 2011-12-13 Citrix Systems, Inc. Methods and interfaces for displaying performance data related to a current remote access session
US7978617B2 (en) * 2006-09-15 2011-07-12 Citrix Systems, Inc. Methods for providing performance improvement recommendations
US9106606B1 (en) 2007-02-05 2015-08-11 F5 Networks, Inc. Method, intermediate device and computer program code for maintaining persistency
US8028048B2 (en) * 2007-02-27 2011-09-27 International Business Machines Corporation Method and apparatus for policy-based provisioning in a virtualized service delivery environment
US7853829B2 (en) * 2007-07-13 2010-12-14 Cisco Technology, Inc. Network advisor
US8700743B2 (en) 2007-07-13 2014-04-15 Pure Networks Llc Network configuration device
US9026639B2 (en) * 2007-07-13 2015-05-05 Pure Networks Llc Home network optimizing system
US8014356B2 (en) * 2007-07-13 2011-09-06 Cisco Technology, Inc. Optimal-channel selection in a wireless network
US9491077B2 (en) 2007-07-13 2016-11-08 Cisco Technology, Inc. Network metric reporting system
JP2009038444A (ja) * 2007-07-31 2009-02-19 Hitachi Kokusai Electric Inc ネットワークシステム、制御方法及びゲートウェイ装置
WO2009140786A1 (en) * 2008-05-19 2009-11-26 Telefonaktiebolaget Lm Ericsson (Publ) Handling enum queries in a communication network
EP2728528A1 (en) * 2008-05-30 2014-05-07 MR.QR10 GmbH & Co. KG Server device for controlling a transaction, first entity and second entity
US7856500B2 (en) * 2008-07-11 2010-12-21 International Business Machines Corporation Method for placing composite applications in a federated environment
JP5227125B2 (ja) * 2008-09-24 2013-07-03 株式会社日立製作所 ストレージシステム
US7984151B1 (en) 2008-10-09 2011-07-19 Google Inc. Determining placement of user data to optimize resource utilization for distributed systems
US8020051B2 (en) * 2008-10-20 2011-09-13 Sap Ag Message handling in a service-oriented architecture
US20100111095A1 (en) * 2008-11-03 2010-05-06 Bridgeworks Limited Data transfer
US8856376B1 (en) * 2008-12-18 2014-10-07 Bank Of America Corporation Stabilization tool for a high-capacity network infrastructure
US20100257009A1 (en) * 2009-04-01 2010-10-07 National Ict Australia Limited Service orientated computer system with multiple quality of service controls
US20100306767A1 (en) * 2009-05-29 2010-12-02 Dehaan Michael Paul Methods and systems for automated scaling of cloud computing systems
US20110040903A1 (en) * 2009-08-17 2011-02-17 Lsi Corporation Methods and apparatus for automated performance limiting of an i/o control device
US8078691B2 (en) 2009-08-26 2011-12-13 Microsoft Corporation Web page load time prediction and simulation
US8972702B2 (en) 2009-11-30 2015-03-03 Intenational Business Machines Corporation Systems and methods for power management in a high performance computing (HPC) cluster
KR20110101403A (ko) * 2010-03-08 2011-09-16 삼성전자주식회사 무선통신 시스템에서 기지국의 패킷 포워딩 장치 및 방법
US8649297B2 (en) 2010-03-26 2014-02-11 Cisco Technology, Inc. System and method for simplifying secure network setup
US8654650B1 (en) 2010-04-30 2014-02-18 Amazon Technologies, Inc. System and method for determining node staleness in a distributed system
US8381002B2 (en) 2010-06-23 2013-02-19 International Business Machines Corporation Transparently increasing power savings in a power management environment
US8694639B1 (en) 2010-09-21 2014-04-08 Amazon Technologies, Inc. Determining maximum amount of resource allowed to be allocated to client in distributed system
US8448006B2 (en) 2010-10-19 2013-05-21 International Business Machines Corporation Performing virtual and/or physical resource management for power management
US8601134B1 (en) * 2011-06-30 2013-12-03 Amazon Technologies, Inc. Remote storage gateway management using gateway-initiated connections
US20130067069A1 (en) 2011-09-13 2013-03-14 International Business Machines Corporation Flow topology of computer transactions
US9386128B2 (en) * 2012-03-23 2016-07-05 Qualcomm Incorporated Delay based active queue management for uplink traffic in user equipment
US9014029B1 (en) * 2012-03-26 2015-04-21 Amazon Technologies, Inc. Measuring network transit time
US9578130B1 (en) 2012-06-20 2017-02-21 Amazon Technologies, Inc. Asynchronous and idempotent distributed lock interfaces
US10191959B1 (en) 2012-06-20 2019-01-29 Amazon Technologies, Inc. Versioned read-only snapshots of shared state in distributed computing environments
US10754710B1 (en) 2012-06-20 2020-08-25 Amazon Technologies, Inc. Transactional watch mechanism
US10630566B1 (en) 2012-06-20 2020-04-21 Amazon Technologies, Inc. Tightly-coupled external cluster monitoring
US9648087B2 (en) * 2012-10-08 2017-05-09 International Business Machines Corporation Allocating distributed storage and task execution resources
US10127111B2 (en) 2012-10-08 2018-11-13 International Business Machines Corporation Client provided request prioritization hints
US10331519B2 (en) 2012-10-08 2019-06-25 International Business Machines Corporation Application of secret sharing schemes at multiple levels of a dispersed storage network
US10606700B2 (en) 2012-10-08 2020-03-31 Pure Storage, Inc. Enhanced dispersed storage error encoding using multiple encoding layers
US9246747B2 (en) * 2012-11-15 2016-01-26 Hong Kong Applied Science and Technology Research Co., Ltd. Adaptive unified performance management (AUPM) with root cause and/or severity analysis for broadband wireless access networks
CN103023802B (zh) * 2012-12-05 2015-11-04 暨南大学 一种面向web集群的低能耗调度系统和方法
US9294587B1 (en) * 2013-03-11 2016-03-22 Amazon Technologies, Inc. Enhanced routing and content delivery
US9509802B1 (en) * 2013-03-15 2016-11-29 PME IP Pty Ltd Method and system FPOR transferring data to improve responsiveness when sending large data sets
CN103561428B (zh) * 2013-10-10 2017-02-01 东软集团股份有限公司 短信网关集群系统中的节点弹性分配方法及系统
EP3097660B1 (en) * 2014-01-23 2017-11-15 British Telecommunications Public Limited Company Methods and apparatus for operating an access network
US10218633B2 (en) * 2014-03-28 2019-02-26 Amazon Technologies, Inc. Implementation of a service that coordinates the placement and execution of containers
GB2527788A (en) 2014-07-02 2016-01-06 Ibm Scheduling applications in a clustered computer system
US10581756B2 (en) * 2014-09-09 2020-03-03 Microsoft Technology Licensing, Llc Nonintrusive dynamically-scalable network load generation
US9760529B1 (en) 2014-09-17 2017-09-12 Amazon Technologies, Inc. Distributed state manager bootstrapping
US10318896B1 (en) * 2014-09-19 2019-06-11 Amazon Technologies, Inc. Computing resource forecasting and optimization
US9852221B1 (en) 2015-03-26 2017-12-26 Amazon Technologies, Inc. Distributed state manager jury selection
CN106211306B (zh) 2015-04-30 2020-04-03 华为技术有限公司 一种通信网络延时抖动平滑方法、装置及系统
US10659366B1 (en) * 2015-11-04 2020-05-19 Amazon Technologies, Inc. Load balancer metadata forwarding on secure connections
US9596606B1 (en) * 2016-04-25 2017-03-14 Verizon Patent And Licensing Inc. Application programming interface gateway for sponsored data services
US10193823B2 (en) 2016-09-12 2019-01-29 Microsoft Technology Licensing, Llc Rich resource management incorporating usage statistics for fairness
KR102209175B1 (ko) * 2016-11-25 2021-01-28 미츠비시 쥬고 기카이 시스템 가부시키가이샤 클라이언트, 브로커, 통신 시스템, 통신 방법 및 프로그램
CN106790706B (zh) * 2017-02-27 2019-11-19 深圳先进技术研究院 一种数据资源优化的方法、平台及系统
US10007695B1 (en) * 2017-05-22 2018-06-26 Dropbox, Inc. Replication lag-constrained deletion of data in a large-scale distributed data storage system
CN107193502B (zh) * 2017-05-27 2021-04-06 郑州云海信息技术有限公司 一种存储服务质量保障方法及装置
CA2987603A1 (en) * 2017-12-04 2019-06-04 Jason Sieben A method of broadcasting a live performance
US11023494B2 (en) * 2017-12-12 2021-06-01 International Business Machines Corporation Computer-implemented method and computer system for clustering data
US10924410B1 (en) 2018-09-24 2021-02-16 Amazon Technologies, Inc. Traffic distribution mapping in a service-oriented system
US11349745B2 (en) * 2019-06-03 2022-05-31 Paypal, Inc. Latency measurement techniques in a low latency environment
CN110290595B (zh) * 2019-06-28 2023-02-21 南昌黑鲨科技有限公司 网络连接控制方法、系统、智能终端及计算机可读存储介质
US11151150B2 (en) * 2019-09-13 2021-10-19 Salesforce.Com, Inc. Adjustable connection pool mechanism
US11636067B2 (en) 2019-10-04 2023-04-25 Salesforce.Com, Inc. Performance measurement mechanism
US11165857B2 (en) 2019-10-23 2021-11-02 Salesforce.Com, Inc. Connection pool anomaly detection mechanism
US11184269B1 (en) 2020-04-13 2021-11-23 Amazon Technologies, Inc. Collecting route-based traffic metrics in a service-oriented system
CN112004058B (zh) * 2020-08-25 2022-03-11 重庆紫光华山智安科技有限公司 用于多级域监控系统的资源智能分配方法、装置及设备
US11917031B2 (en) * 2022-01-21 2024-02-27 Dell Products L.P. Message broker resource deletion

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1443412A (zh) * 2000-07-19 2003-09-17 因芬尼昂技术股份公司 增加通信系统数据吞吐量的方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918017A (en) 1996-08-23 1999-06-29 Internatioinal Business Machines Corp. System and method for providing dynamically alterable computer clusters for message routing
US20030046394A1 (en) 2000-11-03 2003-03-06 Steve Goddard System and method for an application space server cluster
US20020055983A1 (en) 2000-11-03 2002-05-09 The Board Of Regents Of The University Of Nebraska Computer server having non-client-specific persistent connections
US20020055982A1 (en) 2000-11-03 2002-05-09 The Board Of Regents Of The University Of Nebraska Controlled server loading using L4 dispatching
US6868069B2 (en) * 2001-01-16 2005-03-15 Networks Associates Technology, Inc. Method and apparatus for passively calculating latency for a network appliance
US7193966B2 (en) * 2001-06-25 2007-03-20 Telefonakitebolaget Lm Ericsson (Publ) Triggered packet data rate change in a communication system
US7283568B2 (en) * 2001-09-11 2007-10-16 Netiq Corporation Methods, systems and computer program products for synchronizing clocks of nodes on a computer network
JP3904435B2 (ja) * 2001-11-28 2007-04-11 株式会社日立製作所 Webサービス向け輻輳制御装置及び方法
US20030236997A1 (en) * 2002-06-24 2003-12-25 Paul Jacobson Secure network agent
US7388839B2 (en) * 2003-10-22 2008-06-17 International Business Machines Corporation Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems
US7796517B2 (en) * 2004-06-28 2010-09-14 Minghua Chen Optimization of streaming data throughput in unreliable networks
US7984113B2 (en) * 2004-09-08 2011-07-19 Sap Ag System and method for passing messages to a web browser

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1443412A (zh) * 2000-07-19 2003-09-17 因芬尼昂技术股份公司 增加通信系统数据吞吐量的方法

Also Published As

Publication number Publication date
CN1610347A (zh) 2005-04-27
US7773522B2 (en) 2010-08-10
US7388839B2 (en) 2008-06-17
US20080170579A1 (en) 2008-07-17
US20050088976A1 (en) 2005-04-28

Similar Documents

Publication Publication Date Title
CN1610347B (zh) 在基于群集的系统内管理性能及资源利用率的方法和设备
US7680897B1 (en) Methods and systems for managing network traffic
Chaczko et al. Availability and load balancing in cloud computing
CA2471594C (en) Method and apparatus for web farm traffic control
CN1113503C (zh) 因特网上的动态路由方法
US7870256B2 (en) Remote desktop performance model for assigning resources
Dan et al. Multimedia caching strategies for heterogeneous application and server environments
US5881238A (en) System for assignment of work requests by identifying servers in a multisystem complex having a minimum predefined capacity utilization at lowest importance level
US20050055694A1 (en) Dynamic load balancing resource allocation
Sarhan et al. Caching and scheduling in NAD-based multimedia servers
US7818424B2 (en) Real-time storage area network
JP4970939B2 (ja) マルチノードシステムにおけるリソースの動的な割当の階層的管理
JP2001043199A (ja) 異種サーバにまたがるサービス指向資源管理
WO2007032603A1 (en) Load balancing method and apparatus, and software streaming system using the same
US20070180453A1 (en) On demand application scheduling in a heterogeneous workload environment
JPH03116262A (ja) コンピュータネットワークにおけるサーバを選択するための方法及び装置
JP2009251708A (ja) I/oノード制御方式及び方法
JP2021519460A (ja) データクエリ方法、装置、およびデバイス
US7660897B2 (en) Method, system, and program for distributing application transactions among work servers
US7437459B2 (en) Calculation of service performance grades in a multi-node environment that hosts the services
US7085815B2 (en) Scalable memory management of token state for distributed lock managers
US20130166751A1 (en) Distributed resource management systems and methods for resource management thereof
WO2021000694A1 (zh) 一种部署业务的方法以及调度装置
US6009473A (en) Using callbacks to effectively manage resources
JP2001202318A (ja) データ配信システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190809

Address after: American California

Patentee after: Facebook Inc

Address before: American New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Yuan platform Co.

Address before: California, USA

Patentee before: Facebook, Inc.

CP01 Change in the name or title of a patent holder