CN101902295A - 控制应用服务器的负载接收速率的方法及装置 - Google Patents

控制应用服务器的负载接收速率的方法及装置 Download PDF

Info

Publication number
CN101902295A
CN101902295A CN2009101411927A CN200910141192A CN101902295A CN 101902295 A CN101902295 A CN 101902295A CN 2009101411927 A CN2009101411927 A CN 2009101411927A CN 200910141192 A CN200910141192 A CN 200910141192A CN 101902295 A CN101902295 A CN 101902295A
Authority
CN
China
Prior art keywords
load receiving
receiving velocity
control cycle
represent
application server
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
CN2009101411927A
Other languages
English (en)
Other versions
CN101902295B (zh
Inventor
吴海珊
刁以欣
亚瑟·N·坦塔维
胡晓磊
迈克尔·斯普利特泽
田瑞雄
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
Priority to CN2009101411927A priority Critical patent/CN101902295B/zh
Publication of CN101902295A publication Critical patent/CN101902295A/zh
Application granted granted Critical
Publication of CN101902295B publication Critical patent/CN101902295B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Feedback Control In General (AREA)

Abstract

公开了一种控制应用服务器的负载接收速率的方法和系统。在该方法中,检测当前控制周期中应用服务器的实际内存使用量和负载接收速率;基于所检测的实际内存使用量和负载接收速率,估计该应用服务器的负载特性变化参数;并根据所述负载特性变化参数,计算反馈控制器的控制增益;反馈控制器利用所计算的控制增益,计算应用服务器在下一个控制周期的负载接收速率。通过跟踪应用服务器的工作负载特性变化,能够自适应地控制应用服务器的负载接收速率,以使应用服务器的实际内存使用量维持或接近目标内存使用量。另外,系统管理员只需设置目标内存使用量即可,与现有的内存过载保护方法相比,配置简单方便。

Description

控制应用服务器的负载接收速率的方法及装置
技术领域
本发明涉及计算机领域,具体地,涉及应用服务器的内存管理技术中的内存过载保护。
背景技术
内存过载正在逐渐成为诸如J2EE应用服务器环境中的企业应用服务器的性能管理的一个关键挑战。一般地,这种应用服务器主要采用Java虚拟机实现,其内存容量有限。应用服务器的内存不断被各种应用使用,并由垃圾回收(GC)自动从内存堆中收回未使用的内存空间。如果应用服务器的实际内存使用量达到最大内存可用量,则会出现内存不足(Out ofMemory),从而导致应用服务器死机。另外,当实际内存使用量较高时,容易导致应用的性能急剧下降,这对于具有实时要求的应用很不利,例如,会话初始化协议(SIP)应用。
在SIP应用中,例如基于IP的语音(VoIP)应用,SIP作为信令协议用以在IP网络中的SIP客户机之间建立SIP会话。图1示出了SIP会话的消息流程。如图1所示,SIP服务器向SIP客户机提供SIP会话应用。呼叫方SIP客户机通过INVITE消息发起呼叫,通过SIP服务器与被叫方SIP客户机建立SIP会话,在会话期间,SIP服务器记录有关的SIP会话信息,通常为几十到几百K字节,然后,任意一方SIP客户机可通过BYE消息结束会话。典型的呼叫时长分布是对数正态分布,且其平均值为60到300秒。然而,有时SIP会话会较长时间地占用SIP服务器的内存,例如400秒或更长。因此,如果有多个这样的SIP会话,则SIP服务器的可使用内存很容易用尽,从而增加了SIP服务器死机的风险。
另外,应用服务器的实际内存使用量也受到多个因素的直接影响,例如呼叫到达速率、呼叫持续时间、呼叫所占用的内存等。而且,在一个企业环境中,上述所有的因素都是高度变化的,某些因素甚至很难在运行时捕捉,例如,呼叫持续时间的范围可从几秒钟变化到几百分钟。
为了防止应用服务器的内存过载,目前已提出了一些应用服务器的内存过载保护方案。例如,在BEA公司提供的内存过载保护方案中,要求对诸如线程池大小、队列长度限制和HTTP会话的最大数量等的参数进行明确的配置,然而,这些参数并不直接反映应用服务器的实际内存使用量,并且通常依据系统管理员的经验进行设置,而且由于每个应用的特性经常随时间变化,因此很难设置上述参数的最佳值,从而可能导致不能有效地进行内存过载保护。该内存过载保护方案的详细内容可参见Oracle,Configuring WebLogic Server to Avoid Overload Conditions,其可在以下网址http://edocs.bea.com/wls/docs103/config wls/overload.html中获得。
近来,也提出了将基于控制理论的分析方法用于应用服务器的性能、内存管理等。例如,在Y.Diao,N.Gandhi,J.L.Hellerstein,S.Parekh和D.M.Tilbury所著的“Using MIMO Feedback Control to Enforce Policiesfor Interrelated Metrics with Application to the Apache Web Server”中,提出了通过多输入多输出控制器管理CPU和内存使用的方案,其中该MIMO控制器控制诸如最大客户机数量的相关调谐参数。然而,在该方案中,由于控制器的控制增益是固定值,因此,不能很好地跟踪应用特性的变化。
发明内容
本发明正是鉴于以上技术问题提出的,其目的在于提供一种控制应用服务器的负载接收速率的方法及装置,其能够实时跟踪应用特性的变化,并根据该变化自适应地调节应用服务器的负载接收速率,从而防止应用服务器的内存过载。
根据本发明的一个方面,提供一种控制应用服务器的负载接收速率的方法,包括:检测当前控制周期中所述应用服务器的实际内存使用量和负载接收速率;基于所检测的实际内存使用量和负载接收速率,估计所述应用服务器的负载特性变化参数;根据所述负载特性变化参数,计算所述反馈控制器的控制增益;以及所述反馈控制器利用所计算的控制增益,计算所述应用服务器在下一个控制周期的期望负载接收速率。
根据本发明的另一个方面,提供一种控制应用服务器的负载接收速率的装置,包括:检测模块,用于检测当前控制周期中所述应用服务器的实际内存使用量和负载接收速率;参数估计模块,用于基于所述检测模块检测的实际内存使用量和负载接收速率,估计所述应用服务器的负载特性变化参数;增益计算模块,用于根据所述负载特性变化参数,计算反馈控制器的控制增益;以及反馈控制器,用于利用所计算的控制增益,计算所述应用服务器在下一个控制周期的期望负载接收速率。
根据本发明的再一个方面,提供一种应用服务器的控制系统,包括:至少一个应用服务器;以及至少一个上述的控制应用服务器的负载接收速率的装置,用于控制各自的应用服务器的负载接收速率。
附图说明
图1是说明用于SIP会话的消息流程的示意图;
图2是应用内存过载控制的J2EE应用服务器环境的示意图;
图3是根据本发明的一个实施例的使用反馈控制器控制应用服务器的负载接收速率的方法的流程图;
图4是对于混合了两个不同呼叫持续时间分布的应用采用卡尔曼滤波法估计的负载特性变化参数的曲线图;
图5是在具有稳定的呼叫接收速率和固定的呼叫持续时间的应用下采用卡尔曼滤波法估计的负载特性变化参数的曲线图;
图6是对于工作负载为具有固定呼叫持续时间400秒的呼叫,分别采用本实施例的方法和现有技术的固定增益控制器得到的应用服务器的业务量和实际内存使用量的曲线图,其中在本实施例的方法中使用的反馈控制器是比例积分控制器;
图7是对于工作负载为具有固定呼叫持续时间600秒的呼叫,分别采用本实施例的方法和现有技术的固定增益控制器得到的应用服务器的业务量和实际内存使用量的曲线图,其中在本实施例的方法中使用的反馈控制器是比例积分控制器;
图8是对于工作负载为混合了四种不同呼叫持续时间分布的呼叫,分别采用本实施例的方法和现有技术的固定增益控制器得到的应用服务器的业务量和实际内存使用量的曲线图,其中在本实施例的方法中使用的反馈控制器是比例积分控制器;
图9是对于图6至图8所示的三种情况下的业务量的分析示意图;
图10是对于工作负载为混合了四种不同呼叫持续时间分布的呼叫,采用本实施例的方法得到的应用服务器的业务量和实际内存使用量的关系曲线图,其中在本实施例的方法中使用的反馈控制器是积分控制器;
图11是根据本发明的一个实施例的控制应用服务器的负载接收速率的装置的示意性方框图。
具体实施方式
相信通过以下结合附图对本发明的具体实施例的详细描述,本发明的上述和其它目的、特征和优点将变得更加明显。
在以下的实施例中,应用服务器可采用虚拟机实现,也可采用内存容量有限的物理机实现。应用服务器作为反馈控制器的控制对象,接受反馈控制器的控制,以防止内存过载。图2示意性地示出了采用内存过载控制的J2EE应用服务器环境。如图2所示,来自用户的请求被发送到作为J2EE应用服务器环境的入口点的代理服务器,该代理服务器执行动态请求路由以达到服务质量目标。然后,请求被分发到由多个服务器节点组成的后端服务器进行处理,其中每一个服务器节点可具有多个应用服务器实例。在每一个应用服务器实例中,都有一个反馈控制器进行内存过载保护。该反馈控制器以维持管理员所设置的目标内存使用量为控制目标,控制应用服务器实例的负载接收速率,从而调整应用服务器实例的实际内存使用量。每个应用服务器实例的负载接收速率被提供给代理服务器,使得代理服务器调整向该应用服务器实例提供的工作负载,从而防止应用服务器实例的内存过载。在控制过程中,实际内存使用量是指不含垃圾的内存使用量,即在每次全局垃圾回收结束时的内存使用量,反映了真实的内存使用量。
图3是根据本发明的一个实施例的使用反馈控制器控制应用服务器的负载接收速率的方法的流程图。下面结合附图,对本实施例进行详细描述。
如图3所示,在步骤S301,检测当前控制周期中应用服务器的实际内存使用量和负载接收速率。如前所述,实际内存使用量可在每次全局垃圾回收结束时进行检测,这样,全局垃圾回收的间隔可确定控制周期的长度。应用服务器的工作负载特性可通过负载接收速率、应用持续时间以及单位负载的实际内存使用量三个参数反映。例如,对于SIP应用服务器,负载接收速率是指新会话的到达速率,应用持续时间是指会话(呼叫)持续时间,单位负载的实际内存使用量是指单位呼叫持续期间所占用的内存量。
在步骤S305,基于在步骤S301检测到的实际内存使用量和负载接收速率,估计应用服务器的负载特性变化参数。在本实施例中,首先,建立应用服务器的内存使用模型,该模型可反映工作负载特性的变化。
下面以SIP应用为例,详细描述建立SIP应用服务器的内存使用模型的过程。假定uk和yk分别表示在第k个控制周期的呼叫接收速率(负载接收速率)和实际内存使用量,而Δ表示控制周期间的间隔(步长)。进一步地,假定每个会话(呼叫)的平均实际内存使用量为β>0。为简化起见,假定会话长度M是在控制周期的数量之间几何分布的,以使会话长度有至少一个控制周期,则有
Prob[M=m]=ρ(1-ρ)m-2            (1)
其中,m=2,3,...,ρ是几何分布的参数,且0<ρ<1。因此,平均会话长度E[M]为
E[M]=(1+ρ)/ρ                    (2)
M的补充分布函数(或生存函数)为
Prob[M>m]=(1-ρ)m-1
在控制周期k的实际内存使用量yk包括在控制周期k之前到达并生存到控制周期k的会话的实际内存使用量的贡献。因此,可得到
y k = β Σ i = 0 k - 1 u i Δ ( 1 - ρ ) k - i - 1 - - - ( 3 )
其中,k≥1,uiΔ是在控制周期i到达的会话的平均数量,(1-ρ)k-i-1是在控制周期i到达的会话在控制周期k仍然保持的概率。定义
a=1-ρ                  (4)
和b=βΔ                (5)
则公式(3)可改写为
y k = b Σ i = 0 k - 1 u i a k - i - 1 - - - ( 6 )
其中,k≥1,0<a<1,b>0。根据公式(2)和(4),参数a可以用E[M]表示为
a = E [ M ] - 2 E [ M ] - 1 - - - ( 7 )
因此,假定平均值为E[M]的一般会话长度分布,则可以通过公式(7)估计参数a的值。对于参数b,则可以通过公式(5)确定,只是每个会话的平均实际内存使用量与步长的乘积。
利用公式(6)并采用yk与yk-1之间的差,可得到
yk=a yk-1+b uk-1            (8)
其中,k≥1。该公式(8)是一阶线性自回归滑动平均混合模型ARMA(1,1),uk的系数为0。参数a是捕捉实际内存使用量变化的自回归参数,而参数b是捕捉实际内存使用量与(前一个)呼叫接收速率的依赖关系的移动平均参数。
通过以上描述可以看出,SIP应用服务器的内存使用模型可将实际内存使用量与负载接收速率相关联,并且该内存使用模型的参数可作为反映工作负载特性变化的负载特性变化参数。虽然在上述描述中,内存使用模型是一阶模型,但本领域的普通技术人员能够容易地想到内存使用模型可以是二阶或更高阶的模型,例如yk=a1*yk-1+a2*yk-2+b1*uk-1+b2*uk-2,其中,a1、a2、b1和b2是模型参数。
在建立了内存使用模型之后,基于所检测的负载接收速率和实际内存使用量,对所建立的内存使用模型的参数进行估计。参数估计方法可以使用线性拟合方法,例如卡尔曼滤波法、最小二乘法等。在本实施例中,采用卡尔曼滤波法对参数进行估计。卡尔曼滤波法是本领域普通技术人员公知的参数估计方法,在此省略相应的说明。
图4示出了对于混合了两个不同呼叫持续时间分布的应用采用卡尔曼滤波法估计的负载特性变化参数的曲线图,其中图4(a)是该应用以及所检测的负载接收速率和实际内存使用量的曲线图,图4(b)是所估计的负载特性变化参数a和b的曲线图。在图4(a)中,左侧纵轴代表负载接收速率,右侧纵轴代表实际内存使用量,采用“实线+三角”标记的曲线是接收速率曲线,采用“虚线+方形”标记的曲线是实际内存使用量曲线,虚线代表呼叫持续时间为固定值400秒的业务流arrivalRateConstant(400s),实线代表呼叫持续时间呈对数正态分布Log-N(11.002ms,1.0ms)的业务流arrivalRateLognormal(11.002ms,1ms)。根据两个呼叫持续时间分布在应用中的比例,该应用的工作负载可分为三个阶段:在60之前的第一阶段,工作负载只有arrivalRateConstant(400s)业务流;在从60到100的第二阶段,工作负载变化为arrivalRateConstant(400s)业务流与arrivalRateLognormal(11.002ms,1ms)业务流的混合;在100以后,工作负载变化为只有arrivalRateLognormal(11.002ms,1ms)业务流。在图4(b)中,实线代表参数a,虚线代表参数b,可以看出,参数b的曲线也明显地分为三个阶段,并且对于每一个阶段都可以迅速收敛,这表明内存使用模型可以迅速地对工作负载的变化做出反应,并很快得到收敛。
返回图3,在步骤S310,根据在步骤S305中估计的负载特性变化参数,计算反馈控制器的控制增益。在本实施例中,反馈控制器使用比例积分(PI)控制器,该控制器的控制增益采用极点配置法进行更新。
一般地,比例积分控制器的控制法则为
v k = K p e k + K i Σ j = 1 k - 1 e j
其中,vk是该控制器的输出,并作为控制对象的控制输入,ek是参考信号和控制对象的输出之间的控制误差。在本实施例中,vk对应于应用服务器的期望负载接收速率,参考信号是管理员设置的目标内存使用量,控制对象是应用服务器,其输出是实际内存使用量。比例积分控制器有两项:通过比例控制增益Kp参数化的比例项和通过积分控制增益Ki参数化的积分项。通常,比例项用于增加响应速度,而积分项用于消除任何稳态误差。
对于比例积分控制器,比例控制增益Kp和积分控制增益Ki应当满足所期望的控制标准。常用的设计比例控制增益Kp和积分控制增益Ki的方法是极点配置法,在该方法中,闭环系统性能可通过为满足某些性能标准(例如,小的稳定时间和超调量等)而选择的闭环极点位置确定。
具体地,本实施例中所使用的比例积分控制器的输入输出关系为
uk=uk-1+(Kp+Ki)*ek-Kp*ek-1            (9)
其中,k代表控制周期,ek=r-yk是与实际内存使用量有关的控制误差,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率。
在采用极点配置法确定比例控制增益Kp和积分控制增益Ki时,首先,根据希望的闭环系统性能指标,例如稳定时间和最大超调量,确定极点位置。在本实施例中,比例积分控制器和应用服务器构成闭环系统,经过z变换后的闭环传递函数为
F R ( z ) = bK i z + b K p ( z - 1 ) z 2 + ( b K i + b K p - 1 - a ) z + a - b K p .
而所期望的闭环性能可表示为(z-p1)(z-p2)=z2-(p1+p2)z+p1p2,其中p1和p2表示极点,反映由稳定时间和最大超调量而量化的期望控制性能。具体地,在Z域中,极点p1、p2是共轭复数,表示为p1,p2=re±jθ,其中r表示复数的模,θ表示复数的辐角,并且满足
r = e - 4 / k s *
θ = π log r log M p *
其中,
Figure B2009101411927D0000093
表示稳定时间,
Figure B2009101411927D0000094
表示最大超调量。
根据极点配置法,有下列等式成立:
bKi+bKp-1-a=p1+p2
a-bKp=p1p2
因此,比例控制增益Kp和积分控制增益Ki被分别计算为:
K p = a - p 1 p 2 b - - - ( 10 )
K i = 1 - ( p 1 + p 2 ) + p 1 p 2 b - - - ( 11 )
其中,负载特性变化参数a和b能够在步骤S305中得到。
以上对反馈控制器采用比例积分控制器的情况进行了说明,但反馈控制器也可以是比例(P)控制器、积分(I)控制器或比例积分微分(PID)控制器。
在另一个实施例中,反馈控制器是比例控制器,其输入输出关系可采用uk=uk-1+Kp*(ek-ek-1),其中,ek=r-yk,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率,Kp代表比例控制增益。
在另一个实施例中,反馈控制器是积分控制器,其输入输出关系可采用uk=uk-1+Ki*ek,其中,k代表控制周期,ek=r-yk,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率,Ki代表积分控制增益。
在另一个实施例中,反馈控制器是比例积分微分控制器,其输入输出关系可采用uk=uk-1+(Kp+Ki+Kd)*ek-(Kp+2Kd)ek-1+Kdek-2,其中,k代表控制周期,ek=r-yk,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率,Kp代表比例控制增益,Ki代表积分控制增益,Kd代表微分控制增益。
这三种情况下的各个反馈控制器的各自的控制增益的设定与比例积分控制器的控制增益的设定相似,均可采用极点配置法设置,此处不再赘述。
接着,返回图3,在步骤S315,反馈控制器使用在步骤S310中得到的控制增益,计算应用服务器在下一个控制周期的期望负载接收速率。所计算的期望负载接收速率被提供给代理服务器,以控制分配给该应用服务器的工作负载,从而调节应用服务器的实际内存使用量。
在反馈控制器的输入输出关系公式中,第k-1个控制周期的负载接收速率通常是在上一个控制周期中得到的期望负载接收速率。但有时工作负载不够大,没有使内存消耗达到目标内存使用量,这时会产生正的控制误差,导致期望负载接收速率在以后的控制周期不断增大,产生饱和现象。这样,当工作负载再增大时,期望负载接收速率变得更大,从而可能导致应用服务器的内存过载。为防止饱和现象,在本实施例中,第k-1个控制周期的负载接收速率使用在步骤S301中检测的负载接收速率。
进一步地,当控制器收敛时,控制输入和系统输出都保持不变,然而由于噪音等影响,可能导致在估计负载特性变化参数时出现参数漂移。图5示出了在具有稳定的呼叫接收速率和固定的呼叫持续时间的应用下采用卡尔曼滤波法估计的负载特性变化参数的曲线,其中图5(a)是作为工作负载的业务流和所检测的负载接收速率和实际内存使用量的曲线图,图5(b)是所估计的负载特性变化参数a和b的曲线图。如图5(a)所示,负载接收速率和实际内存使用量在控制器收敛后长时间保持不变,而在图5(b)中,负载特性变化参数a和b没有保持固定的值,慢慢地产生了漂移。如果根据漂移后的负载特性变化参数a和b进行增益控制的计算,则会降低控制器性能。
为了避免由于参数漂移带来的影响,在另一个实施例中,在执行步骤S310之前,检测工作负载特性的不变性。例如,可以检测负载接收速率或实际内存使用量中任意一个的不变性。具体地,首先计算指定数量的控制周期内的负载接收速率或实际内存使用量的方差,其中指定数量可通过滑动窗口的大小确定。然后,判断所计算的负载接收速率的方差或者实际内存使用量的方差是否超过相应的预定阈值。当负载接收速率的方差或实际内存使用量的方差超过相应的预定阈值时,表明负载接收速率或实际内存使用量发生了变化,则认为工作负载特性发生了变化,执行步骤S310。也可以既计算负载接收速率的方差也计算实际内存使用量的方差,仅当负载接收速率的方差和实际内存使用量的方差均分别超过相应的预定阈值时,才认为工作负载特性发生了变化;或者也可以当所计算的负载接收速率的方差和实际内存使用量的方差中的任意一个超过相应的预定阈值时,就认为工作负载特性发生了变化。当负载接收速率的方差和实际内存使用量的方差都没有超过预定阈值时,表明负载接收速率和实际内存使用量都保持不变,则维持当前的控制增益不变,而无需进行反馈控制器的控制增益的计算。
通过以上描述可以看出,本实施例的控制应用服务器的负载接收速率的方法通过跟踪应用服务器的工作负载特性变化,能够在工作负载变化的情况下自适应地控制负载接收速率,以使应用服务器的实际内存使用量维持或接近目标内存使用量。本实施例的方法并不限于SIP应用服务器或J2EE环境,只要对于应用服务器的内存系统,工作负载由使应用被执行并使用内存资源的请求流构成,并且内存资源在请求被服务的整个期间使用之后回收,则本实施例的方法即可适用。另外,采用本实施例的方法,系统管理员只需设置目标内存使用量即可,与现有的内存过载保护方法相比,配置简单方便。
图6是对于工作负载为具有固定呼叫持续时间400秒的呼叫,分别采用本实施例的方法和现有技术的固定增益PI控制器得到的应用服务器的业务量和实际内存使用量的曲线图,其中在本实施例的方法中使用的反馈控制器是比例积分控制器。图6(a)示出了业务量的曲线图,其中细且短的虚线代表采用固定增益PI控制器得到的业务量曲线,实线代表采用本实施例的方法得到的业务量曲线,粗且长的虚线代表呼叫到达速率;图6(b)示出了实际内存使用量的曲线图,其中细且短的虚线代表采用固定增益PI控制器得到的实际内存使用量曲线,实线代表采用本实施例的方法得到的实际内存使用量曲线,粗且长的虚线代表目标内存使用量。在图6(a)中,呼叫到达速率是不断变化的。在图6(b)中,假定目标内存使用量为0.8。从图6(a)和图6(b)中可以看出,由于固定增益PI控制器的增益选择得很合适,因此,这两种方式都得到了很好的控制性能,当工作负载变化时,实际内存使用量能够迅速地收敛到0.8,业务量在每秒40个呼叫,只有较小的振荡。
图7是对于工作负载为具有固定呼叫持续时间600秒的呼叫,分别采用本实施例的方法和现有技术的固定增益PI控制器得到的应用服务器的业务量和实际内存使用量的曲线图,其中在本实施例的方法中使用的反馈控制器是比例积分控制器。图7(a)示出了业务量的曲线图,其中细且短的虚线代表采用固定增益PI控制器得到的业务量曲线,实线代表采用本实施例的方法得到的业务量曲线,粗且长的虚线代表呼叫到达速率;图7(b)示出了实际内存使用量的曲线图,其中细且短的虚线代表采用固定增益PI控制器得到的实际内存使用量曲线,实线代表采用本实施例的方法得到的实际内存使用量曲线,粗且长的虚线代表目标内存使用量。从图7(a)和图7(b)中可以看出,在这种情况下,工作负载的变化对固定增益PI控制器带来了很大的影响。相对长的呼叫持续时间使得固定增益PI控制器对于工作负载的变化反应过度,从而导致了几乎不稳定的状态,其中实际内存使用量在0.4-0.9之间振荡,这样在某些时间,虽然有空闲的内存,但大量的呼叫被拒绝,而在某些时间,内存几乎面临过载。而采用本实施例的方法,虽然工作负载发生变化,但仍然可以得到良好的控制性能:快速的收敛和较小的振荡。
图8是对于工作负载为混合了四种不同呼叫持续时间分布的呼叫,分别采用本实施例的方法和现有技术的固定增益PI控制器得到的应用服务器的业务量和实际内存使用量的曲线图,其中在本实施例的方法中使用的反馈控制器是比例积分控制器。图8(a)是工作负载的曲线图,图8(b)是业务量的曲线图,其中,实线代表采用本实施例的方法得到的业务量曲线,虚线代表采用固定增益PI控制器得到的业务量曲线;图8(c)是实际内存使用量的曲线图,其中,实线代表采用本实施例的方法得到的实际内存使用量曲线,细且短的虚线代表采用固定增益PI控制器得到的实际内存使用量曲线,粗且长的虚线代表目标内存使用量。如图8(a)所示,该工作负载混合了四种不同的呼叫持续时间分布并将其以动态的比例交织,这些呼叫持续时间分布分别是:600s的固定呼叫持续时间arrivalRateConstant(600s)、400s的固定呼叫持续时间arrivalRateConstant(400s)、对数正态分布Log-N(12.28651ms,1.0ms)的呼叫持续时间arrivalRateLognormal(12.28651ms,1.0ms)和对数正态分布Log-N(11.002ms,1.0ms)的呼叫持续时间arrivalRateLognormal(11.002ms,1.0ms)。从图8(b)和图8(c)中可以看出,固定增益PI控制器只能在某些工作负载下提供较好的控制,而本实施例的方法则无论工作负载特性如何变化,应用服务器的业务量和实际内存使用量都能够快速收敛,并且振荡较小。这表明反馈控制器能够很好地跟踪工作负载的变化并进行相应的调整。图9示出了在图6至图8所示的三种情况下业务量的分析示意图,其中图9(a)是三种情况下的平均业务量,图9(b)是业务量峰度。如图9(a)所示,固定增益PI控制器和本实施例的方法产生相似的平均业务量,这是因为跟踪相同的目标内存使用量。然而,由图9(b)所示的业务量峰度所量化的业务量的变化度则表明本实施例的方法使得业务量更加稳定。峰度是对一个分布中峰态的度数的测量,值0对应正态分布的峰态,正值对应具有较高峰值的更窄的分布,而负值表明更平坦的分布。如图9(b)所示,在图6的情况中,两种方式具有相似的行为。对于图7的情况,本实施例的方法的峰度比固定增益PI控制器的大得多,也就是说,业务量的振荡小。对于图8的情况,本实施例的方法的峰度是正值,而固定增益PI控制器的峰度是负值,这表明对于固定增益控制器,业务量有大的振荡。
图10是在反馈控制器是积分控制器情况下,对于工作负载为混合了四种不同呼叫持续时间分布的呼叫,采用本实施例的方法得到的应用服务器的业务量和实际内存使用量的关系曲线图,其中图10(a)是工作负载的曲线图,图10(b)是业务量和实际内存使用量的曲线图,图10(c)是比例控制增益Kp和积分控制增益Ki的曲线图。如图10(a)所示,工作负载选取了图8(a)中从65600秒到95600秒的范围内的工作负载。从图10(b)中可以看出,应用服务器的实际内存使用量曲线和业务量曲线可以较快地收敛,具有一定的振荡,这表明反馈控制器也能较好地跟踪工作负载的变化,并进行相应的调整。
在同一个发明构思下,图11是根据本发明的一个实施例的控制应用服务器的负载接收速率的装置1100的示意性方框图,其中与前面实施例相同的部分,适当省略其说明。下面结合附图,对本实施例进行详细描述。
根据本实施例的控制应用服务器的负载接收速率的装置1100包括:检测模块1101,其检测当前控制周期中应用服务器的实际内存使用量和负载接收速率;参数估计模块1102,其基于检测模块1101所检测的实际内存使用量和负载接收速率,估计应用服务器的负载特性变化参数;增益计算模块1103,根据所估计的负载特性变化参数,计算反馈控制器的控制增益;以及反馈控制器1104,其利用增益计算模块1103所计算的控制增益,计算应用服务器在下一个控制周期的负载接收速率。
在本实施例中,检测模块1101在每次全局垃圾回收结束时检测应用服务器在当前控制周期的负载接收速率和实际内存使用量,提供给参数估计模块1102进行负载特性变化参数的估计。在参数估计模块1102中,模型建立单元11021建立应用服务器的内存使用模型。所建立的内存使用模型将实际内存使用量与负载接收速率相关联,并且其参数成为负载特性变化参数。如前所述,内存使用模型可以采用一阶ARMA模型或者二阶等更高阶模型。然后,参数估计器11022利用该内存使用模型和所检测的实际内存使用量和负载接收速率,估计该内存使用模型的参数。如前所述,参数估计器11022可以使用卡尔曼滤波法、最小二乘法等线性拟合方法进行参数的估计。
通过参数估计模块1102得到的负载特性变化参数被提供给增益计算模块1103,以计算反馈控制器1104的控制增益。
在本实施例中,反馈控制器1104采用比例积分控制器,其输入输出关系为uk=uk-1+(Kp+Ki)*ek-Kp*ek-1,其中,其中,k代表控制周期,ek=r-yk,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率,Kp代表比例控制增益,Ki代表积分控制增益。通过该反馈控制器804,可以对应用服务器的负载接收速率进行调节。
在增益计算模块1103中,采用极点配置法设计比例控制增益Kp和积分控制增益Ki。首先,极点确定单元11031根据所期望的控制性能,例如稳定时间和最大超调量等,确定反映该所期望的控制性能的极点位置。然后,计算单元11032根据所确定的极点位置和在参数估计模块1102中得到的负载特性变化参数,计算反馈控制器1104的控制增益。
如前所述,反馈控制器1104也可以采用比例控制器、积分控制器和比例积分微分控制器。
应当指出,本实施例的控制应用服务器的负载接收速率的装置1100在操作上可以实现如图3所示的使用反馈控制器控制应用服务器的负载接收速率的方法。
进一步地,为了避免由于参数漂移而造成的控制性能下降,本实施例的控制应用服务器的负载接收速率的装置1100还可以包括:方差计算模块1105,其计算指定数量的负载接收速率和/或实际内存使用量的方差;以及判断模块1106,其判断所计算的负载接收速率的方差或者实际内存使用量的方差是否超过预定阈值。当负载接收速率的方差和实际内存使用量的方差中的任意一个超过预定阈值时,由增益计算模块1103根据负载特性变化参数计算反馈控制器1104的控制增益。当负载接收速率的方差和实际内存使用量的方差都没有超过预定阈值时,增益计算模块1103不进行计算,反馈控制器1104保持当前的控制增益。
应当注意,在本实施例中,方差计算模块1105和判断模块1106并不是必需的。
此外,还提供了一种应用服务器的控制系统,包括:至少一个应用服务器;以及至少一个如图11所示的控制应用服务器的负载接收速率的装置,用于控制各自的应用服务器的负载接收速率。
以上所公开的本发明的方法可以在软件、硬件、或软件和硬件的结合中实现。硬件部分可以利用专用逻辑来实现。例如,上述实施例中的对虚拟机进行内存过载保护的装置及其各个组成部分可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合实现。软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器、个人计算机(PC)或大型机来执行。
以上虽然通过示例性的实施例详细描述了本发明的控制应用服务器的负载接收速率的方法和装置,但是以上这些实施例并不是穷举的,本领域技术人员可以在本发明的精神和范围内实现各种变化和修改。因此,本发明并不限于这些实施例,本发明的范围仅由所附的权利要求限定。

Claims (33)

1.一种控制应用服务器的负载接收速率的方法,包括:
检测当前控制周期中所述应用服务器的实际内存使用量和负载接收速率;
基于所检测的实际内存使用量和负载接收速率,估计所述应用服务器的负载特性变化参数;
根据所述负载特性变化参数,计算反馈控制器的控制增益;以及
所述反馈控制器利用所计算的控制增益,计算所述应用服务器在下一个控制周期的期望负载接收速率。
2.根据权利要求1所述的方法,其中,所述基于所检测的实际内存使用量和负载接收速率,估计所述应用服务器的负载特性变化参数的步骤包括:
建立所述应用服务器的内存使用模型,所述内存使用模型将实际内存使用量与负载接收速率相关联,且所述内存使用模型的参数作为所述负载特性变化参数;以及
根据所检测的实际内存使用量和负载接收速率,估计所述内存使用模型的参数。
3.根据权利要求2所述的方法,其中,所述建立所述应用服务器的内存使用模型的步骤包括:将所述内存使用模型建立为yk=a*yk-1+b*uk-1的形式,其中,k代表控制周期,yk、yk-1分别代表第k个和第k-1个控制周期的实际内存使用量,uk-1代表第k-1个周期的负载接收速率,a和b代表负载特性变化参数。
4.根据权利要求2或3所述的方法,其中,所述估计负载特性变化参数的步骤使用线性拟合方法。
5.根据权利要求4所述的方法,其中,所述线性拟合方法是卡尔曼滤波法。
6.根据权利要求1所述的方法,其中,所述反馈控制器是比例控制器。
7.根据权利要求6所述的方法,其中,所述反馈控制器利用所计算的控制增益,计算所述应用服务器在下一个控制周期的期望负载接收速率包括:利用uk=uk-1+Kp*(ek-ek-1)计算所述期望负载接收速率,其中,k代表控制周期,ek=r-yk,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率,Kp代表比例控制增益。
8.根据权利要求1所述的方法,其中,所述反馈控制器是比例积分控制器。
9.根据权利要求8所述的方法,其中,所述反馈控制器利用所计算的控制增益,计算所述应用服务器在下一个控制周期的期望负载接收速率包括:利用uk=uk-1+(Kp+Ki)*ek-Kp*ek-1计算所述期望负载接收速率,其中,k代表控制周期,ek=r-yk,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率,Kp代表比例控制增益,Ki代表积分控制增益。
10.根据权利要求1所述的方法,其中,所述反馈控制器是积分控制器。
11.根据权利要求10所述的方法,其中,所述反馈控制器利用所计算的控制增益,计算所述应用服务器在下一个控制周期的期望负载接收速率包括:利用uk=uk-1+Ki*ek计算所述期望负载接收速率,其中,k代表控制周期,ek=r-yk,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率,Ki代表积分控制增益。
12.根据权利要求1所述的方法,其中,所述反馈控制器是比例积分微分控制器。
13.根据权利要求12所述的方法,其中,所述反馈控制器利用所计算的控制增益,计算所述应用服务器在下一个控制周期的期望负载接收速率包括:利用uk=uk-1+(Kp+Ki+Kd)*ek-(Kp+2Kd)ek-1+Kdek-2计算所述期望负载接收速率,其中,k代表控制周期,ek=r-yk,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率,Kp代表比例控制增益,Ki代表积分控制增益,Kd代表微分控制增益。
14.根据权利要求7、9、11、13任意一项所述的方法,其中,在计算所述应用服务器在第k个控制周期的期望负载接收速率的步骤中,所述反馈控制器使用所检测的第k-1个控制周期的负载接收速率。
15.根据权利要求6至14任意一项所述的方法,其中,所述计算控制增益采用极点配置法,包括以下步骤:
根据稳定时间和最大超调量确定极点位置;以及
根据所述极点位置和所述负载特性变化参数计算所述控制增益。
16.根据权利要求1所述的方法,在所述计算控制增益的步骤之前,还包括:
计算指定数量的控制周期内工作负载特性的方差;
判断所计算的工作负载特性的方差是否超过预定阈值;
如果所计算的工作负载特性的方差超过预定阈值,则执行所述计算控制增益的步骤;否则维持所述反馈控制器的当前控制增益。
17.一种控制应用服务器的负载接收速率的装置,包括:
检测模块,用于检测当前控制周期中所述应用服务器的实际内存使用量和负载接收速率;
参数估计模块,用于基于所述检测模块检测的实际内存使用量和负载接收速率,估计所述应用服务器的负载特性变化参数;
增益计算模块,用于根据所述负载特性变化参数,计算反馈控制器的控制增益;以及
反馈控制器,用于利用所述增益计算模块计算的控制增益,计算所述应用服务器在下一个控制周期的期望负载接收速率。
18.根据权利要求17所述的装置,其中,所述参数估计模块包括:
模型建立单元,用于建立所述应用服务器的内存使用模型,所述内存使用模型将实际内存使用量与负载接收速率相关联,且所述内存使用模型的参数作为所述负载特性变化参数;以及
参数估计器,用于根据所检测的实际内存使用量和负载接收速率,估计所述内存使用模型的参数。
19.根据权利要求18所述的装置,其中,所述模型建立单元所建立的内存使用模型采用yk=a*yk-1+b*uk-1的形式,其中,k代表控制周期,yk、yk-1分别代表第k个和第k-1个控制周期的实际内存使用量,uk-1代表第k-1个周期的负载接收速率,a和b代表负载特性变化参数。
20.根据权利要求18或19所述的装置,其中,所述参数估计器是使用线性拟合方法的装置。
21.根据权利要求20所述的装置,其中,所述线性拟合方法是卡尔曼滤波法。
22.根据权利要求17所述的装置,其中,所述反馈控制器是比例控制器。
23.根据权利要求22所述的装置,其中,所述比例控制器的输入输出关系为uk=uk-1+Kp*(ek-ek-1),其中,k代表控制周期,ek=r-yk,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率,Kp代表比例控制增益。
24.根据权利要求17所述的装置,其中,所述反馈控制器是比例积分控制器。
25.根据权利要求24所述的装置,其中,所述比例积分控制器的输入输出关系为uk=uk-1+(Kp+Ki)*ek-Kp*ek-1,其中,k代表控制周期,ek=r-yk,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率,Kp代表比例控制增益,Ki代表积分控制增益。
26.根据权利要求17所述的装置,其中,所述反馈控制器是积分控制器。
27.根据权利要求26所述的装置,其中,所述积分控制器的输入输出关系为uk=uk-1+Ki*ek,其中,k代表控制周期,ek=r-yk,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率,Ki代表积分控制增益。
28.根据权利要求17所述的装置,其中,所述反馈控制器是比例积分微分控制器。
29.根据权利要求28所述的装置,其中,所述比例积分微分控制器的输入输出关系为uk=uk-1+(Kp+Ki+Kd)*ek-(Kp+2Kd)ek-1+Kdek-2,其中,k代表控制周期,ek=r-yk,r代表目标内存使用量,yk代表第k个控制周期的实际内存使用量,uk代表第k个控制周期的期望负载接收速率,uk-1代表第k-1个控制周期的负载接收速率,Kp代表比例控制增益,Ki代表积分控制增益,Kd代表微分控制增益。
30.根据权利要求23、25、27、29任意一项所述的装置,其中,所述反馈控制器在计算第k个控制周期的期望负载接收速率时,使用所检测的第k-1个控制周期的负载接收速率。
31.根据权利要求22至30任意一项所述的装置,其中,所述增益计算模块包括:
极点确定单元,用于根据稳定时间和最大超调量确定极点位置;以及
计算单元,用于根据所述极点位置和所述负载特性变化参数计算所述控制增益。
32.根据权利要求17所述的装置,还包括:
方差计算模块,用于计算指定数量的控制周期内工作负载特性的方差;以及
判断模块,用于判断所计算的工作负载特性的方差是否超过预定阈值;
其中,在所计算的工作负载特性的方差超过预定阈值时,所述增益计算模块计算所述反馈控制器的控制增益;在所计算的工作负载特性的方差没有超过预定阈值时,维持所述反馈控制器的当前控制增益。
33.一种应用服务器的控制系统,包括:
至少一个应用服务器;以及
至少一个根据权利要求17至32任意一项所述的控制应用服务器的负载接收速率的装置,用于控制各自的应用服务器的负载接收速率。
CN2009101411927A 2009-05-26 2009-05-26 控制应用服务器的负载接收速率的方法及装置 Active CN101902295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101411927A CN101902295B (zh) 2009-05-26 2009-05-26 控制应用服务器的负载接收速率的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101411927A CN101902295B (zh) 2009-05-26 2009-05-26 控制应用服务器的负载接收速率的方法及装置

Publications (2)

Publication Number Publication Date
CN101902295A true CN101902295A (zh) 2010-12-01
CN101902295B CN101902295B (zh) 2013-08-21

Family

ID=43227522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101411927A Active CN101902295B (zh) 2009-05-26 2009-05-26 控制应用服务器的负载接收速率的方法及装置

Country Status (1)

Country Link
CN (1) CN101902295B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710465A (zh) * 2012-06-07 2012-10-03 浪潮电子信息产业股份有限公司 一种监控集群存储接口节点负载的方法
CN106897140A (zh) * 2015-12-21 2017-06-27 中国移动通信集团辽宁有限公司 一种输出调节方法、装置和系统
CN107408018A (zh) * 2015-03-27 2017-11-28 英特尔公司 用于在固态驱动器中适应垃圾收集资源分配的机制
CN109523022A (zh) * 2018-11-13 2019-03-26 Oppo广东移动通信有限公司 终端数据处理方法、装置及终端
WO2021142971A1 (zh) * 2020-01-19 2021-07-22 深圳壹账通智能科技有限公司 传输速率控制方法、装置、计算机系统及可读存储介质
CN114039854A (zh) * 2021-10-26 2022-02-11 北京航天科工世纪卫星科技有限公司 一种基于pid算法的卫星动态带宽自适应调整方法
CN115208828A (zh) * 2019-05-17 2022-10-18 思想系统公司 速率优化的拥塞管理

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1809051A (zh) * 2005-01-19 2006-07-26 华为技术有限公司 一种ip电信网中应对设备过载的处理方法
CN100466860C (zh) * 2006-06-26 2009-03-04 华为技术有限公司 一种主从结构下优化分配用户面实例的方法
CN101212399B (zh) * 2006-12-27 2011-11-09 深圳Tcl工业研究院有限公司 一种内存管理方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710465A (zh) * 2012-06-07 2012-10-03 浪潮电子信息产业股份有限公司 一种监控集群存储接口节点负载的方法
CN107408018A (zh) * 2015-03-27 2017-11-28 英特尔公司 用于在固态驱动器中适应垃圾收集资源分配的机制
CN107408018B (zh) * 2015-03-27 2021-01-19 英特尔公司 用于在固态驱动器中适应垃圾收集资源分配的机制
CN106897140A (zh) * 2015-12-21 2017-06-27 中国移动通信集团辽宁有限公司 一种输出调节方法、装置和系统
CN106897140B (zh) * 2015-12-21 2021-07-13 中国移动通信集团辽宁有限公司 一种输出调节方法、装置和系统
CN109523022A (zh) * 2018-11-13 2019-03-26 Oppo广东移动通信有限公司 终端数据处理方法、装置及终端
CN109523022B (zh) * 2018-11-13 2022-04-05 Oppo广东移动通信有限公司 终端数据处理方法、装置及终端
CN115208828A (zh) * 2019-05-17 2022-10-18 思想系统公司 速率优化的拥塞管理
WO2021142971A1 (zh) * 2020-01-19 2021-07-22 深圳壹账通智能科技有限公司 传输速率控制方法、装置、计算机系统及可读存储介质
CN114039854A (zh) * 2021-10-26 2022-02-11 北京航天科工世纪卫星科技有限公司 一种基于pid算法的卫星动态带宽自适应调整方法

Also Published As

Publication number Publication date
CN101902295B (zh) 2013-08-21

Similar Documents

Publication Publication Date Title
CN101902295B (zh) 控制应用服务器的负载接收速率的方法及装置
Liu et al. Online response time optimization of apache web server
Abdelzaher et al. Modeling and performance control of internet servers
Sha et al. Queueing model based network server performance control
Wei et al. eqos: Provisioning of client-perceived end-to-end qos guarantees in web servers
US20100005468A1 (en) Black-box performance control for high-volume throughput-centric systems
JP2006511137A (ja) ネットワーク・デバイスにおけるフロー制御
US7707345B2 (en) Methods and apparatus for managing deadtime in feedback control queuing system
US8140673B2 (en) Method and apparatus for controlling load admission rate of an application server
Zhang et al. Congestion control for RTP media: A comparison on simulated environment
CN112214303A (zh) Kubernetes集群自动缩放系统
Qin et al. Feedback performance control for computer systems: an LPV approach
Tanelli et al. Model identification for energy-aware management of web service systems
CN114024913A (zh) 一种网络性能优化方法、装置、设备以及存储介质
Liu et al. On the performance of a hybrid network traffic model
Zhao et al. An adaptive control of Web QoS based on online identification
Alfano et al. Turbo: an autonomous execution environment with scalability and load balancing features
Li et al. Intelligent flow control algorithm for microservice system
WO2017131674A1 (en) Managing network traffic using experiential capacity
Marquez et al. Modeling TCP and high speed TCP: A nonlinear extension to AIMD mechanisms
Aboelaze et al. Response time control for web servers under realistic traffic patterns
Aly et al. Developing autonomic feedback control for heterogeneous systems using cascaded controllers
Qin et al. A first-principles based LPV modeling and design for performance management of Internet web servers
Gao et al. A feedback control mechanism for adaptive SLO maintenance in dynamic service level management
CN114064219A (zh) 数据流量控制方法、装置、电子设备及存储介质

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