CN1706165A - 用于网络场通信控制的方法和装置 - Google Patents

用于网络场通信控制的方法和装置 Download PDF

Info

Publication number
CN1706165A
CN1706165A CNA038014963A CN03801496A CN1706165A CN 1706165 A CN1706165 A CN 1706165A CN A038014963 A CNA038014963 A CN A038014963A CN 03801496 A CN03801496 A CN 03801496A CN 1706165 A CN1706165 A CN 1706165A
Authority
CN
China
Prior art keywords
mrow
msub
mover
server
math
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA038014963A
Other languages
English (en)
Other versions
CN100556024C (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.)
International Business Machines Corp
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 CN1706165A publication Critical patent/CN1706165A/zh
Application granted granted Critical
Publication of CN100556024C publication Critical patent/CN100556024C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/1006Server selection for load balancing with static server selection, e.g. the same server being selected for a specific client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • 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/10015Access to distributed or replicated servers, e.g. using brokers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Replacement Of Web Rolls (AREA)

Abstract

公开了一种用于控制具有多个网站和服务器的网络场的方法,该方法包括:将从所述网站接收的客户请求分类成多个类别,所述类别包括可共享客户请求和不可共享客户请求;以使所述服务器中的任一个都可以处理从不同所述网站接收的可共享客户请求的方式传送所述可共享客户请求;以及将所述不可共享客户请求从特定所述网站仅传送到所述特定网站所被分配的特定服务器。

Description

用于网络场通信控制的方法和装置
技术领域
本发明涉及网络场(web farm)中的负载均衡。
背景技术
网络场或联合体现在变得非常流行。网络场背后的关键概念是大量不同网站共享集中(pooled)资源这一观念。具体地说,它们典型地共享公共前端调度器来执行负载控制和分布客户请求。它们还共享多个网站服务器;并且它们共享后端带宽以将请求结果返回给客户。硬件和软件典型地由单个服务提供商或内容主(content host)拥有、操作和维护。目前提供或计划提供该服务的公司的例子包括AT&T、Exodus、Intel、IBM、Qwest、Verio和Worldcom。
网络场的主要性能挑战是有效地均衡服务器上的负载从而最小化在系统上实现的平均响应时间。服务器的利用过度会导致客户请求的过度延迟。另一方面,服务器的利用不足是浪费的。最小化平均响应时间将具有最大化网络场所能实现的吞吐量的双重效应。这意味着前端调度器中的负载控制过程可以变得更宽容而拒绝较少的请求。
网络场的主要动机之一是由于集中资源而产生的效率。每个网站分配给由一个或多个服务器构成的集合。然而,现有技术假设网站分配在服务器之间进行分区:也就是,没有服务器处理来自多个网站的通信。
创建包含多个服务器的集合背后的基本原理是可行性:客户请求在各个站点之间的分布将典型地是高度非均匀的。一些站点将很有可能比其他站点受欢迎得多,并且热门网站的受欢迎度一般将大得足以将它分配给单个服务器将使该服务器过载。因此,为了实现可接受性能,将有必要将一些网站分配到多个服务器。
实现分区情况的负载均衡算法是公知的,但是该服务器分区导致较小的灵活性,并且因此导致不是最优均衡的网站负载均衡。
发明内容
公开了一种用于控制具有多个网站和服务器的网络场的方法。该方法包括将从所述网站接收的客户请求分类成多个类别,所述类别包括可共享客户请求和不可共享客户请求,以使所述服务器中的任一个都可以处理从不同所述网站接收的可共享客户请求的方式传送所述可共享客户请求,以及将所述不可共享客户请求从特定所述网站仅传送到所述特定网站所被分配的特定服务器。
该方法的另一方面包括目标过程(Goal procedure),所述目标过程包括:在给定所述网站到所述服务器的分配和当前客户请求负载的情况下,为每个所述客户请求,从每个所述客户请求所要分配的所述服务器中确定最优服务器,从而最小化任何给定时刻的平均客户响应时间。
在该方法的另一方面,所述目标过程通过在以下约束条件
∑(xi,j+yi,j)∈{0,...,Lj}, Σ j = 1 N x i , j = c i , 如果ai,j=0则xi,j=0, Σ j = 1 N y i , j = d i , 以及如果bi,j=0则yi,j=0下最小化函数 Σ j = 1 N R j ( Σ i = 1 M ( x i , j + y i , j ) ) 来实现,其中,M是网站数,N是服务器数,Rj是作为服务器j上的客户到达速率的函数的预期响应时间,xi,j是表示可能由服务器j处理的网站i的可共享请求的假设数的决策变量(decision variable),yi,j是表示可能由服务器j处理的网站i的不可共享请求的假设数的决策变量,Lj是服务器j的最大容许负载,ci是来自网站i的可共享客户请求的当前数,di是来自网站i的不可共享请求的当前数,ai,j是表示来自网站i的可共享请求是否可以传送到服务器j的索引(index),并且bi,j是表示来自网站i的不可共享请求是否可以传送到服务器j的索引。
该方法的另一方面包括创建和维护一个有向图,所述有向图包括一个哑节点和多个服务器节点,每个所述服务器节点对应于所述服务器之一,指定所述服务器节点中表达式 R j ( Σ i = 1 M ( x i , j + y i , j + 1 ) ) - R j ( Σ i = 1 M ( x i , j + y i , j ) ) 最小的一个服务器节点为获胜节点,以及选择从所述哑节点到所述获胜节点的最短有向路径。
该方法的另一方面包括静态过程,所述静态过程包括将特定所述网站分配给特定所述服务器。
在该方法的另一方面,所述静态过程根据对来自每个所述网站的可共享和不可共享客户请求的预测需求,将所述网站分配给特定服务器。
该方法的另一方面包括动态过程,所述动态过程包括检查下一个客户请求,调用所述目标过程从而确定哪个服务器是当前处理所述下一个客户请求的最优服务器,并且将所述下一个客户请求调度到所述最优服务器。
该方法的另一方面包括将所述客户请求接收到队列中,并且其中,所述动态过程还包括监视所述队列中的所述客户请求,监视当前正在由所述服务器处理的客户请求,对于每个第j服务器通过设置 R · j ( z ) = R j ( z + Σ ( c · · i , j + d · · i , j ) ) 来定义函数 对于每个第j服务器通过设置 L · j = L j - Σ i = 1 M ( c · · i , j + d · · i , j ) 来定义修正容许负载限值
Figure A0380149600084
并且利用所述
Figure A0380149600085
函数和修正容许负载限值 来调用所述目标过程,以在以下约束条件: Σ i = 1 M ( x · i , j + y · i , j ) ∈ { 0 , . . . , L · j } , Σ j = 1 N x · i , j = c · i , 如果ai,j=0则 x · i , j = 0 , Σ j = 1 N y · i , j = d · i , 以及如果bi,j=0则 y · i , j = 0 下最小化函数 Σ j = 1 N R · j ( Σ i = 1 M ( x · i , j + y · i , j ) ) , 其中, 是表示可能由服务器j处理的网站i的队列中可共享请求的假设数的决策变量,
Figure A03801496000812
是表示可能由服务器j处理的网站i的不可共享请求的假设数的决策变量, 是来自网站i的队列中可共享客户请求的当前数,i是来自网站i的队列中不可共享请求的当前数, 是当前正在服务器之一中处理的来自网站i的可共享客户请求的当前数,并且i是当前正在服务器之一中处理的来自网站i的不可共享请求的当前数。
公开了一种可由机器读取的程序存储装置,它有形地实施一个可由机器执行的指令程序以执行用于控制具有多个网站和服务器的网络场的方法步骤,所述方法步骤包括将从所述网站接收的客户请求分类成多个类别,所述类别包括可共享客户请求和不可共享客户请求,以使所述服务器中的任一个都可以处理从不同所述网站接收的可共享客户请求的方式传送所述可共享客户请求,以及将所述不可共享客户请求从特定所述网站仅传送到所述特定网站所被分配的特定服务器。
该装置的另一方面包括目标过程,所述目标过程包括:在给定所述网站到所述服务器的分配和当前客户请求负载的情况下,为每个所述客户请求,从每个所述客户请求所要分配的所述服务器中确定最优服务器,从而最小化任何给定时刻的平均客户响应时间。
在该装置的另一方面,所述目标过程通过在以下约束条件∑(xi,j+yi,j)∈{0,...,Lj}, Σ j = 1 N x i , j = c i , 如果ai,j=0则xi,j=0, Σ j = 1 N y i , j = d i , 以及如果bi,j=0则yi,j=0下最小化函数 Σ j = 1 N R j ( Σ i = 1 M ( x i , j + y i , j ) ) 来实现,其中,M是网站数,N是服务器数,Rj是作为服务器j上的客户到达速率的函数的预期响应时间,xi,j是表示可能由服务器j处理的网站i的可共享请求的假设数的决策变量,yi,j是表示可能由服务器j处理的网站i的不可共享请求的假设数的决策变量,Lj是服务器j的最大容许负载,ci是来自网站i的可共享客户请求的当前数,di是来自网站i的不可共享请求的当前数,ai,j是表示来自网站i的可共享请求是否可以传送到服务器j的索引,并且bi,j是表示来自网站i的不可共享请求是否可以传送到服务器j的索引。
该装置的另一方面包括创建和维护一个有向图,所述有向图包括一个哑节点和多个服务器节点,每个所述服务器节点对应于所述服务器之一,指定所述服务器节点中表达式 R j ( Σ i = 1 M ( x i , j + y i , j + 1 ) ) - R j ( Σ i = 1 M ( x i , j + y i , j ) ) 最小的一个服务器节点为获胜节点,并且选择从所述哑节点到所述获胜节点的最短有向路径。
该装置的另一方面包括静态过程,所述静态过程包括将特定所述网站分配给特定所述服务器。
在该装置的另一方面,所述静态过程根据对来自每个所述网站的可共享和不可共享客户请求的预测需求,将所述网站分配给特定服务器。
该装置的另一方面包括动态过程,所述动态过程包括检查下一个客户请求,调用所述目标过程从而确定哪个服务器是当前处理所述下一个客户请求的最优服务器,并且将所述下一个客户请求调度到所述最优服务器。
该装置的另一方面包括将所述客户请求接收到队列中,并且其中,所述动态过程还包括监视所述队列中的所述客户请求,监视当前正在由所述服务器处理的客户请求,对于每个第j服务器通过设置 R · j ( z ) = R j ( z + Σ ( c · · i , j + d · · i , j ) ) 来定义函数
Figure A0380149600102
对于每个第j服务器通过设置 L · j = L j - Σ i = 1 M ( c · · i , j + d · · i , j ) 来定义修正容许负载限值 并且利用所述 函数和修正容许负载限值
Figure A0380149600106
来调用所述目标过程,以在以下约束条件: Σ i = 1 M ( x · i , j + y · i , j ) ∈ { 0 , . . . , L · j } , Σ j = 1 N x · i , j = c · i , 如果ai,j=0则 x · i , j = 0 , Σ j = 1 N y · i , j = d · i , 以及如果bi,j=0则 y · i , j = 0 下最小化函数 Σ j = 1 N R · j ( Σ i = 1 M ( x · i , j + y · i , j ) ) , 其中,
Figure A03801496001011
是表示可能由服务器j处理的网站i的队列中可共享请求的假设数的决策变量,
Figure A03801496001012
是表示可能由服务器j处理的网站i的不可共享请求的假设数的决策变量, 是来自网站i的队列中可共享客户请求的当前数,i是来自网站i的队列中不可共享请求的当前数,
Figure A03801496001014
是当前正在服务器之一中处理的来自网站i的可共享客户请求的当前数,并且i是当前正在服务器之一中处理的来自网站i的不可共享请求的当前数。
公开了一种网络场,包括:用于从客户接收客户请求的部件;用于处理所述客户请求以产生响应的部件;用于将所述响应发送到所述客户的部件;用于将所述客户请求分类成可共享客户请求和不可共享客户请求的部件;包括用于执行目标过程、静态过程和动态过程的部件的网络调度器,所述目标过程包括在给定所述网站到所述服务器的分配和当前客户请求负载的情况下,为每个所述客户请求,从每个所述客户请求所要分配的所述服务器中确定最优服务器,从而最小化任何给定时刻的平均客户响应时间,其中所述共享客户请求可以分配给任何所述服务器,并且其中所述不可共享客户请求根据所述不可共享客户请求所发起的哪个所述网站而仅可以分配给特定服务器,所述静态过程包括将特定所述网站分配给特定所述服务器,并且所述动态过程包括检查下一个客户请求,调用所述目标过程从而确定哪个服务器是当前处理所述下一个客户请求的最优服务器,并且将所述下一个客户请求调度到所述最优服务器。
附图说明
图1示出网络场,其中包括网络调度器和多个服务器。
图2示出从哑节点到获胜节点的路径,目标过程的一部分。
图3是目标过程的流程图。
图3b是目标过程的初始化步骤的流程图。
图3c是目标过程的路径簿记(bookkeeping)步骤的流程图。
图3d是目标过程的图簿记步骤的流程图。
图4是动态过程的流程图。
图5是说明动态过程的例子中的网站符号的汇集表(glossary)。
图6示出相同例子中动态过程的有向图。
图7示出相同例子中静态过程的无向图。
图8示出静态过程中的邻域扩展试探法(neighborhood escapeheuristic)。
图9示出静态过程的流程图。
具体实施方式
本发明通过允许多个站点的服务器分配之间的重叠来提供一种对网络场中的负载均衡问题的解决方案,并且以适合于各种站点拥有者的实用方式这样做。可以使用本发明的内容来代替公开于共同转让的共同未决的美国专利申请09/374,539,申请日期为1999年8月16日,律师事务所号为12793(YO999-307),发明名称为“METHOD ANDAPPARATUS FOR LOAD BALANCING OF WEB CLUSTERFARMS(用于网络集群场的负载均衡的方法和装置)”,现在为美国专利6374297的负载均衡系统。
重叠网站集背后的基本原理是灵活性:网络场必须能够同时处理来自很多不同站点的客户请求,并且该客户需求典型地是突发性的。该突发性由于变化的网站受欢迎度和客户牵涉(custom mix)而可以按星期、天和小时看到。有证据表示它也以小得多的原子时间单位如分钟甚至是秒发生。在此的要点是平均网站访问速率不足以捕获客户行为的变化性。一个网站的通信可能大幅涨落,并且一个网站可能较忙,同时另一个网站则不那么忙。希望是可以使处理若干站点的服务器改变这些网站之间的工作负载均衡以对这些动态通信作出反应。注意,分区设计不允许该反应能力。
本发明有效地集中服务器资源,并且采用用于前端调度器的智能方法,从而均衡这些服务器上的负载。本发明可推广至足以假设每个网站分配给由一个或多个服务器构成的集合,而且这些集合可以重叠。这意味着如果需要,给定服务器可以处理来自多个站点的客户请求。较不期望的替代方案是在各个站点之间对服务器进行分区,从而使每个服务器仅处理来自一个网站的请求。虽然效果差些,本发明也将工作于该较不优选的特殊情况。
然而,在网络场的情况下重叠服务器集不是没有问题。虽然适当高级服务器容纳适度数目的网站从技术的角度是合理的,但是从政策角度可能不十分合理。例如,即使服务器在多个站点之间进行过逻辑分区,电子商务贸易商也可能反对与其他贸易商共享处理交易请求的服务器。贸易商的反对将典型地基于保密的理由。幸运的是,该贸易商对于共享用于浏览请求的服务器较不敏感。为了使负载均衡过程是实用的并且因此是可实现的,它必须有效地处理该问题。如果必要,这可以通过将每个网站的工作负载分成两个类别来实现,其中一个类别是不可共享的,并且另一个是可共享的。这假定公共请求(由浏览者激发)可以与来自其他站点的请求共享服务器。它们也可以与来自相同网站的私有请求(由交易激发)共享服务器。这一关键细化向本发明提供即使在重叠分配的政策性变化问题的情况下也很好地执行的所需灵活性。
虽然本发明在此是按照两个级别的客户通信来描述的,但是本领域的技术人员应该明白,本发明可推广至具有可变网站到服务器限制的分级结构的通信。
注意,虽然公共和私有类别分别由浏览和交易请求来激发,但是这些术语实际上是由是否能够共享来定义的。例如,对于接受逻辑分区概念的电子商务站点,交易请求将算作公共通信的一部分,因此根本将不存在任何私有通信。在另一个极端,即使对于浏览者也拒绝允许任何服务器共享的电子商务站点将把浏览请求算作私有通信的一部分,并且根本将不存在任何公共通信。当然,可能存在对于其浏览和交易术语没有任何字面意义的非商务网站。为简单起见,通信将根据可共享性分成公共或私有类别。
本发明利用重叠网站分配的可能性以非常有效地均衡网络场负载。该问题自然地分解成两个子问题,并且对每个子问题的求解都利用相同的基本优化方法以设置适当的目标。因此,对于本发明,存在三个主要组件,它们将分别称作目标过程、静态过程和动态过程。
目标过程是关键公共过程。它使用设计成在给定站点对服务器的分配和当前客户请求负载的情况下最小化任何给定时刻的平均客户响应时间的优化方法。该方法是由Tantawi等人提出的用于求解所谓的离散类约束可分离凸资源分配问题的方法的略微特殊情况,参见“Optimalallocation of multiple class resources in computer systems(计算机系统中多类资源的最优分配)”,ACM Sigmetrics Conference(1988年5月),pp.253-260。从而该方法将确定最优负载均衡目标。具体地说,输出是要由每个适当服务器处理的每个网站的公共和私有类别的客户请求的最优数目,并且因此通过求和是每服务器的所有客户请求的最优数目。该问题将需要相对频繁地进行求解。幸运的是,该求解方法较快(并且在性质上是增量的)。它可以处理异构服务器,这是重要的,因为随着时间的过去一些老的较慢服务器将不可避免地被新的较快服务器代替。目标过程是下面动态过程和静态过程组件的组成部分。
考虑公共和私有请求的要求,静态过程创建良好、有希望几乎最优的站点到服务器的分配。并且,该过程完成得越好,则目标过程中的平均响应时间就会越好。静态过程组件在执行中迭代性地调用目标过程。该方法可以在初始或增量模式下运行。当配置新的网络场时,初始模式是适当的。增量模式考虑限制分配变化数的约束,因此对于维护高质量的网站到服务器分配是实用的。采用例如在R.Garfinkel等人的“Integer Programming(整数规划)”,John Wiley and Sons,New York,NY(1972)中公开的邻域扩展试探法。增量模式意味着周期性地运行,可能是大约每星期运行一次。重新配置网站到服务器分配显然不是琐细的任务。准确的频率将依赖于网站需求预测的变化性和进行新分配的成本。
动态过程根据静态过程组件的输出和波动的网站客户需求来在网络调度器中执行实时网络服务器路由选择。它根据目标过程来求解受限子问题以计算该理想化路由选择。它不转移先前调度过的请求的分配,这可能改善性能,但是将导致高得惊人的开销。
参照图1,示出具有三个站点12和九个服务器13的假设网络场10的例子。网络调度器14将三个站点12的客户请求传送到适当的服务器。第一网站12a包括两个服务器(1和2),并且与具有五个服务器(2到6)的第二网站12b重叠,并且第二网站12b又与具有四个服务器(6到9)的第三网站12c重叠。客户请求的结果通过管道回送给客户,然后客户可以发出另外的请求。
给定图1的说明性例子,现在详细描述本发明的三个主要组件将是有用的。
目标过程(目标)组件
首先定义一些符号标记将是有用的。设M表示网站的数目,为方便起见将总是以i索引。设N表示服务器的数目,以j索引。设{0,1}M×N矩阵A=(ai,j)表示将网站i的公共请求分配给服务器j的潜在可能性。换句话说,如果网站i的可共享请求可以由服务器j处理,则ai,j=1,否则ai,j=0。类似地,设{0,1}M×N矩阵B=(bi,j)表示将网站i的私有请求分配给服务器j的潜在可能性。换句话说,如果网站i的不可共享请求可以由服务器j处理,则bi,j=1,否则bi,j=0。实际上我们将假设处理网站i的私有请求的服务器j也可以处理该网站的公共请求。因此,如果bi,j=1,则ai,j=1。
与每个服务器j相关联的是作为客户到达速率的函数测量预期响应时间的函数Rj。该功能将依赖于服务时间分布,而服务时间分布又将依赖于处理器速度。函数Rj一般将具有递增特性和凸特性。对于在有关到达速率模式和服务时间的特定简化假设下计算或估算Rj,存在如Lavenberg提出的经典队列方法,参见“Computer PerformanceModeling Handbook(计算机性能建模手册)”,Academic Press,New York,NY(1983),在此将其全文引作参考,但是一般而言,该函数可能需要通过模拟试验或监视来估计。
根据该函数,可以假设在服务器j上将存在最大容许负载Lj,其中,超过该阈值将导致Rj的值过大。当然,如果设置Lj=∞,则该最大负载约束将太松。假设在给定时刻对于网站i当前存在ci个公共请求和di个私有请求。将这些请求进一步分解成服务器j上的网站i的ci,j个公共请求和di,j个私有请求。因此, c i = Σ j = 1 N c i , j , 并且每当ai,j=0时,ci,j=0(不能从网站未被分配的服务器处理该网站的公共请求)。类似地,每当bi,j=0时,di,j=0。设 C = Σ i = 1 M c i 表示当前公共请求的总数,并且类似地, D = Σ i = 1 M d i 表示当前私有请求的总数。
在给定当前负载和网站到服务器分配的情况下,当在以下约束条件下最小化目标函数
Σ j = 1 N R j ( Σ i = 1 M ( x i , j + y i , j ) ) - - - ( 1 )
时,服务器负载可以被认为是最优均衡的,其中这些约束条件为:
∑(xi,j+yi,j)∈{0,...,Lj},                     (2)
Σ j = 1 N x i , j = c i , - - - ( 3 )
如果ai,j=0则xi,j=0,                            (4)
Σ j = 1 N y i , j = d i , - - - ( 5 )
以及
如果bi,j=0则yi,j=0,                            (6)
在此,xi,j是表示可能由服务器j处理的网站i的公共请求的假设数的决策变量。类似地,yi,j是表示可能由服务器j处理的网站i的私有请求的假设数的决策变量。目标函数测量各个服务器上的预期响应时间之和,它与平均响应时间相差一个倍数常数。从优化问题的角度而言,该常数是无关的。约束条件(2)限制服务器i上的容许负载。约束条件(3)确保网站i公共请求的总数等于当前这些请求的实际数。约束条件(4)确保对于公共请求考虑网站到服务器分配。约束条件(5)到(6)是私有请求的对应要求。如果在最优解中 X j = Σ i = 1 M x i , j 并且 Y j = Σ i = 1 M y i , j , 则注意Xj+Yj表示服务器j上的期望负载。我们最终的目标将是确保最优负载Xj+Yj和实际负载 Σ i = 1 M ( c ij + d ij ) 对于每个服务器j总是相互接近。
上述优化问题是所谓的离散类约束可分离凸资源分配问题的特殊情况。这些类对应于各个站点的公共和私有请求。该问题由于约束条件(2)是离散的,由于约束条件(3)和(5)而是资源分配问题,并且由于约束条件(4)和(6)而类约束的。可分离性术语是指目标函数的性质,并且凸特性术语是显然的。如Tantawi等人所述,离散类约束资源分配问题可以使用图论优化过程来准确且高效地求解。
参照图3,示出目标过程的优选实施例的流程图。假设存在可行解,过程共进行C+D步。创建例如图2中的有向图,并且在整个过程期间都将维护它。图的节点是服务器1,...,N以及标注为“节点0”的哑节点。对于每个i,设置ai,0=1和bi,0=1,以及L0=0。我们将创建和修改部分可行解{xi,j|i=1,...M,j=0,...,N}∪{yi,j|i=1,...,M,j=0,...,N}。最初,在图3中的步骤100和105,对于每个i设置该部分可行解,以使得对于所有j=1,...,N,xi,0=ci,Yi,0=di,并且xi,j=Yi,j=0,因此,所有资源都驻留在哑节点上。在步骤110初始化有向图,并且在任何步骤,如果存在至少一个网站i1满足
a i 1 , j 1 = a i 1 , j 2 = 1 , - - - ( 7 )
x i 1 , j 1 > 0 , - - - ( 8 )
&Sigma; i = 1 M ( x i , j + y i , j ) < L j 2 , - - - ( 9 )
或者,可替换地,存在至少一个网站i1满足
b i 1 , j 1 = b i 1 , j 2 = 1 , - - - ( 10 )
y i 1 , j 1 > 0 , - - - ( 11 )
以及条件(9),则有向图具有从节点j1∈{0,...,N)到节点j2∈{0,...,N)的有向弧。条件(7)表示节点j1和j2可以处理网站i1的公共请求。条件(8)表示网站i1的公共请求已分配给节点j1。条件(9)表示该请求可以转移给节点j2,而不超过那个节点上的负载限制。条件(10)、(11)和(9)是私有请求的对应要求。注意,可以存在以节点0为起点的有向弧,但是不存在以节点0为终点的有向弧。从而接收节点将总是真实服务器,而不是哑节点。
该方法的一般步骤在对于其存在从0到j的有向路径的所有节点j∈{1,...,N)中查找第一差值
R j ( &Sigma; i = 1 M ( x i , j + y i , j + 1 ) ) - R j ( &Sigma; i = 1 M x i , j + y i , j ) - - - ( 12 )
最小的获胜节点。此所谓的第一差值是连续函数的导数的离散模拟。第一差值是由于Rj的凸特性而对于每个i在j中是非递减的。如果不存在该节点,则过程以不可行解终止。否则,选择从0到获胜节点的最短有向路径。针对该路径中的每个有向弧(j1,j2),对于适当的网站i1
Figure A0380149600172
的值减1,并且
Figure A0380149600173
的值增1(由于公共请求的增减或者私有请求的减增)。在所有有向弧上执行该步骤具有从哑节点删除一个单位的负载,并且将一个单位的负载加到获胜节点的效应。对于中间节点的负载没有有效效应(net effect)。因此,哑节点用作资源的集结区域(staging area),在每个步骤,将其中之一释放到服务器节点中。然后对有向图执行簿记,这可能修改一些有向弧以及潜在断连的某些节点,并且重复该步骤。在(C+D)个步骤之后,过程以对原始离散类约束资源分配问题的最优解终止。可行性由于有向图中各弧上的条件而得到保证。
更具体地参照图3,目标过程的优选实施例在步骤100通过对于所有站点i和服务器j将变量xi,j和yi,j设为0来开始。该过程在执行中将增大和减小这些变量。在步骤105,将哑节点初始化为节点0。所有资源初始都放在这里,从而,设置xi,0=ci以及yi,0=di。在步骤110,根据方程(7)-(11)初始化连接N+1个节点的有向图,下面将参照图3b对此进行更详细的描述。可以从此确定将存在从哑节点0到如下节点j的有向弧,其中对于节点j,存在至少一个具有ai,j=1或bi,j=1的网站i。在过程的执行中,将修改该图。在步骤115,设置k=1。该变量将在分配资源的时候对资源单位进行计数。在步骤120,将m初始化为无穷大,并且将j初始化为1。在步骤125,判定是否存在从0到节点j的有向路径。如果存在,则在步骤130,对于该服务器j估算方程(12),并且将它与m比较。如果小,则在步骤135设置j*=j,并且将m设为方程(12)的值。这是m的当前最小值。然后,进入步骤140。如果在步骤125没有任何路径,或者如果步骤130中的方程(12)估算为m或更大,则也进入步骤140。步骤140增大j。在步骤145,检查j是否为N或更小。如果是,则返回到步骤125。否则,进入步骤150,其中,将m与无穷大进行比较。如果m不小于无穷大,则不存在从哑节点到任何节点的路径,因此不存在任何对该问题的可行解。从而,过程在步骤155停止。否则,进入步骤160并且查找最短该路径。在步骤165,对该路径执行簿记,增大和减小xi,j和yi,j的适当值。在这样做当中,一个单位的资源将从哑节点删除,并且一个单元的资源将加到服务器j*,下面将参照图3c对此进行更详细的描述。然后,在步骤170,对有向图执行簿记,再次确保满足方程(7)-(11)。在该过程中可能增加一些有向弧,并且可能删除一些有向弧,下面将参照图3d对此进行更详细的描述。在步骤175,增大k。在步骤180,测试k以查看它是否为C+D或更小。如果否,则在步骤185过程以最终解xi,j和yi,j完成,否则返回到步骤120以继续过程。
参照图2,示出类约束资源分配过程的有向图中的路径。注意,在此没有示出该图的所有节点和有向弧。负载正在从哑“节点0”20转移到获胜(服务器)节点,即其第一差值最小的连接到节点0的节点。所示的有向路径旨在是最短有向路径。有向弧编号为1至5。在本图中,某网站的一个新(公共或私有)请求通过有向弧1分配,但是向其分配该请求的第一(服务器)节点21不改变其活动级别。实际上,起始四个服务器节点21到24都没有不同的活动级别。第五、获胜服务器节点25增加一个单位的活动,而哑节点20减少一个单位的活动。
参照图3b,示出与图3的步骤110相对应的初始化过程。在步骤400,初始化j=1,然后在步骤405,测试以查看Lj是否大于0。如果是,则在步骤410将i初始化为1,并且在步骤415测试以查看aj是否大于0。如果是,则在步骤420测试以查看xi0是否大于0。如果是,在步骤425创建从哑节点0到j的有向弧,并且进入步骤430。如果步骤415或步骤420失败,则进入步骤435,其中测试以查看以查看bj是否大于0。如果是,则在步骤440测试以查看yi0是否大于0。如果是,则如前所述,流程进入步骤425。如果步骤435或步骤440失败,则控制流至步骤430,其中,增大j。在步骤445,测试以查看j是否小于或等于N。如果否,则控制循环回到步骤405,否则在步骤450退出。
参照图3c,示出图3的步骤165的路径簿记过程的流程图。在该流程图中,假设最短路径具有k个有向弧,并且标注为从j0=0到j1到j2等等到jk=j。在步骤500,初始化j=0,并且在步骤505,初始化i=1。在步骤510,检查以查看是否aij=ai(j+1)=1。如果是,则在步骤515检查xij是否大于0。如果是,则在步骤520减小xij并且增大xi(j+1)。如果步骤510或515中的任一测试失败,则进入步骤525,其中,类似地检查以查看是否bij=bi(j+1)=1。如果是,则在步骤530检查yij是否大于0。如果是,则在步骤535减小yij,并且增大yi(j+1)。如果步骤525或530中的任一测试失败,则进入步骤540,其中,增大i并且返回到步骤510(我们知道一个服务器i将最终通过具有约束条件的该测试)。现在在步骤520或步骤535之后,进入步骤545,其中,增大j。在步骤550,测试以查看j是否小于k。如果是,则返回到步骤505。如果否,则过程在步骤555退出。
参照图3d,示出了图3的步骤170的图簿记过程的流程图。在步骤600开始,将j1初始化成1。在步骤605,将j2初始化成1。在步骤610,测试以查看关于Lj2的条件(9)是否为真。如果否,过程在612退出,否则在步骤615初始化i=1,然后在步骤620测试以查看是否aj1=aj2=1。如果是,则在步骤625测试以查看是否xij1大于0。如果是,则在步骤630创建从节点j1到节点j2的有向弧,并且进入步骤635,其中,增大j2。如果步骤620或步骤625失败,则进入步骤640,其中测试以查看是否bj1=bj2=1。如果是,则在步骤645测试以查看是否yij2大于0。如果是,则如前所述进入步骤630。如果步骤640或步骤645失败,则进入步骤635。在步骤650,测试以查看j2是否小于或等于N。如果是,在步骤655增大j1,并且进入步骤660,其中,测试以查看j1是否小于或等于N。如果否,则在步骤665退出。如果步骤650中的测试失败,则进入步骤670,检查是否j1=j2。如果j1=j2,则返回到步骤635;否则返回到步骤610。如果步骤660中的测试失败,则进入步骤675,其中,还检查是否j1=j2。如果j1=j2,则返回到步骤655;否则返回到步骤605。
动态过程(动态)
参照图4,现在描述负载均衡过程的动态过程组件。该方法假设(静态过程组件)站点到服务器分配是已知事物。这相当于确定矩阵A和B。然后它监视服务器上的准确或近似负载以及新客户请求到达网络调度器。动态过程组件的工作是对这些排队请求在网络调度器中进行路由决策,将它们分配给适当的服务器。在这样做当中,它试图在可能的程度内实现由目标过程支配的最优平均响应时间和服务器负载级别。实际上,它对在网络调度器中排对的通信调用目标过程以作出其决策。路由决策可以通过准确或概率策略来实现。一旦请求由静态过程组件分配给服务器,就将在那些服务器上满足它们。换句话说,在优选实施例中,网络调度器的决策被认为是最终的,并且服务器本身上的请求不能根据负载来重定向。
定义一些元符号标记将是有用的。在任何给定时间,一些负载将在网络调度器中排队,并且一些负载将已经调度到服务器。我们希望区分这两种负载以及总体负载。当引用与调度器中的负载有关的变量时,将使用单点,并且当引用与服务器中的负载有关的变量时,将使用双点。如果不采用任何点,则变量将表示组合调度器和服务器负载。
该方法监视服务器j上的网站i的已调度公共请求的当前数目
Figure A0380149600201
和已调度私有请求的数目i,j。动态过程组件不对服务器上的请求完成直接作出反应,但是它确实适当地减小 和i,j的值。如果不能容易地获得该数据,则可以对它进行估算。同时,新请求在网络调度器中到达并且排队等候。设 表示自从最后执行动态过程组件以来网站i的新公共请求的数目。类似地,设i表示自从最后执行动态过程组件以来网站i的新私有请求的数目。通过合计,设 C &CenterDot; = &Sigma; i = 1 M c &CenterDot; i D &CenterDot; = &Sigma; i = 1 M d &CenterDot; i 分别表示调度器中的排队公共和私有请求的总数。
动态过程组件可以设计成在固定时间间隔之后、队列中的项数 达到某固定批量阈值之后或者以可能是两个标准的某组合唤醒和执行。
对在网络调度器中排队的请求应用目标过程,同时不管先前已调度的请求。为此,必须需要一些簿记。具体而言,对于每个服务器j,通过设置
R &CenterDot; j ( z ) = R j ( z + &Sigma; ( c &CenterDot; &CenterDot; i , j + d &CenterDot; &CenterDot; i , j ) ) - - - ( 13 )
来定义新的凹增函数
该函数简单地变动原始函数以考虑服务器中不能干扰的负载量。由于相同原因,还通过设置
L &CenterDot; j = L j - &Sigma; i = 1 M ( c &CenterDot; &CenterDot; i , j + d &CenterDot; &CenterDot; i , j ) - - - ( 14 )
来定义修正容许负载限值
通过这些手续,调度
Figure A0380149600219
个排队请求的最优方式通过求解下面受限目标过程组件问题来确定:在以下约束条件下
最小化 &Sigma; j = 1 N R &CenterDot; j ( &Sigma; i = 1 M ( x &CenterDot; i , j + y &CenterDot; i , j ) ) - - - ( 15 )
这些约束条件为:
&Sigma; i = 1 M ( x &CenterDot; i , j + y &CenterDot; i , j ) &Element; { 0 , . . . , L &CenterDot; j } , - - - ( 16 )
&Sigma; j = 1 N x &CenterDot; i , j = c &CenterDot; i , - - - ( 17 )
如果ai,j=0则 x &CenterDot; i , j = 0 , - - - ( 18 )
&Sigma; j = 1 N y &CenterDot; i , j = d &CenterDot; i , - - - ( 19 )
以及
如果bi,j=0则 y &CenterDot; i , j = 0 , - - - ( 20 )
这对应于图4的步骤200。即使在最优解中,服务器j上的总负载 &Sigma; i = 1 M ( x &CenterDot; i , j + y &CenterDot; i , j + c &CenterDot; i , j + d &CenterDot; i , j ) 在总体上是次优的。然而,在不能在服务器之间转移先前已分配的负载的附加约束条件下,它是最优的。
而且,注意,在每当新请求到达网络调度器时唤醒该方法从而对于某网站i1 c &CenterDot; i 1 , j = 1 或者 d &CenterDot; i 1 , j = 1 的特殊情况下,该过程简直是贪婪的。换句话说,如果 c &CenterDot; i 1 , j = 1 , 从而要分配网站i1的新公共请求,则选择其第一差值
R j ( &Sigma; i = 1 M ( c &CenterDot; &CenterDot; i , j + d &CenterDot; &CenterDot; i , j + 1 ) ) - R j ( &Sigma; i = 1 M ( c &CenterDot; &CenterDot; i , j + d &CenterDot; &CenterDot; i , j ) ) - - - ( 21 )
最小的满足 a i 1 , j = 1 &Sigma; i = 1 M ( c &CenterDot; &CenterDot; i , j + d &CenterDot; &CenterDot; i , j ) < L j 的那个服务器j。话说,如果 d &CenterDot; i 1 , j = 1 , 从而要增加网站i1的新私有请求,则选择由表达式(21)给出的其第一差值最小的满足 b i 1 , j = 1 和负载限制约束条件的那个服务器j。
动态过程可以由图5和6所示的例子阐述。考虑驻留8个站点的15服务器配置。有5个服务器被分配处理公共网站通信。我们将这些服务器称作群集服务器,因为每个这样的服务器都具有处理来自多个站点的通信的能力。还有10个服务器被分配处理私有网站通信。因此我们将这些服务器称作分区服务器。每个这样的服务器可以处理公共和私有通信,但是这些通信仅来自单个网站。考虑图5,它是本例的网站符号汇集表。每个符号具有唯一于网站的形状。例如,circularlogic.com以圆圈表示。灰符号表示公共通信而黑符号表示私有通信。相关群集和分区服务器基数(cardinalities)也被表示。分别存在分配矩阵A和B的行总和
Figure A03801496002210
例如,circularlogic.com分配有3个群集服务器和2个分区服务器。
所有这些更详细地见于图6。内圈包含5个群集服务器C1到C5,并且外圈包含10个分区服务器P1到P10。例如,注意,circularlogic.com分配给群集服务器C1、C2和C5。在服务器C1上,该网站的公共通信必须与hexnut.com和eggcentric.com的公共通信共享该服务器。类似地,circularlogic.com分配给分区服务器P1和P2。这两个服务器中的每一个均处理公共和私有通信,但是这些通信仅对应于该网站。
实际上,图6传达更多信息。它示出由目标过程使用的种类的略加修改的有向图。回想图2,该图示出了在求解类约束资源分配问题中在特定时刻从哑节点到服务器节点的最短路径。作为对比,图6示出有向图H,该图在一个例外的情况下示出该时刻的所有有向弧和节点(例外是消除了哑节点和以其为起点的有向弧)。
从而H如下定义:节点对应于服务器。对于不同服务器节点的每个对j1和j2,假如存在满足条件(7)到(9)或者条件(10)、(11)和(9)的至少一个网站i1,则存在从j1和j2的有向弧。
在图6中,不是所有有向弧都出现在两个方向上,因为它们可能不能满足所有相关约束条件。例如,不存在从P3到P4的有向弧,显然地这是因为在P3上不存在任何负载,公共负载(条件8)或私有负载(条件11)。不存在从C3到P7的有向弧,显然地这是因为P7以全部容量工作(条件9)。在C1与P3之间的任一方向上都不存在弧,显然地这是因为P3上没有公共负载(条件8)并且C1以全部容量工作。在P1与C4之间的任一方向上都不存在弧,这是因为既不满足条件(7)又不满足条件(10)。
再次,有向弧的存在表示减小服务器上的负载、在不超过负载容量的情况下增大另一个服务器上的负载,并且使其他服务器上的负载不受影响的潜在可能性。从哑节点到服务器节点之一的有向路径允许将一单位的负载从集结节点(staging node)转移到那个服务器节点,而使所有其他服务器节点不受影响。在该转移之后,图H可以通过簿记方法来修改以考虑约束条件(8)、(9)和(11)的当前状态。(约束条件(7)和(10)的状态保持不变)。
在图6中可以看到三种不同类型的有向弧。表示公共或私有负载从一个分区服务器到另一个分区服务器的潜在转移的一种类型可以在P1与P2之间看到。表示公共负载从分区服务器到群集服务器或者相反的潜在转移的第二类型可以在P1与C1之间看到。表示公共负载从一个群集服务器到另一个群集服务器的潜在转移的第三类型可以在C1与C2之间看到。
应该理解,按照具有尽可能多的有向弧,图H越密,则目标过程越有可能可以实现产生较低响应时间的良好质量结果。这是下一步描述的静态过程组件的目标。
动态过程的详细实施例在图4的流程图中示出。控制流程以步骤200开始,采用目标过程来对于每个网站i和服务器j求解最优目标
Figure A0380149600242
。在步骤205,设置k=1。在步骤210,对于每个网站i和服务器j,将 初始化为0。这些变量将对相对于目标的调度器进度进行计数。在步骤215,确定什么网站对应于队列中的请求k。步骤220判定请求是公共的还是私有的。对于这两种可能性的每一种,存在对等的流程,并且我们集中于公共请求情况。这开始于步骤225,其中,设置j=1以及M为负无穷大。将试图如下查找在目标和所实现值之间具有最大差值的服务器:在步骤230,判断M是否小于
Figure A0380149600245
如果是,在步骤235设置j*=j以及 M = x &CenterDot; i , j - X &CenterDot; i , j , 并且进入步骤240。如果步骤230中的测试失败,则也分支至步骤240。在步骤240,增大j。在步骤245,判断j是否小于或等于N。如果是,则返回到步骤230。如果否,则在步骤250得到获胜服务器j*,增大
Figure A0380149600247
并且将请求k调度到服务器j*。然后进入步骤255,其中,增大k。在步骤260,测试k是否小于或等于
Figure A0380149600248
如果是,则返回到步骤210以调度下一请求。如果否,则由于清空了请求队列而停止。如果步骤220判定请求是私有请求,则进入步骤270到295。这些步骤除了处理私有请求而不是公共请求之外,完全类似于步骤225到250。最终,控制流程再次返回到步骤220。
静态过程组件
参照图7至9,现在描述将站点分配给服务器的静态过程组件。目标是优化目标过程的可实现性能,并且因此优化动态过程组件的可实现性能。静态过程组件的关键输入将是每个网站的公共和私有请求的平均需求预测以及容许网站到服务器分配的任何约束条件。静态过程组件的输出将简单地是两个{0,1}分配矩阵A=(ai,j)和B=(bi,j)。
还假设网站到服务器分配的约束条件是已知事物。这些约束条件可能与服务器本身的物理容量、实现可接受高缓存命中率的目标、服务器上的操作系统、某些站点可能协商过的固定服务器分配等等有关。这些约束条件可能相当复杂或相当基本。例如,缓存约束条件可能根据分析命中率模型、网站数据的局部性和缓存大小而可能相对复杂。它将具有确保较小数目的站点分配给每个服务器的效果。另一方面,操作系统约束条件可能简单地是哪些站点不适于某些服务器的列表。要点是静态过程组件在性质上是试探性的(heuristic),并且可以简单地通过在考虑任何分配变化之前检查约束条件来处理它们。
静态过程组件具有两种可能模式。初始模式(图9)用来从零开始配置新系统,在这种模式下,尚未有节点分配给服务器。增量模式则周期性地用来根据修正网站需求预测来调整现有网站到服务器分配。为了确保这些调整的实现是实用的,考虑限制所允许的容许网站到服务器分配变化数的约束条件。可以看出,两种模式都将采用本质上相同的方法。在初始模式下,可能必须采用响应时间函数的分析模型,而在增量模式下,作为代替可能使用更准确的测量响应时间。这大概将更好地捕获缓存和其他真实世界现象的效应。
增量静态过程组件不应执行得太频繁,因为进行分配变化存在较高的成本。每星期大约一次可能是合理的。准确的频率将依赖于该成本与在给定更新网站预测的情况下性能改进的潜在可能性之间的相对折衷。大概,静态过程的运行可以通过检测某种负载失衡条件来触发。
两个模式下的主要目标都是实现如下定义的无向图G的高连接性:节点对应于服务器。对于不同节点的每个对j1和j2,假如存在对于其 a i 1 , j 1 = a i 1 , j 2 = 1 的至少一个网站i1,或者对于其 b i 1 , j 1 = b i 1 , j 2 = 1 的至少一个网站i1,则在j1与j2之间存在一条弧。这些条件相似于有向图H的定义中的条件(7)和(10)。由于在任何均衡良好的网络场中一般都将满足条件(8)、(9)和(11),因此认为G用作H的有效替代物。还注意,条件(7)和(10)在本质上是静态的,而条件(8)、(9)和(11)在本质上是动态的。这是为什么G更适于静态过程组件的原因。
图7示出上述例子的图G。注意该图类似于图6所示的有向图H。然而,在服务器C1与P3之间,在图7中存在一条弧,而图6在任何方向上都没有对等的有向弧。并且图6中的若干其他有向弧如从服务器P4到P3的有向弧没有相反方向的有向弧与之匹配。注意,在图7中,两个群集服务器之间的弧以实线表示,两个分区服务器之间的弧以点虚线表示,而群集服务器与分区服务器之间的弧以短划虚线表示。
将要试图优化的目标函数是在本发明中视作黑盒的目标过程组件本身的目标函数。在此的基本原理是该量度标准即有效平均响应时间显然比其他两个图论替代物(直径或平均距离)更直接适合,并且在计算上也没有显著更高的计算成本。
所采用的元标记法是代字号(~)将引用静态过程问题公式表述。
将通过如下创建将要描述(在某种意义上是优选的)站点到服务器分配的空间的新矩阵
Figure A0380149600261
来进行: A ~ = ( a ~ i , j ) 将再次为大小M×N的{0,1}矩阵。在每个网站都存在公共和私有通信的典型条件下,将以下面方式将 转换成
Figure A0380149600264
a i , j = a ~ i , j - - - ( 22 )
Figure A0380149600267
这作出以下隐式假设:对于其行总和 &Sigma; i = 1 M a ~ i , j = 1 的任何服务器j是具有一个网站的公共和私有通信的分区服务器,并且所有其他服务器是具有多个公共网站通信的服务器。注意,不是分配矩阵A和B的所有可能对都能被认为是从某矩阵
Figure A0380149600269
转换出的。然而,不能从某矩阵
Figure A03801496002610
转换出的矩阵A和B对是较不可取的。静态过程组件将不选择它们。
必须进行微小的调整来处理特殊情况。如果对于网站i只存在私有通信,则将要求每当 a ~ i , j = 1 时,对于i′≠i, a ~ i &prime; , j = 0 . 这使得j是网站i的分区服务器。设置ai,j=0和bi,j=1。如果对于网站i只存在公共通信,则即使 &Sigma; i = 1 M a ~ i , j = 1 , 分配给那个网站的任何服务器j也都可以正式认为是公开的。从而设置 a i , j = a ~ i , j 和bi,j=0。
还将需要修改每个服务器j的响应时间函数Rj,从而处理那个服务器上的负载超过其负载限值Lj的情况。该不可行性至少在静态过程组件过程的早期阶段可能发生,并且需要通过以大的目标函数成本强制可行性来处理它们。从而考虑非常大的数Q,并且设对于k≤Lj R ~ j ( k ) = R j ( k ) , 但是 R ~ j ( L j + 1 ) = R ~ j ( L j ) + Q , R ~ j ( L j + 2 ) = R ~ j ( L j + 1 ) + 2 Q 等等。对于k>0,一般递归式定义
R ~ j ( L j + k ) = R ~ j ( L j + k - 1 ) + kQ - - - ( 24 )
注意, 保持凸特性和递增特性。还将最大容许负载重新定义为
L ~ j = &infin; .
对于网站i,设
Figure A0380149600277
分别表示预测公共和私有负载。将基于对于每个网站都存在公共和私有通信的情况来阐述,但是在其他情况下,本领域的技术人员可以很快地确定适当的修改。
在不损失一般性的情况下,假设站点按照增大的预测总负载
Figure A0380149600279
来重索引。还将假设服务器按照增高的性能来重索引。例如,这可以通过它们的原始最大容许负载Lj来确定。
初始分配方法的第一步骤是在可能的程度内顺序匹配站点与服务器。可能存在从某些服务器限制某些站点的可行性约束条件,并且必须考虑这些约束条件。从而,如图9的步骤305到335所示依次从网站i=1到M循环,在步骤325,设置 a ~ i , j 1 = 1 , 其中,j是可行但当前未分配服务器的索引,并且在初始化时,对于所有其他j,设置 a ~ i , j = 0 . 有可能但大概又不太可能的是,对于所有站点都将不存在可能的可行分配。这可能由于约束条件而发生,并且它可能由于M>N而发生。在这种情况下,初始分配方法已失败。否则,此刻存在M个分区服务器,并且其余N-M个服务器空闲。
评估该初始解的目标函数,该函数恰好为
&Sigma; i = 1 M R ~ j 1 ( c ~ i + d ~ i ) - - - ( 25 )
初始解现在将通过实现所谓的邻域扩展试探法来修改。该试探法采用度量Δ来测量两个可能的站点到服务器分配之间的距离,马上将对此进行描述。简要地,邻域扩展试探法是试图避免陷入局部极小值同时实现较低计算成本的迭代改进过程。假定可行解搜索空间中目前的预定义度量Δ以及如上所述的现有初始可行解,该方法分阶段进行。在每个阶段的开头,存在可以在该阶段内修改的所谓当前解。在第一阶段的开头,当前解是初始解。每个阶段连续搜索当前解周围距离1、2等的邻域(当前解周围距离k的邻域是与当前解的距离小于或等于k的所有可行分配集。当前解周围距离k的环是与当前解的距离等于k的所有可行分配集,它是距离k的邻域减去距离k-1的邻域)。如果在当前解周围距离1的邻域内可以发现目标函数改进,则该试探法选择最佳该改进,将它重新标注为当前解,并且通过开始下一阶段来迭代过程。如果在距离1的邻域内不能发现改进,则该试探法改为考虑距离2的环。再次存在两种可能性:如果在此存在改进,则选择最佳该改进作为当前解,并且过程开始下一阶段。如果否,则过程考虑距离3的环等等,直到固定距离限值,比方说K。如果在第K环内仍未发现任何目标函数改进,则该过程以等于当前解的最终解终止。各环的检查发生于图9的步骤360、380和385。在步骤370,检查改进。
图8示出该过程。初始阶段开头的当前解位于第一邻域集即距离1的中心400。该试探法顺序搜索第一邻域和随后环,直到发现改进。在本图中,改进仅发生于第K环即距离K。然后,该试探法将当前解重新设置为在由新中心410表示的在该搜索中所发现的最佳改进,并且开始第二阶段。本图示出该解的邻域。此时在第三环内发现改进。此时开始第三阶段,但是在本图中未示出。如果在第一阶段第k环都不能产生改进,则初始解将为最终解。
现在定义距离量度Δ。设 A ~ 1 = ( a ~ i , j 1 ) A ~ 2 = ( a ~ i , j 2 ) 是两个该分配,并且定义
&Delta; ( A ~ 1 , A ~ 2 ) = &Sigma; i = 1 M &Sigma; j = 1 N | a ~ i , j 1 - a ~ i , j 2 | - - - ( 26 )
在此的意图是简单的:如果例如通过将单个网站加到服务器之一或者从中将其减去来将分配 修改成新分配
Figure A0380149600285
则获得 &Delta; ( A ~ 1 , A ~ 2 ) = 1 . 将网站从旧服务器移到新服务器(先前未分配有该网站)在图8中具有距离2。从服务器减去网站同时将不同网站加到那个服务器也具有距离2。交换不同服务器上的不同站点具有距离4等等。
对于给定解 及其转换分配矩阵
Figure A0380149600289
则改进测试涉及求解在以下约束条件下最小化
&Sigma; j = 1 N R ~ j ( &Sigma; i = 1 M ( x ~ i , j + y ~ i , j ) ) - - - ( 27 )
的目标过程组件问题,其中这些约束条件为:
&Sigma; j = 1 N x ~ i , j = c ~ i - - - ( 28 )
如果ai,j=0则 x ~ i , j = 0 - - - ( 29 )
&Sigma; j = 1 N y ~ i , j = d ~ i - - - ( 30 )
以及
如果bi,j=0则 y ~ i , j = 0 - - - ( 31 )
当然,涉及 L ~ j = &infin; 的约束条件是无意义的。但是在给定超过限值Lj的负载的成本的情况下,将预期在邻域扩展试探法中在非常少的阶段之后获得对于每个服务器j满足
&Sigma; i = 1 M ( x ~ i , j + y ~ i , j ) &Element; { 0 , . . . , L j } - - - ( 32 )
的解。从而从所有角度都可行的分配应该可以迅速地实现。实际上,该过程的前几个阶段将典型地将高量站点分配给当前未用的服务器,然后该方法将开始将分区服务器变成群集服务器,典型地首先改变较高性能服务器的状态。
增量过程将周期性地运行,可能是每星期一次,以在存在变化预测等的情况下保持良好的网站到服务器分配。幸运的是,它使用实质上相同的方法。
当然,初始解是来自最后一次静态过程组件运行的当前解,并且通过上述邻域扩展法来修改它。仅有的改变是采用如果初始解和当前解之间的距离超过某用户定义的阈值T则停止的附加停止标准。这样的原因是实现分配改变实在是昂贵的,并且不希望轻率地允许静态过程组件运行的连续实例之间的不同解。
参照图9,示出静态过程的详细实施例。在步骤300开始,将网站i初始化为1。在步骤305,将服务器j初始化为1。在步骤310,判定服务器j是否适于网站i。如果是,则进入步骤320,其中,判定服务器j是否是当前未分配的。如果它是当前未分配的,则在步骤325分配它,并且在步骤330增大网站i。在步骤335,判定i是否小于或等于站点的总数M。如果是,则返回到步骤305。如果步骤310或320中的测试失败,则进入步骤340,其中,增大服务器j。在步骤345,判定j是否小于或等于服务器的总数N。如果是,则返回到步骤310。如果否,则在步骤350以非可行解停止。现在返回到在步骤335站点已被用尽的情况,进入步骤355,开始该过程的邻域扩展组件。估计由方程(25)给出的该解的值R。在步骤360,设置k=1。在步骤365,搜索第k环以估计最佳可能解Rk。在步骤370,与最佳当前解R进行比较来评估Rk。如果新值更好,则在步骤375使其为最佳解,并且返回到步骤360。如果新值不更好,则在步骤380增大k。在步骤385,判定所有环k是否已被用尽。如果它们尚未用尽,则返回到步骤365。否则在步骤390以最终分配解停止。
本发明可以容易地配置成例如通过在可由能够执行指令的机器如计算机读取的存储介质上有形地实施指令程序来自动化。
还应该理解,术语“网站”无需将本发明限定于在万维网上与超文本标记语言(HTML)文档一起使用,而是应解释为包括能够接收客户请求、输出结果并且与例如局域网等上的服务器通信的任何用户网络接口。
应该理解,除非明确表示,否则在此所公开的所有物理量不应解释为准确地等于所公开的量,而是大约等于所公开的量。此外,仅仅缺少诸如“大约”等的限定词不应解释为明确表示任何这样公开的物理量是准确量,而不管是否对于在此公开的任何其他物理量使用了这样的限定词。

Claims (11)

1.一种用于控制具有多个网站和服务器的网络场的方法,所述方法包括:
将由所述网站接收的客户请求分类成多个类别,所述类别包括可共享客户请求和不可共享客户请求;
以使所述服务器中的任一个都可以处理从所述网站中的不同网站接收的可共享客户请求的方式传送所述可共享客户请求;以及
将所述不可共享客户请求从所述网站中的特定网站仅传送到所述特定网站所被分配的特定服务器。
2.如权利要求1所述的方法,还包括目标过程,所述目标过程包括:在给定所述网站到所述服务器的分配和当前客户请求负载的情况下,为每个所述客户请求,从每个所述客户请求所要分配的所述服务器中确定最优服务器,从而最小化任何给定时刻的平均客户响应时间。
3.如权利要求2所述的方法,其中,所述目标过程通过在以下约束条件下:
&Sigma; ( x i , j + y i , j ) &Element; { 0 , . . . , L j } ,
&Sigma; j = 1 N x i , j = c i ,
如果ai,j=0则xi,j=0,
&Sigma; j = 1 N y i , j = d i ,
以及
如果bi,j=0则yi,j=0
最小化函数
&Sigma; j = 1 N R j ( &Sigma; i = 1 M ( x i , j + y i , j ) )
来实现,其中,M是网站数,N是服务器数,Rj是作为服务器j上的客户到达速率的函数的预期响应时间,xi,j是表示可能由服务器j处理的网站i的可共享请求的假设数的决策变量,yi,j是表示可能由服务器j处理的网站i的不可共享请求的假设数的决策变量,Li是服务器j的最大容许负载,ci是来自网站i的可共享客户请求的当前数,di是来自网站i的不可共享请求的当前数,ai,j是表示来自网站i的可共享请求是否可以传送到服务器j的索引,并且bi,j是表示来自网站i的不可共享请求是否可以传送到服务器j的索引。
4.如权利要求3所述的方法,还包括:
创建和维护一个有向图,所述有向图包括一个哑节点和多个服务器节点,每个所述服务器节点对应于所述服务器之一;
指定所述服务器节点中表达式 R j ( &Sigma; i = 1 M ( x i , j + y i , j + 1 ) ) - R j ( &Sigma; i = 1 M ( x i , j + y i , j ) ) 最小的一个服务器节点为获胜节点;以及
选择从所述哑节点到所述获胜节点的最短有向路径。
5.如任一前面权利要求所述的方法,还包括静态过程,所述静态过程包括将所述网站中的特定网站分配给特定所述服务器以便处理不可共享客户请求。
6.如权利要求5所述的方法,其中,所述静态过程根据对来自每个所述网站的可共享和不可共享客户请求的预测需求,将所述网站分配给特定服务器。
7.如权利要求2至4中的任一项所述的方法,还包括动态过程,所述动态过程包括:
检查下一个客户请求;
调用所述目标过程从而确定哪个服务器是当前处理所述下一个客户请求的最优服务器;以及
将所述下一个客户请求调度到所述最优服务器。
8.如权利要求7所述的方法,还包括:
将所述客户请求接收到队列中;并且
其中,所述动态过程还包括:
监视所述队列中的所述客户请求;
监视当前正在由所述服务器处理的客户请求;
对于每个第j服务器通过设置 R &CenterDot; j ( z ) = R j ( z + &Sigma; ( c &CenterDot; &CenterDot; i , j + d &CenterDot; &CenterDot; i , j ) ) 来定义函数
R &CenterDot; j ( z ) ;
对于每个第j服务器通过设置 L &CenterDot; j = L j - &Sigma; i = 1 M ( c &CenterDot; &CenterDot; i , j + d &CenterDot; &CenterDot; i , j ) 来定义修正容许负载限值 以及
利用所述 函数和修正容许负载限值
Figure A038014960004C5
来调用所述目标过程,以在以下约束条件下:
&Sigma; i = 1 M ( x &CenterDot; i , j + y &CenterDot; i , j ) &Element; { 0 , . . . , L &CenterDot; j } ,
&Sigma; j = 1 N x &CenterDot; i , j = c &CenterDot; i ,
如果ai,j=0则 x &CenterDot; i , j = 0 ,
&Sigma; j = 1 N y &CenterDot; i , j = d &CenterDot; i ,
以及
如果bi,j=0则 y &CenterDot; i , j = 0
最小化函数
&Sigma; j = 1 N R &CenterDot; j ( &Sigma; i = 1 M ( x &CenterDot; i , j + y &CenterDot; i , j ) ) ,
其中,
Figure A038014960004C12
是表示可能由服务器j处理的网站i的队列中可共享请求的假设数的决策变量,
Figure A038014960004C13
是表示可能由服务器j处理的网站i的不可共享请求的假设数的决策变量, 是来自网站i的队列中可共享客户请求的当前数, 是来自网站i的队列中不可共享请求的当前数,
Figure A038014960004C16
是当前正在服务器之一中处理的来自网站i的可共享客户请求的当前数,并且
Figure A038014960004C17
是当前正在服务器之一中处理的来自网站i的不可共享请求的当前数。
9.一种计算机程序,包括可由计算机执行的指令以执行如权利要求1至8中的任一项所述的方法。
10.一种网络场,具有多个网站和服务器,并且还包括:
用于从客户接收客户请求的部件;
用于处理所述客户请求以产生响应的部件;
用于将所述响应发送到所述客户的部件;
用于将所述客户请求分类成可共享客户请求和不可共享客户请求的部件;
用于以使所述服务器中的任一个都可以处理从所述网站中的不同网站接收的可共享客户请求的方式传送所述可共享客户请求的部件;以及
用于将所述不可共享客户请求从所述网站中的特定网站仅传送到所述特定网站所被分配的特定服务器的部件。
11.如权利要求10所述的网络场,还包括:
网络调度器,包括用于执行目标过程、静态过程和动态过程的部件;
所述目标过程包括在给定所述网站到所述服务器的分配和当前客户请求负载的情况下,为每个所述客户请求,从每个所述客户请求所要分配的所述服务器中确定最优服务器,从而最小化任何给定时刻的平均客户响应时间,其中所述共享客户请求可以分配给任何所述服务器,并且其中所述不可共享客户请求根据所述不可共享客户请求所发起的哪个所述网站而仅可以分配给特定服务器;
所述静态过程包括将特定所述网站分配给特定所述服务器;并且
所述动态过程包括:
检查下一个客户请求;
调用所述目标过程从而确定哪个服务器是当前处理所述下一个客户请求的最优服务器;以及
将所述下一个客户请求调度到所述最优服务器。
CNB038014963A 2002-01-24 2003-01-17 用于网络场通信控制的方法和网络场 Expired - Fee Related CN100556024C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/057,516 2002-01-24
US10/057,516 US7356592B2 (en) 2002-01-24 2002-01-24 Method and apparatus for web farm traffic control

Publications (2)

Publication Number Publication Date
CN1706165A true CN1706165A (zh) 2005-12-07
CN100556024C CN100556024C (zh) 2009-10-28

Family

ID=22011052

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038014963A Expired - Fee Related CN100556024C (zh) 2002-01-24 2003-01-17 用于网络场通信控制的方法和网络场

Country Status (10)

Country Link
US (1) US7356592B2 (zh)
EP (1) EP1472846B1 (zh)
JP (1) JP3989443B2 (zh)
KR (1) KR100754296B1 (zh)
CN (1) CN100556024C (zh)
AT (1) ATE301364T1 (zh)
CA (1) CA2471594C (zh)
DE (1) DE60301202T2 (zh)
TW (1) TWI238621B (zh)
WO (1) WO2003063447A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107979876A (zh) * 2017-11-16 2018-05-01 广州市百果园网络科技有限公司 数据传输方法及终端

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451183B2 (en) * 2003-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Assembly and method for balancing processors in a partitioned server
US7562143B2 (en) 2004-01-13 2009-07-14 International Business Machines Corporation Managing escalating resource needs within a grid environment
US7406691B2 (en) 2004-01-13 2008-07-29 International Business Machines Corporation Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment
US7552437B2 (en) 2004-01-14 2009-06-23 International Business Machines Corporation Maintaining application operations within a suboptimal grid environment
US20060048157A1 (en) * 2004-05-18 2006-03-02 International Business Machines Corporation Dynamic grid job distribution from any resource within a grid environment
US7266547B2 (en) 2004-06-10 2007-09-04 International Business Machines Corporation Query meaning determination through a grid service
US7584274B2 (en) * 2004-06-15 2009-09-01 International Business Machines Corporation Coordinating use of independent external resources within requesting grid environments
US7712102B2 (en) 2004-07-30 2010-05-04 Hewlett-Packard Development Company, L.P. System and method for dynamically configuring a plurality of load balancers in response to the analyzed performance data
US7712100B2 (en) * 2004-09-14 2010-05-04 International Business Machines Corporation Determining a capacity of a grid environment to handle a required workload for a virtual grid job request
US20060168584A1 (en) * 2004-12-16 2006-07-27 International Business Machines Corporation Client controlled monitoring of a current status of a grid job passed to an external grid environment
US7668741B2 (en) * 2005-01-06 2010-02-23 International Business Machines Corporation Managing compliance with service level agreements in a grid environment
US7761557B2 (en) * 2005-01-06 2010-07-20 International Business Machines Corporation Facilitating overall grid environment management by monitoring and distributing grid activity
US7533170B2 (en) * 2005-01-06 2009-05-12 International Business Machines Corporation Coordinating the monitoring, management, and prediction of unintended changes within a grid environment
US20060149652A1 (en) * 2005-01-06 2006-07-06 Fellenstein Craig W Receiving bid requests and pricing bid responses for potential grid job submissions within a grid environment
US7707288B2 (en) * 2005-01-06 2010-04-27 International Business Machines Corporation Automatically building a locally managed virtual node grouping to handle a grid job requiring a degree of resource parallelism within a grid environment
US7590623B2 (en) 2005-01-06 2009-09-15 International Business Machines Corporation Automated management of software images for efficient resource node building within a grid environment
US7793308B2 (en) * 2005-01-06 2010-09-07 International Business Machines Corporation Setting operation based resource utilization thresholds for resource use by a process
US7502850B2 (en) * 2005-01-06 2009-03-10 International Business Machines Corporation Verifying resource functionality before use by a grid job submitted to a grid environment
US7571120B2 (en) 2005-01-12 2009-08-04 International Business Machines Corporation Computer implemented method for estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms
US7562035B2 (en) 2005-01-12 2009-07-14 International Business Machines Corporation Automating responses by grid providers to bid requests indicating criteria for a grid job
US8176408B2 (en) * 2005-09-12 2012-05-08 Microsoft Corporation Modularized web provisioning
US20070101061A1 (en) * 2005-10-27 2007-05-03 Guruprasad Baskaran Customized content loading mechanism for portions of a web page in real time environments
US7979789B2 (en) * 2005-12-19 2011-07-12 Microsoft Corporation System and method of replacing a delegate component associated with a delegate modular software component at software execution time
US20080043965A1 (en) * 2006-08-01 2008-02-21 Microsoft Corporation Provision and Management of Conference Websites
JP2008097378A (ja) * 2006-10-12 2008-04-24 Nomura Research Institute Ltd ジョブ管理装置、ジョブ実行装置、及びそれら装置を含むジョブ管理システム
US8225192B2 (en) * 2006-10-31 2012-07-17 Microsoft Corporation Extensible cache-safe links to files in a web page
US20080114879A1 (en) * 2006-11-14 2008-05-15 Microsoft Corporation Deployment of configuration data within a server farm
US8849746B2 (en) * 2006-12-19 2014-09-30 Teradata Us, Inc. High-throughput extract-transform-load (ETL) of program events for subsequent analysis
CN101690004B (zh) * 2007-07-06 2013-10-23 Lg电子株式会社 在无线局域网系统中用于事件报告服务的方法和装置
US9117235B2 (en) * 2008-01-25 2015-08-25 The Trustees Of Columbia University In The City Of New York Belief propagation for generalized matching
US8683062B2 (en) * 2008-02-28 2014-03-25 Microsoft Corporation Centralized publishing of network resources
US20090259757A1 (en) * 2008-04-15 2009-10-15 Microsoft Corporation Securely Pushing Connection Settings to a Terminal Server Using Tickets
US8612862B2 (en) 2008-06-27 2013-12-17 Microsoft Corporation Integrated client for access to remote resources
US8631044B2 (en) 2008-12-12 2014-01-14 The Trustees Of Columbia University In The City Of New York Machine optimization devices, methods, and systems
US8275853B2 (en) * 2009-01-29 2012-09-25 Hewlett-Packard Development Company, L.P. Method and system for a service intermediary selection in a web service management system
WO2010135586A1 (en) 2009-05-20 2010-11-25 The Trustees Of Columbia University In The City Of New York Systems devices and methods for estimating
US9836783B2 (en) 2009-07-24 2017-12-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for content selection, delivery and payment
US20120259913A1 (en) * 2011-04-07 2012-10-11 Infosys Technologies, Ltd. System and method for implementing a dynamic change in server operating condition in a secured server network
US20120259956A1 (en) * 2011-04-07 2012-10-11 Infosys Technologies, Ltd. System and method for implementing a dynamic change in server operating condition in a secured server network
JP5724687B2 (ja) 2011-07-04 2015-05-27 富士通株式会社 情報処理装置、サーバ選択方法、及びプログラム
US9082082B2 (en) 2011-12-06 2015-07-14 The Trustees Of Columbia University In The City Of New York Network information methods devices and systems
US9852010B2 (en) 2012-02-03 2017-12-26 Microsoft Technology Licensing, Llc Decoupling partitioning for scalability
US8868711B2 (en) * 2012-02-03 2014-10-21 Microsoft Corporation Dynamic load balancing in a scalable environment
US10860384B2 (en) 2012-02-03 2020-12-08 Microsoft Technology Licensing, Llc Managing partitions in a scalable environment
EP3279756B1 (de) * 2016-08-01 2019-07-10 Siemens Aktiengesellschaft Diagnoseeinrichtung und verfahren zur überwachung des betriebs einer technischen anlage

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2281793A (en) * 1993-09-11 1995-03-15 Ibm A data processing system for providing user load levelling in a network
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5806065A (en) * 1996-05-06 1998-09-08 Microsoft Corporation Data system with distributed tree indexes and method for maintaining the indexes
US6119143A (en) * 1997-05-22 2000-09-12 International Business Machines Corporation Computer system and method for load balancing with selective control
US6351775B1 (en) * 1997-05-30 2002-02-26 International Business Machines Corporation Loading balancing across servers in a computer network
US6633916B2 (en) * 1998-06-10 2003-10-14 Hewlett-Packard Development Company, L.P. Method and apparatus for virtual resource handling in a multi-processor computer system
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6611861B1 (en) * 1998-02-27 2003-08-26 Xo Communications, Inc. Internet hosting and access system and method
US6098093A (en) * 1998-03-19 2000-08-01 International Business Machines Corp. Maintaining sessions in a clustered server environment
US6112279A (en) * 1998-03-31 2000-08-29 Lucent Technologies, Inc. Virtual web caching system
US6092178A (en) 1998-09-03 2000-07-18 Sun Microsystems, Inc. System for responding to a resource request
JP3550503B2 (ja) * 1998-11-10 2004-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 通信を可能とするための方法及び通信システム
US6728748B1 (en) * 1998-12-01 2004-04-27 Network Appliance, Inc. Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet
EP1049307A1 (en) * 1999-04-29 2000-11-02 International Business Machines Corporation Method and system for dispatching client sessions within a cluster of servers connected to the World Wide Web
US6976077B1 (en) * 1999-07-06 2005-12-13 Microsoft Corporation Automatic and transparent synchronization of server-side state information with a client application
US6697849B1 (en) * 1999-08-13 2004-02-24 Sun Microsystems, Inc. System and method for caching JavaServer Pages™ responses
US6374297B1 (en) * 1999-08-16 2002-04-16 International Business Machines Corporation Method and apparatus for load balancing of web cluster farms
US6771595B1 (en) * 1999-08-31 2004-08-03 Intel Corporation Apparatus and method for dynamic resource allocation in a network environment
US6772333B1 (en) * 1999-09-01 2004-08-03 Dickens Coal Llc Atomic session-start operation combining clear-text and encrypted sessions to provide id visibility to middleware such as load-balancers
US6798747B1 (en) * 1999-12-22 2004-09-28 Worldcom, Inc. System and method for time slot assignment in a fiber optic network simulation plan
US7000007B1 (en) * 2000-01-13 2006-02-14 Valenti Mark E System and method for internet broadcast searching
US6587970B1 (en) * 2000-03-22 2003-07-01 Emc Corporation Method and apparatus for performing site failover
US7725558B2 (en) * 2000-07-26 2010-05-25 David Dickenson Distributive access controller
US6985956B2 (en) * 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
US6901448B2 (en) * 2000-12-29 2005-05-31 Webex Communications, Inc. Secure communications system for collaborative computing
US20020087679A1 (en) * 2001-01-04 2002-07-04 Visual Insights Systems and methods for monitoring website activity in real time
US20020198995A1 (en) * 2001-04-10 2002-12-26 International Business Machines Corporation Apparatus and methods for maximizing service-level-agreement profits
US6675264B2 (en) * 2001-05-07 2004-01-06 International Business Machines Corporation Method and apparatus for improving write performance in a cluster-based file system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107979876A (zh) * 2017-11-16 2018-05-01 广州市百果园网络科技有限公司 数据传输方法及终端

