CN104182282B - 一种服务器过载保护系统及方法 - Google Patents
一种服务器过载保护系统及方法 Download PDFInfo
- Publication number
- CN104182282B CN104182282B CN201410462132.6A CN201410462132A CN104182282B CN 104182282 B CN104182282 B CN 104182282B CN 201410462132 A CN201410462132 A CN 201410462132A CN 104182282 B CN104182282 B CN 104182282B
- Authority
- CN
- China
- Prior art keywords
- server
- request
- service
- threshold
- current
- 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
Abstract
本发明提供了一种服务超时保护系统及方法。该方法包括:a)接收来自请求端针对一项服务的请求;b)判断所述服务的当前占用服务器超时次数是否大于第一阈值,否,则进入步骤c;是,则进入步骤f;c)允许所述请求发送至所述服务器;d)获取所述请求的服务器占用时间;e)当所述请求的服务器占用时间大于第二阈值时,更新所述服务的当前占用服务器超时次数;f)判断所述服务的当前拒绝次数是否大于第三阈值,是,则允许所述请求发送至所述服务器;否,则拒绝所述请求发送至所述服务器,并更新所述当前拒绝次数。
Description
技术领域
本发明涉及服务器的管理技术领域,特别是一种服务器过载保护系统及方法。
背景技术
经过多年的发展,服务器过载保护方面已经有比较多的研究,但在实际业务场景中,一些极端情况下服务器的负载仍然有可能达到其上限。
现有的服务保护技术中,有的从硬件着手,优化网卡驱动,根据当前机器的CPU使用率、内存使用率等参数来衡量服务器的负载情况;如果服务器超过负载限制,则网卡驱动拒绝所有建立新TCP连接的请求,来缓解服务器的压力。优化网卡驱动虽然一定程度上能缓存服务器负载,但是,对于突发的短暂的高访问量情况,将会引起服务器的吞吐量抖动。同时,由于这种方法的控制粒度太粗,如果同一台机器上部署多类服务,那么其中一类服务异常会导致所有的服务都不能正常工作。
还有的服务保护技术从软件着手,采用不同的工作负载管理器来分别处理不同优先级的请求方法:当服务器负载达到一定上限时,拒绝低优先级的服务请求,只处理高优先级的请求。但是,根据优先级来拒绝服务请求,实际上是根据业务服务器负载来判断服务提供方的调用,如果提供高优先级的服务器出现异常,这种策略就不能有效地缓解系统负载。
也有服务保护技术采用时间滑动窗口,根据所消耗的资源将服务分为磁盘带宽消耗型的服务、CPU消耗型的服务、网络带宽消耗型的服务,根据服务的不同来设置不同时长的滑动窗口。例如,专利号为CN103164663A的专利:一种基于滑动窗口的服务器过载保护方法及装置。在该专利中,所述滑动窗口记录对应时间段内服务器接收的请求:服务器收到新的请求时,根据滑动窗口记录的服务器接收的请求检测服务器当前的负载状态,根据检测结果判断是否对请求进行处理。但是,基于时间滑动窗口的服务保护技术,忽略了访问的周期性,实际上互联网用户访问量会呈现出周期性的波峰波谷,例如通常白天的访问量比凌晨高很多,而此时使用同样长的时间窗口显然不太合适。而且不同长的滑动窗口仅根据服务消耗的资源进行区分,粒度太粗,如有多种服务都是CPU消耗型的服务,则不便于实时探测服务器负载,存在由于突发情况引起的负载抖动对服务器处理核心服务带来影响的可能性。
因此,需要一种服务器器过载保护的方法及系统,以有效地避免突发事件对服务器带来的影响。
发明内容
本发明的目的是提供一种服务器过载保护的方法及系统。本发明以服务种类为粒度,对服务器进行过载保护。根据本发明的一个方面,提供了一种服务器过载保护的方法,所述方法包括如下步骤:a)接收来自请求端针对一项服务的请求;b)判断所述服务的当前占用服务器超时次数是否大于第一阈值,否,则进入步骤c;是,则进入步骤f;c)允许所述请求发送至所述服务器;d)获取所述请求的服务器占用时间;e)当所述请求的服务器占用时间大于第二阈值时,更新所述服务的当前占用服务器超时次数;f)判断所述服务的当前拒绝次数是否大于第三阈值,是,则允许所述请求发送至所述服务器;否,则拒绝所述请求发送至所述服务器,并更新所述当前拒绝次数。
优选地,步骤c进一步包括:判断所述服务的当前发送次数是否大于第四阈值,否,则允许所述请求发送至所述服务器,更新所述服务的当前发送次数;是,则将所述服务的当前占用服务器超时次数及所述服务的当前发送次数复位,允许所述请求发送至服务器。
优选地,步骤c进一步包括:c1’)更新所述服务的当前发送次数;和c2’)判断所述服务的当前发送次数是否大于第四阈值;否,则允许所述请求发送至服务器;是,则将所述服务的当前占用服务器超时次数及所述服务的当前发送次数复位,允许所述请求发送至服务器。
优选地,所述第一阈值、第二阈值、第三阈值为预先设置的。
优选地,所述第一阈值、第二阈值、第三阈值、第四阈值为预先设置的。
优选地,所述第三阈值根据动态计算得到。
优选地,所述第三阈值根据所述第一阈值与当前超时比例的乘积,动态计算得到,其中所述当前超时比例为当前占用服务器超时次数/当前发送次数。
优选地,更新所述当前占用服务器超时次数以及所述当前拒绝次数的方法为,对所述当前占用服务器超时次数以及所述当前拒绝次数分别加1。
优选地,更新所述当前发送次数的方法为,对所述当前发送次数加1。
根据本发明的另一方面,提供了一种服务器过载保护系统,其中:所述系统接收请求端发出的针对一项服务的请求;所述系统包括接口单元、设置单元、计数单元以及控制单元,其中,所述接口单元用于允许或者阻止所述请求端与所述服务器之间的数据交换;所述设置单元用于生成第一阈值、第二阈值、第三阈值以及第四阈值;所述计数单元用于记录针对所述服务的当前占用服务器超时次数、针对所述服务的当前发送次数、以及针对所述服务的当前拒绝次数;并根据所述控制单元的控制将针对所述服务的当前占用服务器超时次数、所述服务的当前发送次数以及所述服务的当前拒绝次数复位;所述控制单元用于控制允许或者阻止所述请求端与所述服务器之间的数据交换。
优选地,所述接口单元用于:接收所述请求后,请求所述控制单元提供针对该请求的指示;根据所述控制单元的允许指示,允许所述请求端将请求发送至所述服务器并且允许所述服务器将反馈发送至所述请求端;记录所述请求发送至所述服务器的时间以及所述服务器发送针对所述请求的反馈的时间;根据所述控制单元的拒绝指示,拒绝来自所述请求端的请求,并且向所述请求端发送反馈。
优选地,所述控制单元用于接收所述接口单元发出的请求,分别调取所述第一阈值与当前占用服务器超时次数,比较所述第一阈值与所述当前占用服务器超时次数;当所述当前占用服务器超时次数≤所述第一阈值时,所述控制单元向所述接口单元发送允许指示,计算所述服务器占用时间,比较所述服务器占用时间与所述第二阈值,当所述服务器占用时间>所述第二阈值,则所述控制单元控制所述计数单元对所述当前占用服务器超时次数进行更新;若所述服务器超时次数>所述第一阈值,则所述控制单元分别调取所述第三阈值与当前拒绝次数,比较所述第三阈值与所述当前拒绝次数;若所述当前拒绝次数≤所述第三阈值,则所述控制单元向所述接口单元发送拒绝指示,并控制所述计数单元对所述当前拒绝次数进行更新;若所述当前拒绝次数>所述第三阈值,则所述控制单元向所述接口单元发送允许指示。
优选地,所述计数单元动态计算所述第三阈值。
优选地,所述计数单元根据所述第一阈值与当前超时比例的乘积动态计算所述第三阈值,其中所述当前超时比例为所述服务器超时的次数/所述当前发送次数。
优选地,所述接口单元包括第一暂存模块,用以存储来自所述请求端的请求和/或来自所述服务器的反馈,和/或,所述请求发送至所述服务器的时间以及所述服务器发送针对所述请求的反馈的时间。
优选地,所述服务器过载保护系统中设置有第一存储单元,用以存储来自所述请求端的请求和/或来自所述服务器的反馈,和/或,所述请求发送至所述服务器的时间以及所述服务器发送针对所述请求的反馈的时间。
优选地,所述设置单元包括第二暂存模块,用以存储针对不同服务的所述第一阈值、第二阈值、第三阈值以及第四阈值。
优选地,所述服务器过载保护系统中设置有第二存储单元,用以存储针对不同服务的所述第二阈值、所述第一阈值、所述发送阈值次数、以及所述第三阈值。
优选地,所述计数单元包括第三暂存模块,用以存储针对不同服务的所述服务器超时次数、所述当前发送次数以及所述当前拒绝次数。
优选地,所述服务器过载保护系统中设置有第三存储单元,用以存储针对不同服务的所述服务器超时次数、所述当前发送次数以及所述当前拒绝次数。
根据本发明公开的服务器过载保护方法及系统,能够根据服务种类的不同,对服务器当前负载进行预估,有效地避免突发事件对服务控制系统带来的影响。并实现基于服务的种类的负载保护,从而对资源进行充分的利用。
附图说明
参考随附的附图,本发明更多的目的、功能和优点将通过本发明实施方式的如下描述得以阐明,其中:
图1示意性示出了根据本发明公开的一实施方式的服务器过载保护方法的流程图。
图2示意性示出了根据本发明公开的另一实施方式的服务器过载保护方法的流程图。
图3示意性示出了根据本发明公开的又一实施方式的服务器过载保护方法的流程图。
图4示意性示出了根据本发明公开的一实施方式的服务器过载保护系统的框图。
具体实施方式
通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
下文中所讨论的服务,可以基于多种标准进行分类,例如从业务层面上进行分类、从代码层面上分类、基于资源消耗情况进行分类等等。
图1所示为根据本发明一实施例的一种服务器过载保护方法,如图1所示,该方法包括:
S100:接收针对一项服务的请求;
S200:判断该项服务的当前占用服务器超时次数A是否大于第一阈值,即该项服务的超时阈值次数Athred,否则执行步骤S300,是则执行步骤S700;
其中,超时阈值次数Athred为服务器占用时间T大于第二阈值,即服务器占用阈值时间Tthred的阈值次数,服务器占用时间T为请求发送至服务器的时间T0与服务器发送针对该请求的反馈的时间T1之差,即T=T1-T0。一项服务的当前占用服务器超时次数A为该项服务的服务器实际占用时间T超过该项服务的服务器占用阈值时间Tthred的次数。在本发明的一个实施例中,服务器占用阈值时间Tthred与超时阈值次数Athred可以根据使用者的设定生成,也可以为默认设置。
S300:允许所述请求发送至服务器;
其中,当前发送次数B为请求发送至服务器的次数(如图中所示)。
在一实施例中,还可执行更新该项服务的当前发送次数B的操作(如图中所示)。
S400:获取所述请求的服务器占用时间T;
S500:判断所述请求的服务器占用时间T是否大于该项服务的第二阈值,即服务器占用阈值时间Tthred,当大于该项服务的第二阈值时执行步骤S600;
S600:更新该项服务的当前占用服务器超时次数A;
S700:判断该项服务的当前拒绝次数C是否大于第三阈值,即该项服务的拒绝阈值次数Cthred,是则执行步骤S800,否则执行步骤S900;
其中,当前拒绝次数C为拒绝请求发送至服务器的次数。拒绝阈值次数Cthred为拒绝请求发送至服务器的阈值次数,在本发明的一个实施例中,拒绝阈值次数Cthred可以根据使用者的设定生成,也可以为默认的。在本发明的另一个实施例中,Cthred可以动态计算得到,例如在一实施方式中,根据超时阈值次数Athred与当前超时比例(即,当前占用服务器超时的次数A/当前发送次数B)的乘积动态计算Cthred。
S800:允许所述请求发送至服务器;
其中,在一些实施例中,还将该项服务的当前占用服务器超时次数A、该项服务的当前发送次数B以及该项服务的当前拒绝次数C复位(如图中所示)。
S900:拒绝所述请求发送至服务器,更新该项服务的当前拒绝次数C。
其中,在一些实施方式中,如图2所示,步骤S300包括:
S310:判断该项服务的当前发送次数B是否大于该项服务的第四阈值,即发送阈值次数Bthred;否则执行步骤S320,是则执行步骤S330;
其中发送阈值次数Bthred为允许请求发送至服务器的阈值次数。
S320:允许所述请求发送至服务器,更新该项服务的当前发送次数B;
S330:将该项服务的当前占用服务器超时次数A及该项服务的当前发送次数B复位,允许所述请求发送至服务器;
其中,在另一些实施方式中,如图3所示,步骤S300包括:
S305’:更新该项服务的当前发送次数B;
S310’:判断更新后的该项服务的当前发送次数B是否大于该项服务的发送阈值次数Bthred;否则执行步骤S320’,是则执行步骤S330’;
S320’:允许所述请求发送至服务器;
S330’:将该项服务的当前占用服务器超时次数A及该项服务的当前发送次数B复位,允许所述请求发送至服务器。
根据本发明公开的一实施方式,针对不同项或者不同类的服务,设置对应的Athred、Bthred、Cthred以及Tthred,以对不同服务进行分别管理,对服务器的占用情况进行细分。同时针对不同项或者不同类的服务,对当前占用服务器超时次数A、当前发送次数B以及当前拒绝次数C分别进行更新与复位,从而实现对不同服务进行分别管理,对服务器的占用情况进行细分。根据本发明公开的一实施方式,对当前占用服务器超时次数A、当前发送次数B以及当前拒绝次数C进行更新即为,对次数A、次数B以及次数C分别加1。
对于本领域技术人员可以理解的是,由于本发明公开的一些实施方式可以分别针对不同的服务,因此对次数A、B以及C进行复位的动作,以及允许或者拒绝请求发送至服务器的动作,以及对次数A、B、C进行更新的动作,在针对不同服务时,三者没有顺序上的限制。例如,在对服务一的次数A、B和/或C进行复位时,可以同时或不同时地允许或拒绝针对服务二的请求发送至服务器,可以同时或不同时地对服务三的次数A、B和/或C进行更新。由于服务控制系统120可以接收大量针对不同服务的请求,因此针对不同服务的上述3种处理可交织进行,例如在对服务一的次数A进行复位时,可以同时允许针对服务二的请求发送至服务器,可以同时对服务三的次数C进行更新等等。其执行顺序并不会影响到本发明公开的服务器过载保护方法的整体功能效果。
此外,本发明中,对次数A、B和/或C的复位动作、更新动作、以及允许或拒绝请求发送至服务器的动作,之间没有顺序上的限制。例如允许请求发送至服务器的动作,可与更新当前发送次数B的动作同时进行或不同时进行;例如允许请求发送至服务器的动作,可与复位次数A、B的动作同时进行或不同时进行;例如允许请求发送至服务器的动作,可与复位次数A、B、C的动作同时进行或不同时进行;例如拒绝请求发送至服务器的动作可与更新当前拒绝次数C的动作同时进行或不同时进行。
图4所示为根据本发明公开的一个实施方式的一种服务器过载保护系统130的各功能性模块与一请求端110以及一服务器150之间相互作用的示意方框图。虽然此示例方框图中仅示出一单个请求端110,例如用户端工作站,以及一单个服务器150,例如电子邮件服务器,与一服务器过载保护系统之间的相互作用。但应该理解的是,多个请求端、多个服务器可与服务器过载保护系统130直接或间接的相互作用。
根据本发明公开的一个实施方式,服务器过载保护系统130可以逻辑上设置于请求端110与服务器150之间,以有条件地允许请求端110与服务器150交换数据。请求端110针对一项服务,向服务器150发出请求,服务器过载保护系统130分析服务器150对于该项服务的服务压力。若服务器过载保护系统130分析认为服务器150对于该服务的压力过大,则阻止所述请求发送至服务器150,并向请求端110发送拒绝信息;若分析认为服务器150针对该服务的压力正常,则允许所述请求发送至服务器150。应该理解的是,本发明公开的技术方案并不局限于某一项或某一类服务、或者针对某一项或某一类服务的请求,亦可以适用于多项或者多类服务、以及针对多项或多类服务的请求。
在本发明一个实施例中,请求端110可以设置为能够发送请求的设备,例如个人数字助理(PDA)、智能手机、笔记本电脑、上网本、个人计算机、无线传感器、消费型电子产品,诸如此类。根据本发明一个实施例,请求端110可以根据用户操作发送请求,也可以根据预先设定,例如为满足请求端110上运行的程序的需求,自动发送请求。
根据本发明的一实施例,该服务器过载保护系统130可以是一虚拟或物理设备。如图4所示,服务器过载保护系统130包括四个相互作用的功能模块,控制单元131、计数单元133、设置单元135以及接口单元137。
接口单元137设置用于允许或者阻止请求端110与服务器150之间的数据交换。在一实施方式中,接口单元137接收来自请求端110针对一项服务的请求后,请求控制单元131提供针对该请求的指示。接口单元137根据控制单元131的允许指示,允许请求端110将请求发送至服务器150并且允许服务器150将反馈发送至请求端110。例如,接口单元137根据控制单元131的允许指示将请求发送至服务器150,接收服务器150发送的针对该请求的反馈,并且将该反馈发送至请求端110。接口单元137记录请求发送至服务器150的时间T0以及服务器150发送针对该请求的反馈的时间T1。例如,接口单元137将请求发送至服务器150的时间为T0,接口单元137接收到服务器150发送的反馈的时间为T1。接口单元137根据控制单元131的拒绝指示拒绝来自请求端110的请求,并且向请求端110发送表示拒绝的反馈。应该理解的是,根据本发明公开的技术方案,上述实施例中的接口单元137并不局限于某一项或某一类服务、或者仅针对关于某一项或某一类服务的请求,亦可以适用于多项或者多类服务以及关于多项或者多类服务的多个请求。
在本发明一实施例中,接口单元137包括暂存模块1371(未示出),用以存储来自请求端110的请求。在本发明另一实施例中,该暂存模块1371用以存储接收到的来自请求端110的请求、来自服务器150的反馈以及T0与T1。在本发明又一实施例中,服务器过载保护系统130中设置有存储单元139(未示出),用以存储接收到的来自请求端110的请求、来自服务器150的反馈和/或T0与T1。应该理解的是,根据本发明公开的技术方案,上述实施例中的暂存模块1371、存储单元139并不局限于存储针对某一项或某一类服务的请求,亦可以适用于存储针对多项或者多类服务的多个请求。
设置单元135设置用于生成:第二阈值即服务器占用阈值时间Tthred、第一阈值即超时阈值次数Athred(即服务器占用时间T大于服务器占用阈值时间Tthred的阈值次数)、第四阈值即发送阈值次数Bthred(即允许来自请求端110的请求发送至服务器150的阈值次数)、以及第三阈值即拒绝阈值次数Cthred(即拒绝来自请求端110的请求的阈值次数)。在本发明的一个实施例中,Athred、Bthred、Cthred以及Tthred可以根据使用者的设定生成,也可以由设置单元135默认生成。在另一实施方式中,Cthred可以动态计算,具体计算方式将结合计数单元133在下文中详细介绍。根据本发明公开的一实施方式,针对不同项或者不同类的服务,设置单元135分别设置针对该项或者该类服务的Athred、Bthred、Cthred以及Tthred,以对不同服务进行分别管理,对服务器的占用情况进行细分。在本发明一实施例中,设置单元135包括暂存模块1351(未示出),用以存储针对不同服务的Athred、Bthred、Cthred以及Tthred。在本发明另一实施例中,服务器过载保护系统130中设置有存储单元139(未示出),用以存储针对不同服务的Athred、Bthred、Cthred以及Tthred。
计数单元133设置用于:记录针对一项服务的当前占用服务器超时次数A(即服务器实际占用时间T超过针对该项服务的服务器占用阈值时间Tthred的次数),记录针对一项服务的当前发送次数B(即来自请求端110的针对该项服务的请求发送至服务器150的次数)、记录针对一项服务的当前拒绝次数C(即拒绝来自请求端110的针对该项服务的请求的次数)。计数单元133可根据控制单元131的控制,例如控制单元131发送的复位指示等,将针对一项服务的A、B、C清零。根据本发明公开的一实施方式,针对不同项或者不同类的服务,设置单元135分别设置针对该项或者该类服务的Athred、Bthred、Cthred以及Tthred,以对不同服务进行分别管理,对服务器的占用情况进行细分。在本发明一实施例中,计数单元133包括暂存模块1331(未示出),用以存储针对不同服务的当前占用服务器超时次数A、当前发送次数B以及当前拒绝请求发送至服务器的次数C。在本发明另一实施例中,服务器过载保护系统130中设置有存储单元139(未示出),用以存储针对不同服务的当前占用服务器超时次数A、当前发送次数B以及当前拒绝请求发送至服务器的次数C。
Cthred可以由设置单元135动态计算。在一实施方式中,控制单元131调取计数单元133生成的当前占用服务器超时次数A与当前发送次数B,根据超时阈值次数Athred与当前超时比例(即,当前占用服务器超时次数A/当前发送次数B)的乘积动态计算Cthred。
控制单元131设置用于控制允许或者阻止请求端110与服务器150之间的数据交换。在一实施方式中,控制单元131接收到接口单元137发出的请求后,分别调取设置单元135生成的针对该项服务的超时阈值次数Athred与计数单元133生成的针对该项服务的当前占用服务器超时次数A,比较超时阈值次数Athred与当前占用服务器超时次数A;若A≤Athred,分别调取设置单元135生成的阈值次数Bthred与计数单元133生成的当前发送次数B,比较阈值次数Bthred与当前发送次数B;若B≤Bthred,则控制单元131向接口单元137发送允许指示,并控制计数单元133对当前发送次数B进行更新(例如,对当前发送次数B加1),之后控制单元131调取接口单元137记录的T0与T1,计算出针对该项服务的服务器占用时间T(即,T=T1-T0);比较服务器占用时间T与服务器占用阈值时间Tthred,若T≤Tthred,则不进行动作,若T>Tthred,则控制单元131控制计数单元133对当前占用服务器超时次数A进行更新(例如,对当前占用服务器超时次数A加1);若B>Bthred,则控制单元131向计数单元133发送复位指示,指示计数单元133将该项服务的当前占用服务器超时次数A与当前发送次数B清零,并且向接口单元137发送允许指示,控制计数单元133对当前发送次数B进行更新(例如,对当前发送次数B加1),之后控制单元131调取接口单元137记录的T0与T1,计算出针对该项服务的服务器占用时间T(即,T=T1-T0);比较服务器占用时间T与服务器占用阈值时间Tthred,若T≤Tthred,则不进行动作,若T>Tthred,则控制单元131控制计数单元133对当前占用服务器超时次数A进行更新(例如,对当前超时次数A加1)。
在本发明另一实施例中,当控制单元131判断B>Bthred,控制单元131向计数单元133发送复位指示,指示计数单元133将当前占用服务器超时次数A与当前发送次数B清零。
在本发明另一实施例中,当控制单元131判断A≤Athred,控制单元131控制计数单元133对当前发送次数B进行更新(例如,对当前发送次数B加1),之后分别调取设置单元135生成的发送阈值次数Bthred与更新后的当前发送次数B,比较发送阈值次数Bthred与更新后的当前发送次数B;若B≤Bthred,控制单元131向接口单元137发送允许指示,并控制单元131调取接口单元137记录的T0与T1,计算出针对该项服务的服务器占用时间T(即,T=T1-T0);比较服务器占用时间T与服务器占用阈值时间Tthred,若T≤Tthred,则不进行动作,若T>Tthred,则控制单元131控制计数单元133对当前占用服务器超时次数A进行更新(例如,对当前占用服务器超时次数A加1);若B>Bthred,则控制单元131向计数单元133发送复位指示,指示计数单元133将当前发送次数B清零,并且向接口单元137发送允许指示,控制计数单元133对该项服务的当前占用服务器超时的次数A及该项服务的当前发送次数B进行更新(例如,对当前发送次数B加1),之后控制单元131调取接口单元137记录的T0与T1,计算出针对该项服务的服务器占用时间T(即,T=T1-T0);比较该请求的服务器占用时间T与该项服务的服务器占用阈值时间Tthred,若T≤Tthred,则不进行动作,若T>Tthred,则控制单元131控制计数单元133对该服务的占用服务器超时次数A进行更新(例如,对当前占用服务器超时次数A加1)。在本发明另一实施例中,在控制单元131判断B>Bthred时,控制单元131向计数单元133发送复位指示,指示计数单元133将该服务的占用服务器超时次数A与当前发送次数B清零。
若A>Athred,则控制单元131分别调取设置单元135生成的拒绝阈值次数Cthred与计数单元133生成的当前拒绝请求发送至服务器的次数C,比较拒绝阈值次数Cthred与当前拒绝请求发送至服务器的次数C;若C≤Cthred,则控制单元131向接口单元137发送拒绝指示,并控制计数单元133对当前拒绝请求发送至服务器的次数C进行更新(例如,对当前拒绝请求发送至服务器的次数C加1)。若C>Cthred,则控制单元131向计数单元133发送复位指示,指示计数单元133将当前占用服务器超时次数A以及当前发送次数B复位,并且向接口单元137发送允许指示。之后控制单元131调取接口单元137记录的T0与T1,计算出针对该项服务的服务器占用时间T(即,T=T1-T0);比较服务器占用时间T与服务器占用阈值时间Tthred,若T≤Tthred,则不进行动作,若T>Tthred,则控制单元131控制计数单元133对当前占用服务器超时次数A进行更新(例如,对当前超时次数A加1)。
应该理解的是,本领域技术人员可以根据具体情况和需求对所述功能模块进行整合或拆解,例如在一实施方式中,接口单元137与控制单元131整合为一个模块。在另一实施方式中,将控制单元131的部分功能由接口单元137实现,例如由接口单元137计算服务器占用时间T。此外在一实施方式中,Cthred可以由计数单元133动态计算。
根据本发明的服务器过载保护方法及系统,能够根据服务种类的不同,对服务器当前负载进行预估,有效地避免突发事件对服务控制系统带来的影响,实现根据服务种类这一粒度的负载保护,从而对资源进行充分的利用。
结合这里披露的本发明的说明和实践,本发明的其他实施例对于本领域技术人员都是易于想到和理解的。说明和实施例仅被认为是示例性的,本发明的真正范围和主旨均由权利要求所限定。
Claims (17)
1.一种服务器过载保护方法,所述方法包括如下步骤:
a)接收来自请求端针对一项服务的请求;
b)判断所述服务的当前占用服务器超时次数是否大于第一阈值,否,则进入步骤c;是,则进入步骤f;
c)允许所述请求发送至所述服务器,判断所述服务的当前发送次数是否大于第四阈值,否,则允许所述请求发送至所述服务器,更新所述服务的当前发送次数;是,则将所述服务的当前占用服务器超时次数及所述服务的当前发送次数复位,允许所述请求发送至服务器;
d)获取所述请求的服务器占用时间;
e)当所述请求的服务器占用时间大于第二阈值时,更新所述服务的当前占用服务器超时次数;
f)判断所述服务的当前拒绝次数是否大于第三阈值,是,则允许所述请求发送至所述服务器;否,则拒绝所述请求发送至所述服务器,并更新所述当前拒绝次数。
2.根据权利要求1所述的方法,其特征在于,步骤c还可以是:
c1’)更新所述服务的当前发送次数;
c2’)判断所述服务的当前发送次数是否大于第四阈值;否,则允许所述请求发送至服务器;是,则将所述服务的当前占用服务器超时次数及所述服务的当前发送次数复位,允许所述请求发送至服务器。
3.根据权利要求1所述的方法,其特征在于,所述第一阈值、第二阈值、第三阈值为预先设置的。
4.根据权利要求1或2所述的方法,其特征在于,所述第一阈值、第二阈值、第三阈值、第四阈值为预先设置的。
5.根据权利要求1所述的方法,其特征在于,所述第三阈值根据动态计算得到。
6.根据权利要求1或2所述的方法,其特征在于,所述第三阈值根据所述第一阈值与当前超时比例的乘积,动态计算得到,其中所述当前超时比例为当前占用服务器超时次数/当前发送次数。
7.根据权利要求1所述的方法,其特征在于,更新所述当前占用服务器超时次数以及所述当前拒绝次数的方法为,对所述当前占用服务器超时次数以及所述当前拒绝次数分别加1。
8.根据权利要求1或2所述的方法,其特征在于,更新所述当前发送次数的方法为,对所述当前发送次数加1。
9.一种服务器过载保护系统,其中:
所述系统接收请求端发出的针对一项服务的请求;
所述系统包括接口单元、设置单元、计数单元以及控制单元,其中,
所述接口单元用于允许或者阻止所述请求端与所述服务器之间的数据交换所述接口单元接收所述请求后,请求所述控制单元提供针对该请求的指示;
根据所述控制单元的允许指示,允许所述请求端将请求发送至所述服务器并且允许所述服务器将反馈发送至所述请求端;
记录所述请求发送至所述服务器的时间以及所述服务器发送针对所述请求的反馈的时间;
根据所述控制单元的拒绝指示,拒绝来自所述请求端的请求,并且向所述请求端发送反馈;
所述设置单元用于生成第一阈值、第二阈值、第三阈值以及第四阈值;
所述计数单元用于记录针对所述服务的当前占用服务器超时次数、针对所述服务的当前发送次数、以及针对所述服务的当前拒绝次数;并根据所述控制单元的控制将针对所述服务的当前占用服务器超时次数、所述服务的当前发送次数以及所述服务的当前拒绝次数复位;
所述控制单元用于控制允许或者阻止所述请求端与所述服务器之间的数据交换;
所述控制单元用于:
接收所述接口单元发出的请求,分别调取所述第一阈值与当前占用服务器超时次数,比较所述第一阈值与所述当前占用服务器超时次数;
当所述当前占用服务器超时次数≤所述第一阈值时,所述控制单元向所述接口单元发送允许指示,计算所述服务器占用时间,比较所述服务器占用时间与所述第二阈值,当所述服务器占用时间>所述第二阈值,则所述控制单元控制所述计数单元对所述当前占用服务器超时次数进行更新;
若所述服务器超时次数>所述第一阈值,则所述控制单元分别调取所述第三阈值与当前拒绝次数,比较所述第三阈值与所述当前拒绝次数;若所述当前拒绝次数≤所述第三阈值,则所述控制单元向所述接口单元发送拒绝指示,并控制所述计数单元对所述当前拒绝次数进行更新;若所述当前拒绝次数>所述第三阈值,则所述控制单元向所述接口单元发送允许指示。
10.根据权利要求9所述的系统,其特征在于,所述计数单元动态计算所述第三阈值。
11.根据权利要求10所述的系统,其特征在于,所述计数单元根据所述第一阈值与当前超时比例的乘积动态计算所述第三阈值,其中所述当前超时比例为所述服务器超时的次数/所述当前发送次数。
12.根据权利要求9所述的系统,其特征在于,所述接口单元包括第一暂存模块,用以存储来自所述请求端的请求和/或来自所述服务器的反馈,和/或,所述请求发送至所述服务器的时间以及所述服务器发送针对所述请求的反馈的时间。
13.根据权利要求9所述的系统,其特征在于,所述服务器过载保护系统中设置有第一存储单元,用以存储来自所述请求端的请求和/或来自所述服务器的反馈,和/或,所述请求发送至所述服务器的时间以及所述服务器发送针对所述请求的反馈的时间。
14.根据权利要求9所述的系统,其特征在于,所述设置单元包括第二暂存模块,用以存储针对不同服务的所述第一阈值、第二阈值、第三阈值以及第四阈值。
15.根据权利要求9所述的系统,其特征在于,所述服务器过载保护系统中设置有第二存储单元,用以存储针对不同服务的所述第二阈值、所述第一阈值、所述发送阈值次数、以及所述第三阈值。
16.根据权利要求9所述的系统,其特征在于,所述计数单元包括第三暂存模块,用以存储针对不同服务的所述服务器超时次数、所述当前发送次数以及所述当前拒绝次数。
17.根据权利要求9所述的系统,其特征在于,所述服务器过载保护系统中设置有第三存储单元,用以存储针对不同服务的所述服务器超时次数、所述当前发送次数以及所述当前拒绝次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410462132.6A CN104182282B (zh) | 2014-09-12 | 2014-09-12 | 一种服务器过载保护系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410462132.6A CN104182282B (zh) | 2014-09-12 | 2014-09-12 | 一种服务器过载保护系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104182282A CN104182282A (zh) | 2014-12-03 |
CN104182282B true CN104182282B (zh) | 2018-02-23 |
Family
ID=51963357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410462132.6A Active CN104182282B (zh) | 2014-09-12 | 2014-09-12 | 一种服务器过载保护系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104182282B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099766B (zh) * | 2015-06-29 | 2019-03-05 | 北京奇虎科技有限公司 | 防止接口过度占用资源的方法及装置 |
CN108255599A (zh) * | 2016-12-29 | 2018-07-06 | 北京京东尚科信息技术有限公司 | 基于大量请求的处理方法和装置 |
CN107465627A (zh) * | 2017-08-11 | 2017-12-12 | 北京小度信息科技有限公司 | 过载保护方法、装置、电子设备及流量处理系统 |
CN109992396B (zh) * | 2017-12-29 | 2021-03-19 | 杭州海康威视数字技术股份有限公司 | 负载控制方法、装置、电子设备及分布式文件系统 |
CN108509148B (zh) * | 2018-02-07 | 2021-08-06 | 新华三技术有限公司 | 一种i/o请求处理方法以及装置 |
CN110460639A (zh) * | 2019-07-12 | 2019-11-15 | 口碑(上海)信息技术有限公司 | 服务器集群的熔断处理方法、装置及系统 |
CN110989814A (zh) * | 2019-11-27 | 2020-04-10 | 浪潮商用机器有限公司 | 一种服务器的保护方法、装置及设备 |
CN112491735A (zh) * | 2020-11-10 | 2021-03-12 | 京东数字科技控股股份有限公司 | 一种流量控制方法、装置、设备和计算机可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6707792B1 (en) * | 1998-06-30 | 2004-03-16 | Cisco Technology, Inc. | Overload reduction in a communication system |
JP4915622B2 (ja) * | 2008-03-31 | 2012-04-11 | Kddi株式会社 | サーバ輻輳制御方法およびシステム |
CN101968750B (zh) * | 2010-10-15 | 2012-12-26 | 珠海举天软件科技有限公司 | 计算机系统及其工作方法 |
CN102143484A (zh) * | 2010-12-20 | 2011-08-03 | 华为技术有限公司 | 资源分配处理方法、装置和网络服务系统 |
JP5570030B2 (ja) * | 2011-03-29 | 2014-08-13 | Kddi株式会社 | サービス要求受付制御方法、装置およびシステム |
WO2012159283A1 (zh) * | 2011-06-21 | 2012-11-29 | 华为技术有限公司 | 重复接入检测和限制的方法、装置、用户设备和系统 |
CN102523306A (zh) * | 2011-12-31 | 2012-06-27 | 山东中创软件工程股份有限公司 | 过载保护方法及系统 |
-
2014
- 2014-09-12 CN CN201410462132.6A patent/CN104182282B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104182282A (zh) | 2014-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104182282B (zh) | 一种服务器过载保护系统及方法 | |
CN107590588A (zh) | 任务分配方法、装置及计算机可读存储介质 | |
CN107832126A (zh) | 一种线程的调整方法及其终端 | |
CN104243405B (zh) | 一种请求处理方法、装置及系统 | |
CN105242983B (zh) | 一种数据存储方法以及一种数据存储管理服务器 | |
CN108400927A (zh) | 一种针对高并发消息的消息推送方法及装置 | |
CN102970379A (zh) | 在多个服务器之间实现负载均衡的方法 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
CN110096388A (zh) | 一种数据备份的方法、装置及计算机存储介质 | |
CN112650576A (zh) | 资源调度方法、装置、设备、存储介质及计算机程序产品 | |
TWI621080B (zh) | 計費式授權管理方法 | |
CN109977749A (zh) | 基于人脸识别的会议室管理方法、装置以及计算机设备 | |
CN107819797A (zh) | 访问请求处理方法和装置 | |
CN103703830B (zh) | 一种物理资源调整方法、装置及控制器 | |
CN106569917A (zh) | 一种数据备份方法及移动移动终端 | |
CN111161893B (zh) | 医用信息处理方法、装置和设备 | |
CN112215672B (zh) | 订单二次确认方法、装置、电子设备和介质 | |
CN110472757A (zh) | 用于银行网点兑换外币的数据处理方法和装置 | |
CN109657893A (zh) | 业务数据分配方法、装置、设备及计算机可读存储介质 | |
CN106933673A (zh) | 调整组件逻辑线程数量的方法及装置 | |
CN108667940A (zh) | 云平台的资源分配方法、装置及计算机可读存储介质 | |
CN110750350B (zh) | 一种大资源调度方法、系统、装置及可读存储介质 | |
US9514289B2 (en) | License management methods | |
CN108629566A (zh) | 一种信息管理方法及装置 | |
CN109684274A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |