一种分区间的RPC超时值自适应调整方法技术

技术编号:11032698 阅读:83 留言:0更新日期:2015-02-11 18:24
本发明专利技术公开了一种分区间的RPC超时值自适应调整方法,将超时值区间分为常规增加区间和可下降区间;在RPC超时值位于常规增加区间时,若发生超时现象,则采用倍增法上调超时值;在RPC超时值进入可下降区间后,客户端与服务端进行通信,以共同协商的方式来调整RPC超时值,其过程为:当客户端发生超时现象,此时若服务端的CPU处于繁忙状态,则将RPC超时值调整为当前值的3倍,否则调整为当前值的2倍;若服务端检测到其CPU处于空闲状态,则主动通知客户端下调RPC超时值。本发明专利技术分区间对超时值进行调整,充分考虑到服务端CPU繁忙或空闲时的情况来调整超时值,同时提供降低超时值的调整方法,使得超时值调整具有更高的精度、调整速度以及自适应能力。

【技术实现步骤摘要】
一种分区间的RPC超时值自适应调整方法
本专利技术涉及网络通信
,具体涉及一种分区间的RPC(远程过程调用,RemoteProcedureCall)超时值自适应调整方法。
技术介绍
在计算机网络的客户端与服务端之间进行通信的过程中,如果客户端在一定时间内收不到服务端的响应,则系统称这种情况为“超时”,系统对超时现象发生后进行的处理方法则称为“超时机制”。超时是网络服务中常见的现象之一,由于网络的复杂性特点,超时机制被广泛应用在网络服务中。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超时值自适应调整方法

【技术保护点】
一种分区间的RPC超时值自适应调整方法,采用临界值将RPC超时值区间分为两个子区间,即大于等于超时值初始值且小于等于临界值的区间为常规增加区间,大于临界值且小于等于最大超时值的区间为可下降区间;按照如下方式调整RPC超时值:在RPC超时值处于常规增加区间时,若客户端检测到超时现象,则采用倍增法增加RPC超时值,其乘法因子为3;在RPC超时值从常规增加区间进入可下降区间后,客户端与服务端进行通信,以共同协商的方式来调整RPC超时值,其过程为:若客户端检测到超时现象,客户端则主动获取服务端的CPU平均利用率;若该CPU平均利用率表明服务端的CPU处于繁忙状态,则客户端将RPC超时值调整为当前值的3倍,否则将RPC超时值调整为当前值的2倍;若服务端检测到其CPU处于空闲状态,服务端则主动通知客户端下调RPC超时值,收到通知后客户端将超时值调整为当前RPC超时值的1/3和临界值中的较大者。

【技术特征摘要】
1.一种分区间的RPC超时值自适应调整方法,采用临界值将RPC超时值区间分为两个子区间,即大于等于超时值初始值且小于等于临界值的区间为常规增加区间,大于临界值且小于等于最大超时值的区间为可下降区间;按照如下方式调整RPC超时值:在RPC超时值处于常规增加区间时,若客户端检测到超时现象,则采用倍增法增加RPC超时值,其乘法因子为3;在RPC超时值从常规增加区间进入可下降区间后,客户端与服务端进行通信,以共同协商的方式来调整RPC超时值,其过程为:若客户端检测到超时现象,客户端则主动获取服务端的CPU平均利用率;若该CPU平均利用率表明服务端的CPU处于繁忙状态,则客户端将RPC超时值调整为当前值的3倍,若表明处于非繁忙状...

【专利技术属性】
技术研发人员:王芳冯丹万勇朱挺炜
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1