Also Published As

Publication number Publication date
CA2471594A1 (en) 2003-07-31
EP1472846B1 (en) 2005-08-03
JP2005516293A (ja) 2005-06-02
DE60301202D1 (de) 2005-09-08
US7356592B2 (en) 2008-04-08
US20030140143A1 (en) 2003-07-24
EP1472846A1 (en) 2004-11-03
DE60301202T2 (de) 2006-04-20
TW200302644A (en) 2003-08-01
JP3989443B2 (ja) 2007-10-10
KR20040075048A (ko) 2004-08-26
CA2471594C (en) 2010-06-01
TWI238621B (en) 2005-08-21
ATE301364T1 (de) 2005-08-15
KR100754296B1 (ko) 2007-09-03
WO2003063447A1 (en) 2003-07-31
CN100556024C (zh) 2009-10-28

Similar Documents

Publication Publication Date Title
CN1706165A (zh) 用于网络场通信控制的方法和装置
US8695009B2 (en) Allocating tasks to machines in computing clusters
US7870256B2 (en) Remote desktop performance model for assigning resources
CN111431941B (zh) 一种基于移动边缘计算的实时视频码率自适应方法
US10678602B2 (en) Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures
US7774457B1 (en) Resource evaluation for a batch job and an interactive session concurrently executed in a grid computing environment
US20120054768A1 (en) Workflow monitoring and control system, monitoring and control method, and monitoring and control program
CN1610347A (zh) 在基于群集的系统内管理性能及资源利用率的方法和设备
CN107193652B (zh) 容器云环境中流数据处理系统的弹性资源调度方法及系统
Mahmud et al. Maximizing quality of experience through context‐aware mobile application scheduling in Cloudlet infrastructure
US20180246744A1 (en) Management of demand for virtual computing resources
Liu et al. Task scheduling with precedence and placement constraints for resource utilization improvement in multi-user MEC environment
Rathore et al. Variable threshold-based hierarchical load balancing technique in Grid
CN1267427A (zh) 电信性能管理系统
CN101080736A (zh) 自动地将网格作业的投标请求分配给多个网格供应商并分析响应以选择获胜网格供应商
Seth et al. Dynamic heterogeneous shortest job first (DHSJF): a task scheduling approach for heterogeneous cloud computing systems
CN1805365A (zh) Web服务分级服务质量处理器及处理方法
CN1975676A (zh) 多节点计算机系统和用于监视其性能的方法
US20240061709A1 (en) Autoscaling and throttling in an elastic cloud service
Xu et al. Efficient embedding of virtual networks to distributed clouds via exploring periodic resource demands
CN110084507A (zh) 云计算环境下分级感知的科学工作流调度优化方法
WO2021000694A1 (zh) 一种部署业务的方法以及调度装置
Kavyasri et al. Comparative study of scheduling algorithms to enhance the performance of virtual machines in cloud computing
Carmona-Cejudo et al. Optimal offloading of Kubernetes pods in three-tier networks
Michel et al. Artificial bee colonies solution for load sharing in a cloud RAN

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091028

Termination date: 20190117