CN104348639B - 一种分区间的rpc超时值自适应调整方法 - Google Patents
一种分区间的rpc超时值自适应调整方法 Download PDFInfo
- Publication number
- CN104348639B CN104348639B CN201310322518.2A CN201310322518A CN104348639B CN 104348639 B CN104348639 B CN 104348639B CN 201310322518 A CN201310322518 A CN 201310322518A CN 104348639 B CN104348639 B CN 104348639B
- Authority
- CN
- China
- Prior art keywords
- timeout
- rpc
- value
- service end
- cpu
- 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
Links
Landscapes
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种分区间的RPC超时值自适应调整方法,将超时值区间分为常规增加区间和可下降区间;在RPC超时值位于常规增加区间时,若发生超时现象,则采用倍增法上调超时值;在RPC超时值进入可下降区间后,客户端与服务端进行通信,以共同协商的方式来调整RPC超时值,其过程为:当客户端发生超时现象,此时若服务端的CPU处于繁忙状态,则将RPC超时值调整为当前值的3倍,否则调整为当前值的2倍;若服务端检测到其CPU处于空闲状态,则主动通知客户端下调RPC超时值。本发明分区间对超时值进行调整,充分考虑到服务端CPU繁忙或空闲时的情况来调整超时值,同时提供降低超时值的调整方法,使得超时值调整具有更高的精度、调整速度以及自适应能力。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种分区间的RPC(远程过程调用,Remote Procedure Call)超时值自适应调整方法。
背景技术
在计算机网络的客户端与服务端之间进行通信的过程中,如果客户端在一定时间内收不到服务端的响应,则系统称这种情况为“超时”,系统对超时现象发生后进行的处理方法则称为“超时机制”。超时是网络服务中常见的现象之一,由于网络的复杂性特点,超时机制被广泛应用在网络服务中。
RPC协议是计算机网络中的一项重要的通信技术,在RPC应用中,超时机制是一个必不可少的手段,它可以用于对系统的失效进行检测。在RPC系统中,如何设置一个合理的超时值是系统中最重要且最困难的问题之一。当超时值设置得过大或过小,都会对系统产生非常不利的影响。如果超时值设置得过小,许多提交的任务在服务端都不能在设定的时间范围内成功完成。而实际上,在超时发生时,服务端通常已经将提交的任务执行了相当多的一部分,但因为超时现象发生后客户端放弃了该任务,这样就使得当前完成的工作变得毫无意义,这造成了极大的浪费。另一方面,如果超时值设置得过大,那么当系统的服务端或网络发生故障时,客户端检测到故障的时间将会非常缓慢,系统的响应时间会变得过长,这严重影响了系统的整体性能。
按照超时机制在超时现象发生后对超时值调整方法的不同,可以将传统的超时机制分为两大类:“固定时间的超时机制”和“自适应的超时机制”。在固定时间的超时机制中,系统在初始化时即设定好一个常量作为超时值,在系统运行过程中该超时值保持不变。在这种方式下由于超时值不能动态调整,很容易导致某些执行时间较长的任务不能完成的现象发生。
在自适应的超时机制中,当“超时”现象发生时,系统会调整超时值,然后重新提交当前发生超时的任务,当然,超时值的调整次数与任务的重新提交次数都会受到一定的限制。自适应的超时机制能根据任务的执行情况动态地调整超时值,以便于尽可能地去完成更多的任务,因此这种机制目前得到了广泛的应用。
根据自适应的超时机制对超时值的调整方法,可以进一步将其分为两大类:“单机版自适应超时机制”和“联机版自适应超时机制”。在单机版自适应超时机制中,当超时现象发生时,系统只需在客户端按一定的方式增加超时值,然后重新提交任务,整个过程只需要由客户端单独完成。这种超时机制对超时值的调整方法简单易行,但缺少对实际情况的详细分析与考虑,因此精确度不高,自适应能力较差。
在联机版自适应超时机制中,当超时发生时,系统通常需要检测服务端或网络的运行状态,再根据这些检测到的信息以及预先设计好的超时值调整算法来计算出新的超时值,整个过程需要由客户端与服务端共同完成。这种超时机制一般根据系统中某些重要的运行状态,例如网络的拥塞状况、服务器的繁忙程度等等来调整超时值。这类机制的精确度较高,但其算法通常比较复杂,在运行时容易导致较高的系统开销。
研究发现,在传统的RPC单机版自适应超时机制中,超时值的调整方法存在两个重要的问题。其一是超时值的调整方式是只增不减,因此超时值在系统运行过程中只会调整得越来越大。另一个问题是当超时现象发生时,服务端经常会发生一种我们称之为“RPC任务拥塞”的情况,它将进一步增加发生超时的可能性。“RPC任务拥塞”是指当超时现象发生时,虽然客户端放弃当前的RPC任务,但如果服务端并没有发生故障,只是因为超时值设置得过小而导致的超时现象发生,那么服务端会继续执行该任务。当客户端重新提交任务(或提交新的任务)后,服务端可能还在执行上次已经被客户端放弃的任务,而重新提交的任务(或提交的新任务)不能立即执行。这样就导致了重新提交的任务(或提交的新任务)会在服务端排队等候,当等候的任务越来越多时,会在服务端堆积,而任务的等待时间也是有限的,当超过了设定的超时值后,任务又可能会重新提交,这会进一步加大超时现象发生的概率。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种分区间的RPC超时值自适应调整方法,综合了单机版自适应超时机制与联机版自适应超时机制的超时值调整方法的优点,当超时值位于不同的区间时,分别采用不同的超时值调整方法,使系统的RPC超时值调整方法达到更好的调整精度与自适应能力。
一种分区间的RPC超时值自适应调整方法,采用临界值将RPC超时值区间分为两个子区间,即大于等于超时值初始值且小于等于临界值的区间为常规增加区间,大于临界值且小于等于最大超时值的区间为可下降区间;按照如下方式调整RPC超时值:
在RPC超时值处于常规增加区间时,若客户端检测到超时现象,则采用倍增法增加RPC超时值,其乘法因子为3;
在RPC超时值从常规增加区间进入可下降区间后,客户端与服务端进行通信,以共同协商的方式来调整RPC超时值,其过程为:
若客户端检测到超时现象,客户端则主动获取服务端的CPU平均利用率;若该CPU平均利用率表明服务端的CPU处于繁忙状态,则客户端将RPC超时值调整为当前值的3倍,否则将RPC超时值调整为当前值的2倍;
若服务端检测到其CPU处于空闲状态,服务端则主动通知客户端下调RPC超时值,收到通知后客户端将超时值调整为当前RPC超时值的1/3和临界值中的较大者。
进一步地,所述超时值初始值为20~30s,所述临界值为超时值初始值的5~10倍,最大超时值为超时值初始值的30~50倍。
进一步地,若服务端的CPU在预定时段内的平均利用率大于90%,则表明服务端的CPU处于繁忙状态;若服务端的CPU在预定时段内的平均利用率小于5%,则表明服务端的CPU处于空闲状态。
本发明的技术效果体现在:
经过分析研究,发现衡量一个系统中超时值调整方法的效率高低有两个重要因素:超时值的变化范围和超时值的调整速度。超时值的变化范围决定了执行时间在多长范围之内的RPC任务才可能被正常完成;超时值的调整速度决定了超时值调整方法能够以多快的速度将超时值调整到被执行的RPC任务所需的时间范围内。本发明以上述对传统超时值调整方法的分析为基础,提供了一种分区间的RPC超时值自适应调整方法,将超时值区间划分为两个子区间,即“常规增加区间”和“可下降区间”,当超时值位于不同的区间时,分别采用了不同的超时值调整方法。一方面,为了避免运行时产生较高的系统开销,当RPC超时值位于常规增加区间时它使用单机版自适应超时机制中的超时值调整方法;当RPC超时值位于可下降区间时它使用联机版自适应超时机制中的超时值调整方法。而且在RPC超时值位于可下降区间时,如果服务端CPU较长时间处于空闲状态,本超时值调整方法中有一个可以对超时值进行下调的算法,让超时值下降到一个合理范围,从而避免了在传统的单机版自适应超时机制中超时值会越来越大的缺点,也避免了系统因超时值过大而导致响应时间过长的低效状态。因此,本超时值调整方法具有更大的超时值的变化范围和自适应能力。
本超时值调整方法在用倍增法调整超时值的过程中,有时候选取乘法因子为3,而非传统算法中的2,是考虑到了当“RPC任务拥塞”现象发生时,RPC任务在服务端有排队等候的情况发生,因此超时值需要额外加上任务在服务端排队等候的时间,这能够在一定程度上解决“RPC任务拥塞”问题。因此,这使得本方法具有较好的调整精度和更快的超时值调整速度。
附图说明
图1为本发明对RPC超时值的分区间示意图;
图2为本发明实施例超时调整流程图;
图3为本发明实施例客户端与服务端通信逻辑示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明将超时值区间划分成常规增加区间和可下降区间,当超时值位于不同的区间时,分别采用了不同的超时值调整方法,具体可参考图1。
当RPC系统初始化后,初始的超时值设置在常规增加区间内。当超时现象发生时,客户端将超时值调整为原来的3倍,在这个区间内,如果超时值要调整,则其值只能增加,不能减小。
当超时值调整到临界值以上后,即进入可下降区间,此时客户端开始与服务端使用UDP协议进行通信,并通知服务端超时值已经进入可下降区间。服务端收到通知后,启动监听线程,开始监听服务端的CPU平均利用率。
当超时值在可下降区间时,如果超时现象发生,客户端需要主动获取服务端的CPU利用率,若服务端CPU处于繁忙状态(例如CPU在最近3分钟时间的平均利用率大于90%),此时认为服务端很有可能出现RPC任务拥塞现象,所以将超时值调整为原来的3倍但不超过最大超时值,否则超时值调整为原来的2倍但不超过最大超时值。
当超时值在可下降区间时,如果服务端的CPU在较长时间处于空闲状态(例如CPU在最近3分钟时间的平均利用率小于5%),即使超时现象不发生,也要对超时值进行调整。这时可以认为RPC任务拥塞现象暂时不会出现,因此超时值显得过高,需要对超时值进行下调。因此服务端会主动给客户端发送消息,通知它降低超时值,此时客户端以下面方式调整:取当前超时值的1/3但不得低于临界值,这样可以保证超时值进入了可下降区间后将不会再次回到常规增加区间。
CPU的繁忙状态和空闲状态的具体界定指标可根据系统运行目标和实际情况进行调整,本发明经过试验推荐定义CPU在预定时段(例如最近3分钟时间)的平均利用率大于90%为繁忙,CPU在预定时段(例如最近3分钟时间)的平均利用率小于5%为空闲。
图2为本发明实施例超时调整流程图。实施例是在Sun Microsystems公司发布的TI-RPC(Transport-Independent Remote Procedure Call,传输独立的远程过程调用)上实现的,超时值是客户端的全局变量。
设T为当前超时值,T0为超时值初始值,Tc为临界值,Tm为最大超时值,则T0<Tc<Tm,超时值常规增加区间的范围为[T0,Tc],超时值可下降区间的范围为(Tc,Tm]。临界值Tc、超时值初始值T0和最大超时值Tm为经验值,可根据系统运行情况和任务大小进行调整,例如在超时值初始值T0为20~30s时,Tc为T0的5~10倍,Tm为T0的30~50倍。
超时值初始设置为T=T0,设置在常规增加区间内,在该区间内,当超时现象发生时,采用的是单机版自适应超时机制中的超时值调整方法,客户端将以乘法因子为3的倍增法增加超时值,即T=3*T,其中*表示乘法,下同。
当超时值从常规增加区间进入到可下降区间后,客户端会主动通知服务端,通知内容为:“超时值已经进入可下降区间”,此时系统将采用联机版自适应超时机制中的超时值调整方法,客户端需要与服务端通信协商来共同调整超时值。服务端收到“超时值已经进入可下降区间”这个通知后开启一个监听线程,用于监听服务端的CPU使用情况,同时这个线程还负责与客户端使用UDP协议进行通信。此时超时值的调整方法具体为:
(1)当超时现象发生时,客户端主动与服务端进行通信,获取服务端的CPU使用状况。如果服务端的CPU处于繁忙状态(在最近3分钟时间的CPU平均利用率大于90%),则认为此时服务端很有可能出现RPC任务拥塞现象,因此以乘法因子为3的倍增法增加超时值,但不得大于最大超时值,即T=min(3*T,Tm),否则以乘法因子为2的倍增法调整超时值,但不得大于最大超时值,即T=min(2*T,Tm)。
(2)服务端持续监听CPU的平均利用率,当服务端的CPU在较长时间处于空闲状态(在最近3分钟时间的CPU平均利用率小于5%),这时则认为服务端暂时不会出现RPC任务拥塞现象,因此需要将超时值进行下调。服务端会主动给客户端发送消息,通知它降低超时值,此时客户端以下面的方式对超时值进行调整:取当前超时值的1/3和临界值中的较大者,即T=max(T/3,Tc),以保证超时值在进入了可下降区间后将不会再次回到常规增加区间。
图3为本发明客户端与服务端通信逻辑示意图。其含义如下:
为了减少网络开销,我们让客户端与服务端只有在超时值上升到可下降区间时才进行通信,使用UDP协议。具体地,当超时值已经上升到可下降区间后,
(1)客户端主动通知服务端超时值已经进入可下降区间,服务端启动监听线程,开始监听服务端的CPU使用情况;
(2)当超时现象发生时,客户端主动获取服务端的CPU使用情况,服务端将CPU使用情况返回给客户端;
(3)当服务端的CPU长期处于空闲状态时,即使超时现象不发生,超时值也需要进行调整,此时服务端会主动发通知给客户端,提醒其降低超时值。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种分区间的RPC超时值自适应调整方法,采用临界值将RPC超时值区间分为两个子区间,即大于等于超时值初始值且小于等于临界值的区间为常规增加区间,大于临界值且小于等于最大超时值的区间为可下降区间;按照如下方式调整RPC超时值:
在RPC超时值处于常规增加区间时,若客户端检测到超时现象,则采用倍增法增加RPC超时值,其乘法因子为3;
在RPC超时值从常规增加区间进入可下降区间后,客户端与服务端进行通信,以共同协商的方式来调整RPC超时值,其过程为:
若客户端检测到超时现象,客户端则主动获取服务端的CPU平均利用率;若该CPU平均利用率表明服务端的CPU处于繁忙状态,则客户端将RPC超时值调整为当前值的3倍,若表明处于非繁忙状态也非空闲状态,将RPC超时值调整为当前值的2倍;
若服务端检测到其CPU处于空闲状态,服务端则主动通知客户端下调RPC超时值,收到通知后客户端将超时值调整为当前RPC超时值的1/3和临界值中的较大者。
2.根据权利要求1所述的分区间的RPC超时值自适应调整方法,其特征在于,所述超时值初始值为20~30s,所述临界值为超时值初始值的5~10倍,最大超时值为超时值初始值的30~50倍。
3.根据权利要求1或2所述的分区间的RPC超时值自适应调整方法,其特征在于,若服务端的CPU在预定时段内的平均利用率大于90%,则表明服务端的CPU处于繁忙状态;若服务端的CPU在预定时段内的平均利用率小于5%,则表明服务端的CPU处于空闲状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310322518.2A CN104348639B (zh) | 2013-07-29 | 2013-07-29 | 一种分区间的rpc超时值自适应调整方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310322518.2A CN104348639B (zh) | 2013-07-29 | 2013-07-29 | 一种分区间的rpc超时值自适应调整方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104348639A CN104348639A (zh) | 2015-02-11 |
CN104348639B true CN104348639B (zh) | 2017-08-25 |
Family
ID=52503518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310322518.2A Active CN104348639B (zh) | 2013-07-29 | 2013-07-29 | 一种分区间的rpc超时值自适应调整方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104348639B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109218369B (zh) * | 2017-07-05 | 2021-08-03 | 阿里巴巴集团控股有限公司 | 远程过程调用请求控制方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7146427B2 (en) * | 2002-04-23 | 2006-12-05 | Lsi Logic Corporation | Polling-based mechanism for improved RPC timeout handling |
CN102917068A (zh) * | 2012-10-26 | 2013-02-06 | 浪潮(北京)电子信息产业有限公司 | 一种自适应大规模集群通信系统及其通信方法 |
-
2013
- 2013-07-29 CN CN201310322518.2A patent/CN104348639B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7146427B2 (en) * | 2002-04-23 | 2006-12-05 | Lsi Logic Corporation | Polling-based mechanism for improved RPC timeout handling |
CN102917068A (zh) * | 2012-10-26 | 2013-02-06 | 浪潮(北京)电子信息产业有限公司 | 一种自适应大规模集群通信系统及其通信方法 |
Non-Patent Citations (2)
Title |
---|
"A Dedicated Serialization Scheme in Homogeneous Cluster RPC Communication";Yong Wan, Dan Feng,etc.;《Grid and Pervasive Computing》;20130511;PP403-412 * |
"大规模集群中一种自适应可扩展的RPC超时机制";钱迎进,肖侬,金士尧;《软件学报》;20101231;第21卷(第12期);pp3199-3210 * |
Also Published As
Publication number | Publication date |
---|---|
CN104348639A (zh) | 2015-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kliazovich et al. | DENS: data center energy-efficient network-aware scheduling | |
EP2178080B1 (en) | Performance allocation method and apparatus | |
US8917742B2 (en) | Mechanism to save system power using packet filtering by network interface | |
US8547840B1 (en) | Bandwidth allocation of bursty signals | |
Nakai et al. | Load balancing for internet distributed services using limited redirection rates | |
TWI499242B (zh) | 用以減少封包處理線卡中之能量耗損的方法 | |
JP4747307B2 (ja) | ネットワーク処理制御装置,プログラムおよび方法 | |
EP3033675A1 (en) | Power balancing to increase workload density and improve energy efficiency | |
JP2006511137A5 (zh) | ||
KR20120040819A (ko) | 디지털 시스템에서 동적 클럭 제어 장치 및 방법 | |
EP3414952B1 (en) | Power-aware network communication | |
US20170185456A1 (en) | Dynamically scaled web service deployments | |
WO2017148253A1 (zh) | 一种节能管理实现方法、装置及网络设备 | |
CN114217993A (zh) | 线程池拥塞的控制方法、系统、终端设备以及存储介质 | |
KR102333391B1 (ko) | 전자 장치 및 이의 전력 제어 방법 | |
CN109597378A (zh) | 一种资源受限混合任务能耗感知方法 | |
CN104348639B (zh) | 一种分区间的rpc超时值自适应调整方法 | |
US10785309B2 (en) | Session monitoring method, apparatus, and system | |
US10003542B2 (en) | Data streaming scheduler for dual chipset architectures that includes a high performance chipset and a low performance chipset | |
CN113971082A (zh) | 任务调度方法、装置、设备、介质及产品 | |
CN113971083A (zh) | 任务调度方法、装置、设备、介质及产品 | |
CN113170001A (zh) | 适配在网关上执行的软件应用程序 | |
JP5428772B2 (ja) | 電力制御装置,コンピュータシステム,電力制御方法,コンピュータプログラム | |
JP5770679B2 (ja) | サービスパーツ選択方法、及び、省エネルギー型ネットワークシステム | |
Tambe et al. | Virtual batching approach for green computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |