一种服务器过载保护系统及方法

文档序号:7814068阅读:272来源:国知局
一种服务器过载保护系统及方法
【专利摘要】本发明提供了一种服务超时保护系统及方法。该方法包括:a)接收来自请求端针对一项服务的请求;b)判断所述服务的当前占用服务器超时次数是否大于第一阈值,否,则进入步骤c;是,则进入步骤f;c)允许所述请求发送至所述服务器;d)获取所述请求的服务器占用时间;e)当所述请求的服务器占用时间大于第二阈值时,更新所述服务的当前占用服务器超时次数;f)判断所述服务的当前拒绝次数是否大于第三阈值,是,则允许所述请求发送至所述服务器;否,则拒绝所述请求发送至所述服务器,并更新所述当前拒绝次数。
【专利说明】一种服务器过载保护系统及方法

【技术领域】
[0001]本发明涉及服务器的管理【技术领域】,特别是一种服务器过载保护系统及方法。

【背景技术】
[0002]经过多年的发展,服务器过载保护方面已经有比较多的研究,但在实际业务场景中,一些极端情况下服务器的负载仍然有可能达到其上限。
[0003]现有的服务保护技术中,有的从硬件着手,优化网卡驱动,根据当前机器的CPU使用率、内存使用率等参数来衡量服务器的负载情况;如果服务器超过负载限制,则网卡驱动拒绝所有建立新TCP连接的请求,来缓解服务器的压力。优化网卡驱动虽然一定程度上能缓存服务器负载,但是,对于突发的短暂的高访问量情况,将会引起服务器的吞吐量抖动。同时,由于这种方法的控制粒度太粗,如果同一台机器上部署多类服务,那么其中一类服务异常会导致所有的服务都不能正常工作。
[0004]还有的服务保护技术从软件着手,采用不同的工作负载管理器来分别处理不同优先级的请求方法:当服务器负载达到一定上限时,拒绝低优先级的服务请求,只处理高优先级的请求。但是,根据优先级来拒绝服务请求,实际上是根据业务服务器负载来判断服务提供方的调用,如果提供高优先级的服务器出现异常,这种策略就不能有效地缓解系统负载。
[0005]也有服务保护技术采用时间滑动窗口,根据所消耗的资源将服务分为磁盘带宽消耗型的服务、CPU消耗型的服务、网络带宽消耗型的服务,根据服务的不同来设置不同时长的滑动窗口。例如,专利号为CN103164663A的专利:一种基于滑动窗口的服务器过载保护方法及装置。在该专利中,所述滑动窗口记录对应时间段内服务器接收的请求:服务器收到新的请求时,根据滑动窗口记录的服务器接收的请求检测服务器当前的负载状态,根据检测结果判断是否对请求进行处理。但是,基于时间滑动窗口的服务保护技术,忽略了访问的周期性,实际上互联网用户访问量会呈现出周期性的波峰波谷,例如通常白天的访问量比凌晨高很多,而此时使用同样长的时间窗口显然不太合适。而且不同长的滑动窗口仅根据服务消耗的资源进行区分,粒度太粗,如有多种服务都是CPU消耗型的服务,则不便于实时探测服务器负载,存在由于突发情况引起的负载抖动对服务器处理核心服务带来影响的可能性。
[0006]因此,需要一种服务器器过载保护的方法及系统,以有效地避免突发事件对服务器带来的影响。


【发明内容】

[0007]本发明的目的是提供一种服务器过载保护的方法及系统。本发明以服务种类为粒度,对服务器进行过载保护。根据本发明的一个方面,提供了一种服务器过载保护的方法,所述方法包括如下步骤:a)接收来自请求端针对一项服务的请求;b)判断所述服务的当前占用服务器超时次数是否大于第一阈值,否,则进入步骤c ;是,则进入步骤f ;c)允许所述请求发送至所述服务器;d)获取所述请求的服务器占用时间;e)当所述请求的服务器占用时间大于第二阈值时,更新所述服务的当前占用服务器超时次数;f)判断所述服务的当前拒绝次数是否大于第三阈值,是,则允许所述请求发送至所述服务器;否,则拒绝所述请求发送至所述服务器,并更新所述当前拒绝次数。
[0008]优选地,步骤c进一步包括:判断所述服务的当前发送次数是否大于第四阈值,否,则允许所述请求发送至所述服务器,更新所述服务的当前发送次数;是,则将所述服务的当前占用服务器超时次数及所述服务的当前发送次数复位,允许所述请求发送至服务器。
[0009]优选地,步骤c进一步包括:cl’)更新所述服务的当前发送次数;和c2’ )判断所述服务的当前发送次数是否大于第四阈值;否,则允许所述请求发送至服务器;是,则将所述服务的当前占用服务器超时次数及所述服务的当前发送次数复位,允许所述请求发送至服务器。
[0010]优选地,所述第一阈值、第二阈值、第三阈值为预先设置的。
[0011]优选地,所述第一阈值、第二阈值、第三阈值、第四阈值为预先设置的。
[0012]优选地,所述第三阈值根据动态计算得到。
[0013]优选地,所述第三阈值根据所述第一阈值与当前超时比例的乘积,动态计算得到,其中所述当前超时比例为当前占用服务器超时次数/当前发送次数。
[0014]优选地,更新所述当前占用服务器超时次数以及所述当前拒绝次数的方法为,对所述当前占用服务器超时次数以及所述当前拒绝次数分别加I。
[0015]优选地,更新所述当前发送次数的方法为,对所述当前发送次数加I。
[0016]根据本发明的另一方面,提供了一种服务器过载保护系统,其中:所述系统接收请求端发出的针对一项服务的请求;所述系统包括接口单元、设置单元、计数单元以及控制单元,其中,所述接口单元用于允许或者阻止所述请求端与所述服务器之间的数据交换;所述设置单元用于生成第一阈值、第二阈值、第三阈值以及第四阈值;所述计数单元用于记录针对所述服务的当前占用服务器超时次数、针对所述服务的当前发送次数、以及针对所述服务的当前拒绝次数;并根据所述控制单元的控制将针对所述服务的当前占用服务器超时次数、所述服务的当前发送次数以及所述服务的当前拒绝次数复位;所述控制单元用于控制允许或者阻止所述请求端与所述服务器之间的数据交换。
[0017]优选地,所述接口单元用于:接收所述请求后,请求所述控制单元提供针对该请求的指示;根据所述控制单元的允许指示,允许所述请求端将请求发送至所述服务器并且允许所述服务器将反馈发送至所述请求端;记录所述请求发送至所述服务器的时间以及所述服务器发送针对所述请求的反馈的时间;根据所述控制单元的拒绝指示,拒绝来自所述请求端的请求,并且向所述请求端发送反馈。
[0018]优选地,所述控制单元用于接收所述接口单元发出的请求,分别调取所述第一阈值与当前占用服务器超时次数,比较所述第一阈值与所述当前占用服务器超时次数;当所述当前占用服务器超时次数 <所述第一阈值时,所述控制单元向所述接口单元发送允许指示,计算所述服务器占用时间,比较所述服务器占用时间与所述第二阈值,当所述服务器占用时间 > 所述第二阈值,则所述控制单元控制所述计数单元对所述当前占用服务器超时次数进行更新;若所述服务器超时次数>所述第一阈值,则所述控制单元分别调取所述第三阈值与当前拒绝次数,比较所述第三阈值与所述当前拒绝次数;若所述当前拒绝次数<所述第三阈值,则所述控制单元向所述接口单元发送拒绝指示,并控制所述计数单元对所述当前拒绝次数进行更新;若所述当前拒绝次数 > 所述第三阈值,则所述控制单元向所述接口单元发送允许指示。
[0019]优选地,所述计数单元动态计算所述第三阈值。
[0020]优选地,所述计数单元根据所述第一阈值与当前超时比例的乘积动态计算所述第三阈值,其中所述当前超时比例为所述服务器超时的次数/所述当前发送次数。
[0021 ] 优选地,所述接口单元包括第一暂存模块,用以存储来自所述请求端的请求和/或来自所述服务器的反馈,和/或,所述请求发送至所述服务器的时间以及所述服务器发送针对所述请求的反馈的时间。
[0022]优选地,所述服务器过载保护系统中设置有第一存储单元,用以存储来自所述请求端的请求和/或来自所述服务器的反馈,和/或,所述请求发送至所述服务器的时间以及所述服务器发送针对所述请求的反馈的时间。
[0023]优选地,所述设置单元包括第二暂存模块,用以存储针对不同服务的所述第一阈值、第二阈值、第三阈值以及第四阈值。
[0024]优选地,所述服务器过载保护系统中设置有第二存储单元,用以存储针对不同服务的所述第二阈值、所述第一阈值、所述发送阈值次数、以及所述第三阈值。
[0025]优选地,所述计数单元包括第三暂存模块,用以存储针对不同服务的所述服务器超时次数、所述当前发送次数以及所述当前拒绝次数。
[0026]优选地,所述服务器过载保护系统中设置有第三存储单元,用以存储针对不同服务的所述服务器超时次数、所述当前发送次数以及所述当前拒绝次数。
[0027]根据本发明公开的服务器过载保护方法及系统,能够根据服务种类的不同,对服务器当前负载进行预估,有效地避免突发事件对服务控制系统带来的影响。并实现基于服务的种类的负载保护,从而对资源进行充分的利用。

【专利附图】

【附图说明】
[0028]参考随附的附图,本发明更多的目的、功能和优点将通过本发明实施方式的如下描述得以阐明,其中:
[0029]图1示意性示出了根据本发明公开的一实施方式的服务器过载保护方法的流程图。
[0030]图2示意性示出了根据本发明公开的另一实施方式的服务器过载保护方法的流程图。
[0031]图3示意性示出了根据本发明公开的又一实施方式的服务器过载保护方法的流程图。
[0032]图4示意性示出了根据本发明公开的一实施方式的服务器过载保护系统的框图。

【具体实施方式】
[0033]通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。
[0034]在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
[0035]下文中所讨论的服务,可以基于多种标准进行分类,例如从业务层面上进行分类、从代码层面上分类、基于资源消耗情况进行分类等等。
[0036]图1所示为根据本发明一实施例的一种服务器过载保护方法,如图1所示,该方法包括:
[0037]SlOO:接收针对一项服务的请求;
[0038]S200:判断该项服务的当前占用服务器超时次数A是否大于第一阈值,即该项服务的超时阈值次数Athred,否则执行步骤S300,是则执行步骤S700 ;
[0039]其中,超时阈值次数Athred为服务器占用时间T大于第二阈值,即服务器占用阈值时间Tthred的阈值次数,服务器占用时间T为请求发送至服务器的时间Ttl与服务器发送针对该请求的反馈的时间T1之差,即T = T1-T00 一项服务的当前占用服务器超时次数A为该项服务的服务器实际占用时间T超过该项服务的服务器占用阈值时间Tthred的次数。在本发明的一个实施例中,服务器占用阈值时间Tthred与超时阈值次数Athred可以根据使用者的设定生成,也可以为默认设置。
[0040]S300:允许所述请求发送至服务器;
[0041]其中,当前发送次数B为请求发送至服务器的次数(如图中所示)。
[0042]在一实施例中,还可执行更新该项服务的当前发送次数B的操作(如图中所示)。
[0043]S400:获取所述请求的服务器占用时间T ;
[0044]S500:判断所述请求的服务器占用时间T是否大于该项服务的第二阈值,即服务器占用阈值时间Tthred,当大于该项服务的第二阈值时执行步骤S600 ;
[0045]S600:更新该项服务的当前占用服务器超时次数A ;
[0046]S700:判断该项服务的当前拒绝次数C是否大于第三阈值,即该项服务的拒绝阈值次数Cthred,是则执行步骤S800,否则执行步骤S900 ;
[0047]其中,当前拒绝次数C为拒绝请求发送至服务器的次数。拒绝阈值次数Cthred为拒绝请求发送至服务器的阈值次数,在本发明的一个实施例中,拒绝阈值次数Cthred可以根据使用者的设定生成,也可以为默认的。在本发明的另一个实施例中,Cthred可以动态计算得至IJ,例如在一实施方式中,根据超时阈值次数Atod与当前超时比例(S卩,当前占用服务器超时的次数A/当前发送次数B)的乘积动态计算CthMd。
[0048]S800:允许所述请求发送至服务器;
[0049]其中,在一些实施例中,还将该项服务的当前占用服务器超时次数A、该项服务的当前发送次数B以及该项服务的当前拒绝次数C复位(如图中所示)。
[0050]S900:拒绝所述请求发送至服务器,更新该项服务的当前拒绝次数C。
[0051]其中,在一些实施方式中,如图2所示,步骤S300包括:
[0052]S310:判断该项服务的当前发送次数B是否大于该项服务的第四阈值,即发送阈值次数Bthred ;否则执行步骤S320,是则执行步骤S330 ;
[0053]其中发送阈值次数Bthred为允许请求发送至服务器的阈值次数。
[0054]S320:允许所述请求发送至服务器,更新该项服务的当前发送次数B ;
[0055]S330:将该项服务的当前占用服务器超时次数A及该项服务的当前发送次数B复位,允许所述请求发送至服务器;
[0056]其中,在另一些实施方式中,如图3所示,步骤S300包括:
[0057]S305’:更新该项服务的当前发送次数B ;
[0058]S310’:判断更新后的该项服务的当前发送次数B是否大于该项服务的发送阈值次数Bthred ;否则执行步骤S320’,是则执行步骤S330’ ;
[0059]S320’:允许所述请求发送至服务器;
[0060]S330’:将该项服务的当前占用服务器超时次数A及该项服务的当前发送次数B复位,允许所述请求发送至服务器。
[0061]根据本发明公开的一实施方式,针对不同项或者不同类的服务,设置对应的Athred、BthredXthred以及Tthred,以对不同服务进行分别管理,对服务器的占用情况进行细分。同时针对不同项或者不同类的服务,对当前占用服务器超时次数A、当前发送次数B以及当前拒绝次数C分别进行更新与复位,从而实现对不同服务进行分别管理,对服务器的占用情况进行细分。根据本发明公开的一实施方式,对当前占用服务器超时次数A、当前发送次数B以及当前拒绝次数C进行更新即为,对次数A、次数B以及次数C分别加I。
[0062]对于本领域技术人员可以理解的是,由于本发明公开的一些实施方式可以分别针对不同的服务,因此对次数A、B以及C进行复位的动作,以及允许或者拒绝请求发送至服务器的动作,以及对次数A、B、C进行更新的动作,在针对不同服务时,三者没有顺序上的限制。例如,在对服务一的次数A、B和/或C进行复位时,可以同时或不同时地允许或拒绝针对服务二的请求发送至服务器,可以同时或不同时地对服务三的次数A、B和/或C进行更新。由于服务控制系统120可以接收大量针对不同服务的请求,因此针对不同服务的上述3种处理可交织进行,例如在对服务一的次数A进行复位时,可以同时允许针对服务二的请求发送至服务器,可以同时对服务三的次数C进行更新等等。其执行顺序并不会影响到本发明公开的服务器过载保护方法的整体功能效果。
[0063]此外,本发明中,对次数A、B和/或C的复位动作、更新动作、以及允许或拒绝请求发送至服务器的动作,之间没有顺序上的限制。例如允许请求发送至服务器的动作,可与更新当前发送次数B的动作同时进行或不同时进行;例如允许请求发送至服务器的动作,可与复位次数A、B的动作同时进行或不同时进行;例如允许请求发送至服务器的动作,可与复位次数A、B、C的动作同时进行或不同时进行;例如拒绝请求发送至服务器的动作可与更新当前拒绝次数C的动作同时进行或不同时进行。
[0064]图4所示为根据本发明公开的一个实施方式的一种服务器过载保护系统130的各功能性模块与一请求端110以及一服务器150之间相互作用的示意方框图。虽然此示例方框图中仅示出一单个请求端110,例如用户端工作站,以及一单个服务器150,例如电子邮件服务器,与一服务器过载保护系统之间的相互作用。但应该理解的是,多个请求端、多个服务器可与服务器过载保护系统130直接或间接的相互作用。
[0065]根据本发明公开的一个实施方式,服务器过载保护系统130可以逻辑上设置于请求端110与服务器150之间,以有条件地允许请求端110与服务器150交换数据。请求端110针对一项服务,向服务器150发出请求,服务器过载保护系统130分析服务器150对于该项服务的服务压力。若服务器过载保护系统130分析认为服务器150对于该服务的压力过大,则阻止所述请求发送至服务器150,并向请求端110发送拒绝信息;若分析认为服务器150针对该服务的压力正常,则允许所述请求发送至服务器150。应该理解的是,本发明公开的技术方案并不局限于某一项或某一类服务、或者针对某一项或某一类服务的请求,亦可以适用于多项或者多类服务、以及针对多项或多类服务的请求。
[0066]在本发明一个实施例中,请求端110可以设置为能够发送请求的设备,例如个人数字助理(PDA)、智能手机、笔记本电脑、上网本、个人计算机、无线传感器、消费型电子产品,诸如此类。根据本发明一个实施例,请求端110可以根据用户操作发送请求,也可以根据预先设定,例如为满足请求端110上运行的程序的需求,自动发送请求。
[0067]根据本发明的一实施例,该服务器过载保护系统130可以是一虚拟或物理设备。如图4所示,服务器过载保护系统130包括四个相互作用的功能模块,控制单元131、计数单元133、设置单元135以及接口单元137。
[0068]接口单元137设置用于允许或者阻止请求端110与服务器150之间的数据交换。在一实施方式中,接口单元137接收来自请求端110针对一项服务的请求后,请求控制单元131提供针对该请求的指示。接口单元137根据控制单元131的允许指示,允许请求端110将请求发送至服务器150并且允许服务器150将反馈发送至请求端110。例如,接口单元137根据控制单元131的允许指示将请求发送至服务器150,接收服务器150发送的针对该请求的反馈,并且将该反馈发送至请求端110。接口单元137记录请求发送至服务器150的时间Ttl以及服务器150发送针对该请求的反馈的时间!\。例如,接口单元137将请求发送至服务器150的时间为Ttl,接口单元137接收到服务器150发送的反馈的时间为T1。接口单元137根据控制单元131的拒绝指示拒绝来自请求端110的请求,并且向请求端110发送表示拒绝的反馈。应该理解的是,根据本发明公开的技术方案,上述实施例中的接口单元137并不局限于某一项或某一类服务、或者仅针对关于某一项或某一类服务的请求,亦可以适用于多项或者多类服务以及关于多项或者多类服务的多个请求。
[0069]在本发明一实施例中,接口单元137包括暂存模块1371(未示出),用以存储来自请求端110的请求。在本发明另一实施例中,该暂存模块1371用以存储接收到的来自请求端110的请求、来自服务器150的反馈以及Ttl与1\。在本发明又一实施例中,服务器过载保护系统130中设置有存储单元139(未示出),用以存储接收到的来自请求端110的请求、来自服务器150的反馈和/或Ttl与1\。应该理解的是,根据本发明公开的技术方案,上述实施例中的暂存模块1371、存储单元139并不局限于存储针对某一项或某一类服务的请求,亦可以适用于存储针对多项或者多类服务的多个请求。
[0070]设置单元135设置用于生成:第二阈值即服务器占用阈值时间Tthred、第一阈值即超时阈值次数Athrral(即服务器占用时间T大于服务器占用阈值时间Tthred的阈值次数)、第四阈值即发送阈值次数Bthrral(即允许来自请求端110的请求发送至服务器150的阈值次数)、以及第三阈值即拒绝阈值次数Ctod(即拒绝来自请求端110的请求的阈值次数)。在本发明的一个实施例中,Attoed、Bthred, Cthred以及Tttoed可以根据使用者的设定生成,也可以由设置单元135默认生成。在另一实施方式中,Cthred可以动态计算,具体计算方式将结合计数单元133在下文中详细介绍。根据本发明公开的一实施方式,针对不同项或者不同类的服务,设置单元135分别设置针对该项或者该类服务的AthMd、BthMd、Cthred以及Tthred,以对不同服务进行分别管理,对服务器的占用情况进行细分。在本发明一实施例中,设置单元135包括暂存模块1351 (未示出),用以存储针对不同服务的Athral、Bthral、Cthral以及Tthred。在本发明另一实施例中,服务器过载保护系统130中设置有存储单元139 (未示出),用以存储针对不冋服务的 Athre;d、Bthred> Cthred 以及 Tthrad。
[0071]计数单元133设置用于:记录针对一项服务的当前占用服务器超时次数A(即服务器实际占用时间T超过针对该项服务的服务器占用阈值时间Tthral的次数),记录针对一项服务的当前发送次数B(即来自请求端110的针对该项服务的请求发送至服务器150的次数)、记录针对一项服务的当前拒绝次数C(即拒绝来自请求端110的针对该项服务的请求的次数)。计数单元133可根据控制单元131的控制,例如控制单元131发送的复位指示等,将针对一项服务的A、B、C清零。根据本发明公开的一实施方式,针对不同项或者不同类的服务,设置单元135分别设置针对该项或者该类服务的Attoed、Bttoed、Cttoed以及Tttoed,以对不同服务进行分别管理,对服务器的占用情况进行细分。在本发明一实施例中,计数单元133包括暂存模块1331 (未示出),用以存储针对不同服务的当前占用服务器超时次数A、当前发送次数B以及当前拒绝请求发送至服务器的次数C。在本发明另一实施例中,服务器过载保护系统130中设置有存储单元139 (未示出),用以存储针对不同服务的当前占用服务器超时次数A、当前发送次数B以及当前拒绝请求发送至服务器的次数C。
[0072]Cthral可以由设置单元135动态计算。在一实施方式中,控制单元131调取计数单元133生成的当前占用服务器超时次数A与当前发送次数B,根据超时阈值次数Attoed与当前超时比例(即,当前占用服务器超时次数A/当前发送次数B)的乘积动态计算CthMd。
[0073]控制单元131设置用于控制允许或者阻止请求端110与服务器150之间的数据交换。在一实施方式中,控制单元131接收到接口单元137发出的请求后,分别调取设置单元135生成的针对该项服务的超时阈值次数Athred与计数单元133生成的针对该项服务的当前占用服务器超时次数A,比较超时阈值次数Athred与当前占用服务器超时次数A ;若A ( Athred,分别调取设置单元135生成的阈值次数Bthred与计数单元133生成的当前发送次数B,比较阈值次数Bthred与当前发送次数B ^BSBthred,则控制单元131向接口单元137发送允许指示,并控制计数单元133对当前发送次数B进行更新(例如,对当前发送次数B加I),之后控制单元131调取接口单元137记录的Ttl与T1,计算出针对该项服务的服务器占用时间T (即,T =;比较服务器占用时间T与服务器占用阈值时间Tthral,若T ( Tthred,则不进行动作,若T > TthMd,则控制单元131控制计数单元133对当前占用服务器超时次数A进行更新(例如,对当前占用服务器超时次数A加I);若B > Bthred,则控制单元131向计数单元133发送复位指示,指示计数单元133将该项服务的当前占用服务器超时次数A与当前发送次数B清零,并且向接口单元137发送允许指示,控制计数单元133对当前发送次数B进行更新(例如,对当前发送次数B加I),之后控制单元131调取接口单元137记录的T0与T1,计算出针对该项服务的服务器占用时间T (即,T = T1-T0);比较服务器占用时间T与服务器占用阈值时间Ttod,若T ( Tthred,则不进行动作,若T > Tthred,则控制单元131控制计数单元133对当前占用服务器超时次数A进行更新(例如,对当前超时次数A加I)。
[0074]在本发明另一实施例中,当控制单元131判断B > Bthral,控制单元131向计数单元133发送复位指示,指示计数单元133将当前占用服务器超时次数A与当前发送次数B清零。
[0075]在本发明另一实施例中,当控制单元131判断A < Athra!,控制单元131控制计数单元133对当前发送次数B进行更新(例如,对当前发送次数B加I),之后分别调取设置单元135生成的发送阈值次数Bthred与更新后的当前发送次数B,比较发送阈值次数Bthred与更新后的当前发送次数B ;若B SBthrral,控制单元131向接口单元137发送允许指示,并控制单元131调取接口单元137记录的Ttl与T1,计算出针对该项服务的服务器占用时间T(即,T =T1-T0);比较服务器占用时间T与服务器占用阈值时间Tthred,若T ( Tthred,则不进行动作,若T > Tthred,则控制单元131控制计数单元133对当前占用服务器超时次数A进行更新(例如,对当前占用服务器超时次数A加I);若B > Bthred,则控制单元131向计数单元133发送复位指示,指示计数单元133将当前发送次数B清零,并且向接口单元137发送允许指示,控制计数单元133对该项服务的当前占用服务器超时的次数A及该项服务的当前发送次数B进行更新(例如,对当前发送次数B加I),之后控制单元131调取接口单元137记录的Ttl与T1,计算出针对该项服务的服务器占用时间T(即,T = T1-T0);比较该请求的服务器占用时间T与该项服务的服务器占用阈值时间Tthred,若T ( Tthred,则不进行动作,若T > Tthred,则控制单元131控制计数单元133对该服务的占用服务器超时次数A进行更新(例如,对当前占用服务器超时次数A加I)。在本发明另一实施例中,在控制单元131判断B > Bthred时,控制单元131向计数单元133发送复位指示,指示计数单元133将该服务的占用服务器超时次数A与当前发送次数B清零。
[0076]若A > Athred,则控制单元131分别调取设置单元135生成的拒绝阈值次数Cthred与计数单元133生成的当前拒绝请求发送至服务器的次数C,比较拒绝阈值次数Cthred与当前拒绝请求发送至服务器的次数C ;若C彡CthMd,则控制单元131向接口单元137发送拒绝指示,并控制计数单元133对当前拒绝请求发送至服务器的次数C进行更新(例如,对当前拒绝请求发送至服务器的次数C加I)。若C > Cthred,则控制单元131向计数单元133发送复位指示,指示计数单元133将当前占用服务器超时次数A以及当前发送次数B复位,并且向接口单元137发送允许指示。之后控制单元131调取接口单元137记录的Ttl与T1,计算出针对该项服务的服务器占用时间T (即,T = T1-T0);比较服务器占用时间T与服务器占用阈值时间Tthred,若T彡Tthred,则不进行动作,若T > Tthred,则控制单元131控制计数单元133对当前占用服务器超时次数A进行更新(例如,对当前超时次数A加I)。
[0077]应该理解的是,本领域技术人员可以根据具体情况和需求对所述功能模块进行整合或拆解,例如在一实施方式中,接口单元137与控制单元131整合为一个模块。在另一实施方式中,将控制单元131的部分功能由接口单元137实现,例如由接口单元137计算服务器占用时间T。此外在一实施方式中,Cthrad可以由计数单元133动态计算。
[0078]根据本发明的服务器过载保护方法及系统,能够根据服务种类的不同,对服务器当前负载进行预估,有效地避免突发事件对服务控制系统带来的影响,实现根据服务种类这一粒度的负载保护,从而对资源进行充分的利用。
[0079]结合这里披露的本发明的说明和实践,本发明的其他实施例对于本领域技术人员都是易于想到和理解的。说明和实施例仅被认为是示例性的,本发明的真正范围和主旨均由权利要求所限定。
【权利要求】
1.一种服务器过载保护方法,所述方法包括如下步骤: a)接收来自请求端针对一项服务的请求; b)判断所述服务的当前占用服务器超时次数是否大于第一阈值,否,则进入步骤c;是,则进入步骤f; c)允许所述请求发送至所述服务器; d)获取所述请求的服务器占用时间; e)当所述请求的服务器占用时间大于第二阈值时,更新所述服务的当前占用服务器超时次数; f)判断所述服务的当前拒绝次数是否大于第三阈值,是,则允许所述请求发送至所述服务器;否,则拒绝所述请求发送至所述服务器,并更新所述当前拒绝次数。
2.根据权利要求1所述的方法,其特征在于,步骤c进一步包括: 判断所述服务的当前发送次数是否大于第四阈值,否,则允许所述请求发送至所述服务器,更新所述服务的当前发送次数;是,则将所述服务的当前占用服务器超时次数及所述服务的当前发送次数复位,允许所述请求发送至服务器。
3.根据权利要求1所述的方法,其特征在于,步骤c进一步包括: Cl’ )更新所述服务的当前发送次数; c2’)判断所述服务的当前发送次数是否大于第四阈值;否,则允许所述请求发送至服务器;是,则将所述服务的当前占用服务器超时次数及所述服务的当前发送次数复位,允许所述请求发送至服务器。
4.根据权利要求1所述的方法,其特征在于,所述第一阈值、第二阈值、第三阈值为预先设置的。
5.根据权利要求2或3所述的方法,其特征在于,所述第一阈值、第二阈值、第三阈值、第四阈值为预先设置的。
6.根据权利要求1所述的方法,其特征在于,所述第三阈值根据动态计算得到。
7.根据权利要求2或3所述的方法,其特征在于,所述第三阈值根据所述第一阈值与当前超时比例的乘积,动态计算得到,其中所述当前超时比例为当前占用服务器超时次数/当前发送次数。
8.根据权利要求1所述的方法,其特征在于,更新所述当前占用服务器超时次数以及所述当前拒绝次数的方法为,对所述当前占用服务器超时次数以及所述当前拒绝次数分别加I。
9.根据权利要求2或3所述的方法,其特征在于,更新所述当前发送次数的方法为,对所述当前发送次数加I。
10.一种服务器过载保护系统,其中: 所述系统接收请求端发出的针对一项服务的请求; 所述系统包括接口单元、设置单元、计数单元以及控制单元,其中, 所述接口单元用于允许或者阻止所述请求端与所述服务器之间的数据交换; 所述设置单元用于生成第一阈值、第二阈值、第三阈值以及第四阈值; 所述计数单元用于记录针对所述服务的当前占用服务器超时次数、针对所述服务的当前发送次数、以及针对所述服务的当前拒绝次数;并根据所述控制单元的控制将针对所述服务的当前占用服务器超时次数、所述服务的当前发送次数以及所述服务的当前拒绝次数复位; 所述控制单元用于控制允许或者阻止所述请求端与所述服务器之间的数据交换。
11.根据权利要求10所述的系统,其特征在于,所述接口单元用于: 接收所述请求后,请求所述控制单元提供针对该请求的指示; 根据所述控制单元的允许指示,允许所述请求端将请求发送至所述服务器并且允许所述服务器将反馈发送至所述请求端; 记录所述请求发送至所述服务器的时间以及所述服务器发送针对所述请求的反馈的时间; 根据所述控制单元的拒绝指示,拒绝来自所述请求端的请求,并且向所述请求端发送反馈。
12.根据权利要求11所述的系统,其特征在于,所述控制单元用于: 接收所述接口单元发出的请求,分别调取所述第一阈值与当前占用服务器超时次数,比较所述第一阈值与所述当前占用服务器超时次数; 当所述当前占用服务器超时次数 <所述第一阈值时,所述控制单元向所述接口单元发送允许指示,计算所述服务器占用时间,比较所述服务器占用时间与所述第二阈值,当所述服务器占用时间> 所述第二阈值,则所述控制单元控制所述计数单元对所述当前占用服务器超时次数进行更新; 若所述服务器超时次数> 所述第一阈值,则所述控制单元分别调取所述第三阈值与当前拒绝次数,比较所述第三阈值与所述当前拒绝次数;若所述当前拒绝次数<所述第三阈值,则所述控制单元向所述接口单元发送拒绝指示,并控制所述计数单元对所述当前拒绝次数进行更新;若所述当前拒绝次数>所述第三阈值,则所述控制单元向所述接口单元发送允许指示。
13.根据权利要求10所述的系统,其特征在于,所述计数单元动态计算所述第三阈值。
14.根据权利要求13所述的系统,其特征在于,所述计数单元根据所述第一阈值与当前超时比例的乘积动态计算所述第三阈值,其中所述当前超时比例为所述服务器超时的次数/所述当前发送次数。
15.根据权利要求10所述的系统,其特征在于,所述接口单元包括第一暂存模块,用以存储来自所述请求端的请求和/或来自所述服务器的反馈,和/或,所述请求发送至所述服务器的时间以及所述服务器发送针对所述请求的反馈的时间。
16.根据权利要求10所述的系统,其特征在于,所述服务器过载保护系统中设置有第一存储单元,用以存储来自所述请求端的请求和/或来自所述服务器的反馈,和/或,所述请求发送至所述服务器的时间以及所述服务器发送针对所述请求的反馈的时间。
17.根据权利要求10所述的系统,其特征在于,所述设置单元包括第二暂存模块,用以存储针对不同服务的所述第一阈值、第二阈值、第三阈值以及第四阈值。
18.根据权利要求10所述的系统,其特征在于,所述服务器过载保护系统中设置有第二存储单元,用以存储针对不同服务的所述第二阈值、所述第一阈值、所述发送阈值次数、以及所述第三阈值。
19.根据权利要求10所述的系统,其特征在于,所述计数单元包括第三暂存模块,用以存储针对不同服务的所述服务器超时次数、所述当前发送次数以及所述当前拒绝次数。
20.根据权利要求10所述的系统,其特征在于,所述服务器过载保护系统中设置有第三存储单元,用以存储针对不同服务的所述服务器超时次数、所述当前发送次数以及所述当前拒绝次数。
【文档编号】H04L29/08GK104182282SQ201410462132
【公开日】2014年12月3日 申请日期:2014年9月12日 优先权日:2014年9月12日
【发明者】赵建华, 谢刚, 陈家斌 申请人:五八同城信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1