CN105471933B - 服务器过载保护方法、服务器过载保护***及服务器 - Google Patents

服务器过载保护方法、服务器过载保护***及服务器 Download PDF

Info

Publication number
CN105471933B
CN105471933B CN201410387415.9A CN201410387415A CN105471933B CN 105471933 B CN105471933 B CN 105471933B CN 201410387415 A CN201410387415 A CN 201410387415A CN 105471933 B CN105471933 B CN 105471933B
Authority
CN
China
Prior art keywords
time
data
server
state information
overload
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
Application number
CN201410387415.9A
Other languages
English (en)
Other versions
CN105471933A (zh
Inventor
李辉
娄继冰
陈杰
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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410387415.9A priority Critical patent/CN105471933B/zh
Publication of CN105471933A publication Critical patent/CN105471933A/zh
Application granted granted Critical
Publication of CN105471933B publication Critical patent/CN105471933B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种服务器过载保护方法、***及服务器,该方法包括:监测服务器工作状态信息,所述工作状态信息包括下述信息中的任意一项或任意组合:设定数目个计数单位时长内接收到的请求数目、各连接的接收速率和/或发送速率、各连接的上一次活动时间与当前时间的第一时间差、发送缓冲区的数据量和/或接收缓冲区的数据量、消息队列中已写入的数据量、提取数据的时间与所述数据的发送时间的第二时间差、发送待发送数据的时间与接收到所述待发送数据的时间的第三时间差;分别判断各所述工作状态信息是否满足对应的预定过载条件;在所述工作状态信息中的任意一个满足对应的预定过载条件时,进行对应的过载保护处理。本发明能够较完善地对服务器进行过载保护。

Description

服务器过载保护方法、服务器过载保护***及服务器
技术领域
本发明涉及互联网技术领域,特别涉及一种互联网服务器的服务器过载保护方法、服务器过载保护***及服务器。
背景技术
在互联网服务器的工作运行过程中,服务器程序会面临来自外部的各种压力场景,比如面对海量连接场景,会存在大量的外部连接;面对海量数据收发场景,会存在服务器程序对CPU(Central Processing Unit,中央处理器)、内存的需求;当外部环境出现异常,服务器内部的数据状态变为无效等等。服务器程序如何面对这些场景,如何有效的保护自己,是一个重要的问题。因此,在互联网服务器程序模块的设计中,过载保护是非常重要的功能模块,它直接决定了在异常时刻,服务器是否仍然能够正常工作,并将危害降低到最小。
目前互联网服务器的过载保护,并没有通用的过载保护方案,一般是由每一个具体的应用模块自行实现,这些具体的应用模块在实现时,一般采用一些比较通用的过载保护实现理念,比如:负载均衡机制、排队机制、拒绝服务。负载均衡机制,是指通过提升服务器数量规模,将接入的请求平均分散到不同的服务器模块处理。排队机制,是指对于接入服务器的请求,当服务器探测到超过了自己的处理能力,就将请求挂起,暂停对请求的处理。拒绝服务,是指对请求进行甄别,认为非法或者异常的请求,将其丢弃,不进行处理。
这些过载保护理念较为笼统,无法处理较为复杂和特殊的场景,而且这些过载保护理念均属于设计层面的考虑,难以具体化到服务器程序层面。
发明内容
基于此,有必要针对上述现有技术中提供的问题,提供一种服务器过载保护方法、服务器过载保护***及服务器,其可以基于不同的场景提供不同的过载保护方案,且简单、有效,能够具体化到服务器程序层面,能够较完善地对服务器进行过载保护。
为达到上述目的,本发明实施例采用以下技术方案:
一种服务器过载保护方法,包括步骤:
监测服务器工作状态信息,所述工作状态信息包括下述信息中的任意一项或任意组合:设定数目个计数单位时长内接收到的请求数目、各连接的接收速率和/或发送速率、各连接的上一次活动时间与当前时间的第一时间差、发送缓冲区的数据量和/或接收缓冲区的数据量、消息队列中已写入的数据量、提取数据的时间与所述数据的发送时间的第二时间差、发送待发送数据的时间与接收到所述待发送数据的时间的第三时间差;
分别判断各所述工作状态信息是否满足对应的预定过载条件;
在所述工作状态信息中的任意一个满足对应的预定过载条件时,进行对应的过载保护处理。
一种服务器过载保护***,包括:
检测模块,用于监测服务器工作状态信息,所述工作状态信息包括下述信息中的任意一项或任意组合:设定数目个计数单位时长内接收到的请求数目、各连接的接收速率和/或发送速率、各连接的上一次活动时间与当前时间的第一时间差、发送缓冲区的数据量和/或接收缓冲区的数据量、消息队列中已写入的数据量、提取数据的时间与所述数据的发送时间的第二时间差、发送待发送数据的时间与接收到所述待发送数据的时间的第三时间差;
条件判定模块,分别判断各所述工作状态信息是否满足对应的预定过载条件;
过载处理模块,用于在所述工作状态信息中的任意一个满足对应的预定过载条件时,进行对应的过载保护处理。
一种服务器,包括如上所述的服务器过载保护***。
根据如上所述的本发明实施例的方案,其是基于工作场景的不同,对不同的工作状态信息进行监测,且分别设置有不同的预定过载条件,并在满足对应的预定过载条件时,分别进行对应的过载保护处理,可以基于不同的场景提供不同的过载保护方案,且简单、有效,能够具体化到服务器程序层面,能够较完善地对服务器进行过载保护。
附图说明
图1是本发明的服务器过载保护方法实施例的流程示意图;
图2是本发明的服务器过载保护方法应用的MCP++***的模块结构示意图;
图3是本发明的服务器过载保护方法的一个应用示例中的时间序列示意图;
图4是本发明的服务器过载保护方法的另一个应用示例中的时间序列示意图;
图5是本发明的服务器过载保护***实施例的结构示意图;
图6是能实现本发明的一个计算机***的模块图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
图1中示出了本发明的服务器过载保护方法实施例的流程示意图,如图1所示,本实施例中的方法包括:
步骤S101:监测服务器工作状态信息,所述工作状态信息包括下述信息中的任意一项或任意组合:设定数目个计数单位时长内接收到的请求数目、各连接的接收速率和/或发送速率、各连接的上一次活动时间与当前时间的第一时间差、发送缓冲区的数据量和/或接收缓冲区的数据量、消息队列中已写入的数据量、提取数据的时间与所述数据的发送时间的第二时间差、发送待发送数据的时间与接收到所述待发送数据的时间的第三时间差;
步骤S102:分别判断各所述工作状态信息是否满足对应的预定过载条件;
步骤S103:在所述工作状态信息中的任意一个满足对应的预定过载条件时,进行对应的过载保护处理。
根据如上所述的本发明实施例的方案,其是基于工作场景的不同,对不同的工作状态信息进行监测,且分别设置有不同的预定过载条件,并在满足对应的预定过载条件时,分别进行对应的过载保护处理,可以基于不同的场景提供不同的过载保护方案,且简单、有效,能够具体化到服务器程序层面,能够较完善地对服务器进行过载保护。
上述本发明的服务器过载保护方法,可以应用于各类型服务器中,从而可以在不同的场景下为服务器提供不同的过载保护服务。在下述说明中,以服务器***类型为MCP++(Main control,Cache,Proxy,缓存和连接控制模块)***为例进行说明。图2中示出了MCP++***的模块结构示意图。
如图2所示,MCP++***由三个模块构成,CCD(Connection Cache Daemon,外部连接缓存服务)负责外部网络连接管理,DCC(Daemon Connection Cache,内部连接缓存服务)负责对外发起网络连接。MCD(Main Control Daemon,主控服务)是实际处理数据的模块。CCD/DCC收发的数据,均通过一对MQ(Message Queue,使用shm(共享内存)实现的环形消息队列)与MCD进行通信。MQ是基于Linux***的SYS V共享内存实现的环形消息队列。数据通过放在共享内存中,在不同的MCP++内部模块间进行传递。
基于不同的场景,上述工作状态信息的不同,以下针对不同的情况分别进行阐述。
在上述工作状态信息包括设定数目个计数单位时长内接收到的请求数目的情况下,所述对应的预定过载条件包括:所述请求数目大于或者等于设定请求数目阈值,所述对应的过载保护处理包括:丢弃在所述设定数目个计数单位时长内后续接收到的请求,直至下一个设定数目个计数单位时长。
这种服务器保护方式可以称之为是单位时间内总请求数目限制的模式。在该模式下,图2中所示的MCP++服务器的CCD模块,可以限制一段时间内收到的外部请求总数目,从而实现对单位时间内访问总数的限制。
在该模式下,需要配置三个参数,分别是:使用的计数单位的个数(即上述设定数目个),每个计数单位表示的时间,在计数单位的个数*计数单位表示的时间这个总时间范围内的最大请求数(即上述设定请求数目阈值)。如果超过该设定请求数目阈值则算过载,后续新请求会被丢弃。最大请求数除以计数单位,就是每个计数单位时间范围内允许的请求总数。在另一个较佳实施例中,可以限定每个计数单位的时间范围内允许的最大请求数为上述设定请求数目阈值,从而能够更好的支持较多的突发请求的情况。
图3中示出了一个具体应用示例中的时间序列示意图。在图3所示的时间序列中,t1-t0、t2-t1、t3-t2……t12-t11分别代表一个计数单位,假设上述设定数目个为6,即图3所示中从t0至t6为一个总时间范围,从t6至t12代表一个总时间范围,且假设设定请求数目阈值为60。
结合图3中所示的时间序列示意图,以图2中所示的CCD模块为例,CCD模块的请求数限制是根据每个计数单位以及一个总时间范围内的请求总数来进行限制。CCD模块每收到一次数据记为一次请求,并累加请求计数。同时实时检测当前的***时间,看是否过去了一个计数单位表示的时间。
如果还处于一个计数单位表示的时间范围内,但此时请求数量达到了设定数目个计数单位时间范围内的请求总数(即上述设定请求数目阈值),则不再处理后续请求,丢弃接下来收到的数据,直到时间处于下一个计数单位标识的时间范围为止。结合图3为例,如果在t0至t1的时间范围内接收到的请求数量达到了设定请求数目阈值,则在后续直至t6的时间范围内不再处理新的请求,直至到达t6时刻,进入t6至t12的下一个总时间范围。
如果还处于一个计数单位表示的时间范围内,但此时请求数量没有达到上述设定请求数目阈值,则正常处理数据。
如果时间流逝,进入了下一个总时间范围,即进入t6时刻,则无论t0至t6时刻接收到多少请求数量,都重置对该总时间范围的请求总数,重新计数。
在上述工作状态信息包括各连接的接收速率和/或发送速率的情况下,上述对应的预定过载条件可以是:当前连接在当前第一时间段内的当前接收速率和/或当前发送速率大于或者等于预设下载限速速率和/或预设上传限速速率;上述对应的过载保护处理可以包括:将当前连接的状态设置为限速状态,停止收发数据,并在距离第二时间段后,再次检测当前连接在当前第一时间段内的当前接收速率和/或当前发送速率,判断该当前接收速率和/或当前发送速率是否大于或者等于预设下载限速速率和/或预设上传限速速率,若是,继续停止收发数据,若否,将当前连接的状态改为工作状态,继续收发数据。其中,所述第二时间段可以包括所述第一时间段。
在这种方式中,由于是基于当前连接的接收速率和/或发送速率来进行,因此可以称之为是基于连接的上传/下载流量限制的模式。
在服务器程序的CCD/DCC模块与其它模块进行数据交互时,如果彼此间速率不匹配,就会造成数据的堆积。为了解决这种现象,有必要在速度较快的一方进行限速,减缓数据的收发,防止对速度慢的一方造成压力。
CCD/DCC模块中的每个连接可以设置两个方向的限速,分别是预设上传限速速率和预设下载限速速率,以此实现流量限制。两者实现原理一致,所以下面不区分直接说明,使用时直接配置预设上传限速速率和预设下载限速速率即可。
CCD/DCC中的连接初始时处于工作状态,当在收发数据时,会限制连接每次收发的数据量,并根据当前实际收发的数据,计算当前连接在当前第一时间段内的当前接收速率和/或当前发送速率。图4中示出了另一个具体示例中的时序示意图,结合图4所示,可以是计算T0至T1这一时间段内的当前接收速率和/或当前发送速率。如果速率超过了用户的限定值,即上述预设下载限速速率和/或预设上传限速速率,则停止收发数据,将连接改为限速状态。
经过一段无数据收发的时间段后,例如图4中所示的T1至T2的时间段,重新计算当前连接在过去的第二时间段的当前接收速率和/或当前发送速率,其中,该第二时间段可以包括上述第一时间段,结合图4所示,即可以是指T0至T2这一时间段。如果重新计算得到的当前接收速率和/或当前发送速率小于上述设定的预设下载限速速率和/或预设上传限速速率,则将连接状态为工作状态,继续数据收发。否则,对连接继续限速,处于限速状态。
再在经过一段无数据收发的时间段后,例如图4中所示的T2至T3的时间段,重新计算当前连接在过去的第三时间段的当前接收速率和/或当前发送速率,其中,该第三时间段可以包括上述第一时间段和第二时间段,结合图4所示,即可以是指T0至T3这一时间段。如果重新计算得到的当前接收速率和/或当前发送速率小于上述设定的预设下载限速速率和/或预设上传限速速率,则将连接状态为工作状态,继续数据收发。否则,对连接继续限速,处于限速状态。
其中,上述T1至T2、T2至T3之间的时间差可以基于实际需要设定,二者可以设置为相同也可以设置为不同。
在上述工作状态信息包括各连接的上一次活动时间与当前时间的第一时间差时,上述对应的预定过载条件可以包括:所述第一时间差大于或者等于第一设定时间间隔;所述对应的过载保护处理可以包括:关闭第一时间差大于或者等于第一设定时间间隔的连接。这种方式也可以称之为是基于连接的超时关闭模式。
在这种模式中,对于CCD和DCC中的连接,如果连接处于空闲无数据收发状态,则超时后自动关闭,回收其占用资源。防止对***资源和进程资源消耗过多,导致无法建立后续连接。
在这种方式中,CCD/DCC中的连接每次收发数据,就更新连接的活动时间。并周期性地检查每个连接的活动时间,如果当前时间距该连接上一次活动时间的差值(第一时间差),超过了规定的时间差值(第一设定时间间隔),则认为该连接处于未活动/超时状态,主动关闭这样的连接,释放连接资源。减少CCD/DCC模块的资源消耗。
在上述工作状态信息包括发送缓冲区的数据量和/或接收缓冲区的数据量时,上述对应的预定过载条件可以包括:发送缓冲区的数据量大于或者等于设定发送缓冲区内存阈值和/或接收缓冲区的数据量大于或者等于设定接收缓冲区内存阈值;上述对应的过载保护处理可以包括:关闭连接,释放发送缓冲区和/或接收缓冲区。这种方式由于是以数据缓冲区的数据量来进行,因而也可以称之为是基于连接的内存缓冲区使用限制模式。
在应用这种方式中,可以在CCD和DCC中对每条连接的数据收发操作,分别设置了专门的缓冲区,即每个连接都有自己的发送缓冲区和接收缓冲区。其中,发送缓冲区是保留未通过***网络发送接口送出的数据。接收缓冲区是保留还不能发给MCD给用户处理的数据。
发送缓冲区和接收缓冲区的最大长度可以根据需要进行配置。在进行数据收发时,如果数据没有及时的处理(例如发送缓冲区里的数据没有发送出去),造成数据在缓冲区累计,会使得缓冲区内存操作频繁、内存占用过高,造成***异常。因此,在发送缓冲区的数据量大于或者等于设定发送缓冲区内存阈值和/或接收缓冲区的数据量大于或者等于设定接收缓冲区内存阈值时,即内存占用达到一定程度时,可以强行关闭连接,释放缓冲区空间,降低对***内存的消耗。
在上述工作状态信息包括消息队列中已写入的数据量时,上述对应的预定过载条件可以包括:消息队列中已写入的数据量达到预设数据量阈值;上述对应的过载保护处理可以包括:在接收到新的写入数据的指令时,给出写入错误的提示信息,阻止数据写入。这种方式也可以称之为是基于管道的数据流量限制模式。
根据MCP++框架的原理,数据在CCD/DCC和MCD之间通过MQ管道进行交互。如果某个模块通过MQ发送了数据,接收数据的模块因为繁忙而没有及时处理该数据,发送数据的模块如果持续发送数据,会造成数据在MQ中累积。
在本发明实施例中,可以对MQ中的数据量大小进行设置,以限制写入MQ的数据量。从而,发送模块在发送了一定量数据之后,有可能写满MQ,在MQ中已写入的数据量达到预设数据量阈值的情况下,再接收到新的写入数据的指令时,给出写入错误的提示信息,阻止数据写入。从而发送模块无法再发送数据,防止产生过多数据,减缓对管道和处理进程造成的压力。
在上述工作状态信息包括提取数据的时间与所述数据的发送时间的第二时间差时,上述对应的预定过载条件可以包括:所述第二时间差是否大于或者等于第二设定时间间隔;上述对应的过载保护处理包括:丢弃所述数据。这种方式也可以称之为管道数据防雪崩包超时丢弃模式。
根据MCP++框架的原理,数据在CCD/DCC和MCD之间通过MQ管道进行交互。如果某个模块通过MQ发送了数据,接收数据的模块因为繁忙而没有及时处理该数据,会造成数据在MQ中停留较久时间。当接收模块取出数据继续处理时,可能因为数据已变得无效,从而解析无效数据。
在本发明实施例中,在将数据放到MQ时,由发送模块为该数据打上时间戳,该时间戳即为该数据的发送时间,并将该时间戳(元数据)和数据一起放入MQ。接收数据的模块从MQ提取到数据时,首先解析该数据的发送时间戳(即发送时间),再将解析出的发送时间和提取时的时间(当前时间)比较,如果二者的第二时间差超过了设定的时间间隔(第二设定时间间隔),则认为该数据在MQ中停留过久,出现了超时,直接丢弃数据,避免浪费CCD/DCC模块资源来分析数据。
在上述工作状态信息包括发送待发送数据的时间与接收到所述待发送数据的时间的第三时间差时;上述对应的预定过载条件包括:所述第三时间差是否大于或者等于第三设定时间间隔;上述对应的过载保护处理包括:丢弃所述待发送数据。这种方式也可以称之为待发送数据包超时丢弃模式。
当MCD通过DCC发出的请求包堆积在DCC中的数据发送缓冲区,经过了一段时间而没有发送出去,MCD可能会重新发送数据包重试。由于数据在DCC停留时间较久,造成数据过期,可以在发送前检查从而丢弃数据包,减少不必要的数据处理。
在本发明的该实施例中,可以通过配置,直接丢弃超时的相关数据包。防止因为后台响应不及时,而大量发送请求包,对后台造成压力。同时防止过期请求继续发送给服务器,对部分一致性要求高的***造成不一致。
在具体实现时,对于要发送的待发送数据,数据发送模块在接收到待发送数据时,记录接收到该待发送数据的时间戳。以Linux***为例,由于Linux***的限制,不可能一次性将数据全部发送。在下一次发送数据时,检查当前时间(即将要发送待发送数据的时间)和接收到该待发送数据的时间,若二者的时间差超过了设定的间隔(第三设定时间间隔),则认为该待发送数据在发送模块的发送缓冲区中停留过久,出现了超时,直接丢弃该待发送数据,避免将超时的数据发送到其它模块。
基于与上述本发明的服务器过载保护方法相同的思想,本发明实施例还提供一种服务器过载保护***。图5中示出了本发明的服务器过载保护***实施例的结构示意图。
如图5所示,本实施例中的***包括:
检测模块501,用于监测服务器工作状态信息,所述工作状态信息包括下述信息中的任意一项或任意组合:设定数目个计数单位时长内接收到的请求数目、各连接的接收速率和/或发送速率、各连接的上一次活动时间与当前时间的第一时间差、发送缓冲区的数据量和/或接收缓冲区的数据量、消息队列中已写入的数据量、提取数据的时间与所述数据的发送时间的第二时间差、发送待发送数据的时间与接收到所述待发送数据的时间的第三时间差;
条件判定模块502,分别判断各所述工作状态信息是否满足对应的预定过载条件;
过载处理模块503,用于在所述工作状态信息中的任意一个满足对应的预定过载条件时,进行对应的过载保护处理。
所述工作状态信息包括设定数目个计数单位时长内接收到的请求数目时,所述对应的预定过载条件包括:所述请求数目大于或者等于设定请求数目阈值,所述对应的过载保护处理包括:丢弃在所述设定数目个计数单位时长内后续接收到的请求,直至下一个设定数目个计数单位时长。
根据如上所述的本发明实施例的方案,其是基于工作场景的不同,对不同的工作状态信息进行监测,且分别设置有不同的预定过载条件,并在满足对应的预定过载条件时,分别进行对应的过载保护处理,可以基于不同的场景提供不同的过载保护方案,且简单、有效,能够具体化到服务器程序层面,能够较完善地对服务器进行过载保护。
其中,在上述工作状态信息包括各连接的接收速率和/或发送速率时,上述对应的预定过载条件可以包括:当前连接在当前第一时间段内的当前接收速率和/或当前发送速率大于或者等于预设下载限速速率和/或预设上传限速速率;上述对应的过载保护处理包括:将当前连接的状态设置为限速状态,停止收发数据,并在距离第二时间段后,再次检测当前连接在当前第一时间段内的当前接收速率和/或当前发送速率,判断该当前接收速率和/或当前发送速率是否大于或者等于预设下载限速速率和/或预设上传限速速率,若是,继续停止收发数据,若否,将当前连接的状态改为工作状态,继续收发数据,所述第一时间段大于所述第二时间段。
在上述工作状态信息包括各连接的上一次活动时间与当前时间的第一时间差时,上述对应的预定过载条件可以包括:所述第一时间差大于或者等于第一设定时间间隔;上述对应的过载保护处理可以包括:关闭第一时间差大于或者等于第一设定时间间隔的连接。
在上述工作状态信息包括发送缓冲区的数据量和/或接收缓冲区的数据量时,上述对应的预定过载条件可以包括:发送缓冲区的数据量大于或者等于设定发送缓冲区内存阈值和/或接收缓冲区的数据量大于或者等于设定接收缓冲区内存阈值;上述对应的过载保护处理可以包括:关闭连接,释放发送缓冲区和/或接收缓冲区。
在上述工作状态信息包括消息队列中已写入的数据量时,上述对应的预定过载条件可以包括:消息队列中已写入的数据量达到预设数据量阈值;上述对应的过载保护处理可以包括:在接收到新的写入数据的指令时,给出写入错误的提示信息,阻止数据写入。
在上述工作状态信息包括提取数据的时间与所述数据的发送时间的第二时间差时,上述对应的预定过载条件包括:所述第二时间差是否大于或者等于第二设定时间间隔;上述对应的过载保护处理包括:丢弃所述数据。
在上述工作状态信息包括发送待发送数据的时间与接收到所述待发送数据的时间的第三时间差时;上述对应的预定过载条件包括:所述第三时间差是否大于或者等于第三设定时间间隔;上述对应的过载保护处理包括:丢弃所述待发送数据。
需要说明的是,上述本发明的服务器过载保护***,可以有相同的检测模块501、条件判定模块502、过载处理模块503对各种工作状态信息下的不同情况进行处理。也可以是针对不同的工作状态信息,分别设置有对应的检测模块501、条件判定模块502、过载处理模块503,即上述检测模块501、条件判定模块502、过载处理模块503可以分别设置有多个,分别针对不同的工作状态信息作对应的处理。
基于上述本发明的服务器过载保护***,本发明实施例还提供一种包括如上所述的服务器过载保护***的服务器。
可以理解,本发明所使用的术语“第一”、“第二”、“第三”等可在本文中用于描述时间差和时间段,但这些术语仅用于将对文中所提及的时间差、时间段等进行区分,文中所提及的时间差、时间段不受这些术语的限制。举例来说,在不脱离本发明的范围的情况下,以第一时间段、第二时间段为例,可以将第一时间段称为第二时间段,且类似地,可将第二时间段称为第一时间段。第一时间段和第二客户端两者都是时间段,但其不是同一时间段。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
图6为能实现本发明实施例的一个计算机***1000的模块图。该计算机***1000只是一个适用于本发明的计算机环境的示例,不能认为是提出了对本发明的使用范围的任何限制。计算机***1000也不能解释为需要依赖于或具有图示的示例性的计算机***1000中的一个或多个部件的组合。该计算机***1000在具体实现时,可以理解为本发明实施例中的服务器。
图6中示出的计算机***1000是一个适合用于本发明的计算机***的例子。具有不同子***配置的其它架构也可以使用。例如有大众所熟知的台式机、笔记本等类似设备可以适用于本发明的一些实施例。但不限于以上所列举的设备。
如图6所示,计算机***1000包括处理器1010、存储器1020和***总线1022。包括存储器1020和处理器1010在内的各种***组件连接到***总线1022上。处理器1010是一个用来通过计算机***中基本的算术和逻辑运算来执行计算机程序指令的硬件。存储器1020是一个用于临时或永久性存储计算程序或数据(例如,程序状态信息)的物理设备。***总线1020可以为以下几种类型的总线结构中的任意一种,包括存储器总线或存储控制器、外设总线和局部总线。处理器1010和存储器1020可以通过***总线1022进行数据通信。其中存储器1020包括只读存储器(ROM)或闪存(图中都未示出),以及随机存取存储器(RAM),RAM通常是指加载了操作***和应用程序的主存储器。
计算机***1000还包括显示接口1030(例如,图形处理单元)、显示设备1040(例如,液晶显示器)、音频接口1050(例如,声卡)以及音频设备1060(例如,扬声器)。显示设备1040和音频设备1060是用于体验多媒体内容的媒体设备。
计算机***1000一般包括一个存储设备1070。存储设备1070可以从多种计算机可读介质中选择,计算机可读介质是指可以通过计算机***1000访问的任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质包括但不限于,闪速存储器(微型SD卡),CD-ROM,数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并可由计算机***1000访问的任何其它介质。
计算机***1000还包括输入装置1080和输入接口1090(例如,IO控制器)。用户可以通过输入装置1080,如键盘、鼠标、显示装置1040上的触摸面板设备,输入指令和信息到计算机***1000中。输入装置1080通常是通过输入接口1090连接到***总线1022上的,但也可以通过其它接口或总线结构相连接,如通用串行总线(USB)。
计算机***1000可在网络环境中与一个或者多个网络设备进行逻辑连接。网络设备可以是个人电脑、服务器、路由器、智能电话、平板电脑或者其它公共网络节点。计算机***1000通过局域网(LAN)接口1100或者移动通信单元1110与网络设备相连接。局域网(LAN)是指在有限区域内,例如家庭、学校、计算机实验室、或者使用网络媒体的办公楼,互联组成的计算机网络。WiFi和双绞线布线以太网是最常用的构建局域网的两种技术。WiFi是一种能使计算机***1000间交换数据或通过无线电波连接到无线网络的技术。移动通信单元1110能在一个广阔的地理区域内移动的同时通过无线电通信线路接听和拨打电话。除了通话以外,移动通信单元1110也支持在提供移动数据服务的2G,3G或4G蜂窝通信***中进行互联网访问。
应当指出的是,其它包括比计算机***1000更多或更少的子***的计算机***也能适用于发明。
如上面详细描述的,适用于本发明的计算机***1000能执行服务器过载保护方法的指定操作。计算机***1000通过处理器1010运行在计算机可读介质中的软件指令的形式来执行这些操作。这些软件指令可以从存储设备1070或者通过局域网接口1100从另一设备读入到存储器1020中。存储在存储器1020中的软件指令使得处理器1010执行上述的服务器过载保护方法。此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明。因此,实现本发明并不限于任何特定硬件电路和软件的组合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (17)

1.一种服务器过载保护方法,所述服务器的***类型为缓存和连接控制模块MCP++***,其特征在于,包括步骤:
监测服务器工作状态信息,所述工作状态信息包括:外部连接缓存服务CCD模块在设定数目个计数单位时长内接收到的请求数目、外部连接缓存服务CCD/内部连接缓存服务DCC模块的各连接的接收速率和发送速率、CCD/DCC模块的各连接的上一次活动时间与当前时间的第一时间差、发送缓冲区的数据量和接收缓冲区的数据量、环形消息队列MQ中已写入的数据量、从环形消息队列MQ提取数据的时间与所述数据的发送时间的第二时间差、以及发送待发送数据的时间与接收到所述待发送数据的时间的第三时间差,所述数据写入环形消息队列MQ中时,所述数据被打上时间戳,所述时间戳为所述数据的发送时间;
分别判断各所述工作状态信息是否满足对应的预定过载条件;
在所述工作状态信息中的任意一个满足对应的预定过载条件时,进行对应的过载保护处理;
所述工作状态信息包括CCD模块在设定数目个计数单位时长内接收到的请求数目时,所述对应的预定过载条件包括:所述请求数目大于或者等于设定请求数目阈值,每个计数单位时长内允许的最大请求数为所述设定请求数目阈值;所述对应的过载保护处理包括:丢弃CCD模块在所述设定数目个计数单位时长内后续接收到的请求,直至下一个设定数目个计数单位时长。
2.根据权利要求1所述的服务器过载保护方法,其特征在于,所述工作状态信息包括各连接的接收速率和/或发送速率时,所述对应的预定过载条件包括:当前连接在当前第一时间段内的当前接收速率和/或当前发送速率大于或者等于预设下载限速速率和/或预设上传限速速率;
所述对应的过载保护处理包括:将当前连接的状态设置为限速状态,停止收发数据,并在距离第二时间段后,再次检测当前连接在当前第一时间段内的当前接收速率和/或当前发送速率,判断该当前接收速率和/或当前发送速率是否大于或者等于预设下载限速速率和/或预设上传限速速率,若是,继续停止收发数据,若否,将当前连接的状态改为工作状态,继续收发数据。
3.根据权利要求1所述的服务器过载保护方法,其特征在于,所述工作状态信息包括各连接的上一次活动时间与当前时间的第一时间差时,所述对应的预定过载条件包括:所述第一时间差大于或者等于第一设定时间间隔;所述对应的过载保护处理包括:关闭第一时间差大于或者等于第一设定时间间隔的连接。
4.根据权利要求1所述的服务器过载保护方法,其特征在于,所述工作状态信息包括发送缓冲区的数据量和/或接收缓冲区的数据量时,所述对应的预定过载条件包括:发送缓冲区的数据量大于或者等于设定发送缓冲区内存阈值和/或接收缓冲区的数据量大于或者等于设定接收缓冲区内存阈值;所述对应的过载保护处理包括:关闭连接,释放发送缓冲区和/或接收缓冲区。
5.根据权利要求1所述的服务器过载保护方法,其特征在于,所述工作状态信息包括消息队列中已写入的数据量时,所述对应的预定过载条件包括:消息队列中已写入的数据量达到预设数据量阈值;所述对应的过载保护处理包括:在接收到新的写入数据的指令时,给出写入错误的提示信息,阻止数据写入。
6.根据权利要求1所述的服务器过载保护方法,其特征在于,所述工作状态信息包括提取数据的时间与所述数据的发送时间的第二时间差时,所述对应的预定过载条件包括:所述第二时间差是否大于或者等于第二设定时间间隔;所述对应的过载保护处理包括:丢弃所述数据。
7.根据权利要求1所述的服务器过载保护方法,其特征在于,所述工作状态信息包括发送待发送数据的时间与接收到所述待发送数据的时间的第三时间差时;所述对应的预定过载条件包括:所述第三时间差是否大于或者等于第三设定时间间隔;所述对应的过载保护处理包括:丢弃所述待发送数据。
8.一种服务器过载保护***,所述服务器的***类型为缓存和连接控制模块MCP++***,其特征在于,包括:
检测模块,用于监测服务器工作状态信息,所述工作状态信息包括:外部连接缓存服务CCD模块在设定数目个计数单位时长内接收到的请求数目、外部连接缓存服务CCD/内部连接缓存服务DCC模块的各连接的接收速率和发送速率、CCD/DCC模块的各连接的上一次活动时间与当前时间的第一时间差、发送缓冲区的数据量和接收缓冲区的数据量、环形消息队列MQ中已写入的数据量、从环形消息队列MQ提取数据的时间与所述数据的发送时间的第二时间差、以及发送待发送数据的时间与接收到所述待发送数据的时间的第三时间差,所述数据写入环形消息队列MQ中时,所述数据被打上时间戳,所述时间戳为所述数据的发送时间;
条件判定模块,分别判断各所述工作状态信息是否满足对应的预定过载条件;
过载处理模块,用于在所述工作状态信息中的任意一个满足对应的预定过载条件时,进行对应的过载保护处理;
所述工作状态信息包括CCD模块在设定数目个计数单位时长内接收到的请求数目时,所述对应的预定过载条件包括:所述请求数目大于或者等于设定请求数目阈值,每个计数单位时长内允许的最大请求数为所述设定请求数目阈值;所述对应的过载保护处理包括:丢弃CCD模块在所述设定数目个计数单位时长内后续接收到的请求,直至下一个设定数目个计数单位时长。
9.根据权利要求8所述的服务器过载保护***,其特征在于,所述工作状态信息包括各连接的接收速率和/或发送速率时,所述对应的预定过载条件包括:当前连接在当前第一时间段内的当前接收速率和/或当前发送速率大于或者等于预设下载限速速率和/或预设上传限速速率;
所述对应的过载保护处理包括:将当前连接的状态设置为限速状态,停止收发数据,并在距离第二时间段后,再次检测当前连接在当前第一时间段内的当前接收速率和/或当前发送速率,判断该当前接收速率和/或当前发送速率是否大于或者等于预设下载限速速率和/或预设上传限速速率,若是,继续停止收发数据,若否,将当前连接的状态改为工作状态,继续收发数据,所述第一时间段大于所述第二时间段。
10.根据权利要求8所述的服务器过载保护***,其特征在于,所述工作状态信息包括各连接的上一次活动时间与当前时间的第一时间差时,所述对应的预定过载条件包括:所述第一时间差大于或者等于第一设定时间间隔;所述对应的过载保护处理包括:关闭第一时间差大于或者等于第一设定时间间隔的连接。
11.根据权利要求8所述的服务器过载保护***,其特征在于,所述工作状态信息包括发送缓冲区的数据量和/或接收缓冲区的数据量时,所述对应的预定过载条件包括:发送缓冲区的数据量大于或者等于设定发送缓冲区内存阈值和/或接收缓冲区的数据量大于或者等于设定接收缓冲区内存阈值;所述对应的过载保护处理包括:关闭连接,释放发送缓冲区和/或接收缓冲区。
12.根据权利要求8所述的服务器过载保护***,其特征在于,所述工作状态信息包括消息队列中已写入的数据量时,所述对应的预定过载条件包括:消息队列中已写入的数据量达到预设数据量阈值;所述对应的过载保护处理包括:在接收到新的写入数据的指令时,给出写入错误的提示信息,阻止数据写入。
13.根据权利要求8所述的服务器过载保护***,其特征在于,所述工作状态信息包括提取数据的时间与所述数据的发送时间的第二时间差时,所述对应的预定过载条件包括:所述第二时间差是否大于或者等于第二设定时间间隔;所述对应的过载保护处理包括:丢弃所述数据。
14.根据权利要求8所述的服务器过载保护***,其特征在于,所述工作状态信息包括发送待发送数据的时间与接收到所述待发送数据的时间的第三时间差时;所述对应的预定过载条件包括:所述第三时间差是否大于或者等于第三设定时间间隔;所述对应的过载保护处理包括:丢弃所述待发送数据。
15.一种服务器,其特征在于,包括如权利要求8至14任意一项所述的服务器过载保护***。
16.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现上述权利要求1-7中任意一项所述方法的步骤。
17.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任意一项所述的方法。
CN201410387415.9A 2014-08-07 2014-08-07 服务器过载保护方法、服务器过载保护***及服务器 Active CN105471933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410387415.9A CN105471933B (zh) 2014-08-07 2014-08-07 服务器过载保护方法、服务器过载保护***及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410387415.9A CN105471933B (zh) 2014-08-07 2014-08-07 服务器过载保护方法、服务器过载保护***及服务器

Publications (2)

Publication Number Publication Date
CN105471933A CN105471933A (zh) 2016-04-06
CN105471933B true CN105471933B (zh) 2019-04-26

Family

ID=55609201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410387415.9A Active CN105471933B (zh) 2014-08-07 2014-08-07 服务器过载保护方法、服务器过载保护***及服务器

Country Status (1)

Country Link
CN (1) CN105471933B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106302445B (zh) * 2016-08-15 2019-07-23 北京百度网讯科技有限公司 用于处理请求的方法和装置
CN106357557A (zh) * 2016-10-09 2017-01-25 广州市百果园网络科技有限公司 一种消息处理方法及装置
CN106385459B (zh) * 2016-10-20 2020-02-11 杭州迪普科技股份有限公司 一种连接请求报文的分配方法及装置
CN108694074B (zh) * 2017-04-07 2023-04-07 腾讯科技(深圳)有限公司 一种获取计数信息的方法以及服务器
CN106953927B (zh) * 2017-04-15 2021-02-19 国网安徽省电力公司信息通信分公司 云存储的实现方法及云存储***
JP6743778B2 (ja) * 2017-07-19 2020-08-19 株式会社オートネットワーク技術研究所 受信装置、監視機及びコンピュータプログラム
CN107995127B (zh) * 2017-12-13 2022-01-21 深圳乐信软件技术有限公司 一种过载保护方法及装置
WO2019127083A1 (zh) * 2017-12-27 2019-07-04 深圳前海达闼云端智能科技有限公司 一种网络限速方法、装置和服务器
US11153174B2 (en) * 2018-06-15 2021-10-19 Home Box Office, Inc. Data service overload detection and mitigation
CN109257770B (zh) * 2018-10-10 2022-05-06 京信网络***股份有限公司 过载控制方法、装置、***及设备
CN109547282B (zh) * 2018-10-22 2022-04-12 中国平安人寿保险股份有限公司 过载保护方法、装置、计算机可读存储介质及服务器
CN109902023B (zh) * 2019-03-18 2022-06-03 平安普惠企业管理有限公司 一种测试代码移交控制方法及装置
CN111988234A (zh) * 2019-05-23 2020-11-24 厦门网宿有限公司 过载保护方法、装置、服务器及存储介质
CN110515736B (zh) * 2019-08-29 2023-01-13 Oppo广东移动通信有限公司 限制后台对象的方法、装置、终端及存储介质
CN111339158B (zh) * 2020-02-21 2023-05-16 北京字节跳动网络技术有限公司 一种进行信息处理的方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6836785B1 (en) * 2000-11-22 2004-12-28 At&T Corp. Method and apparatus for throttling requests to a server having a buffer with varied acceptance limit based on server overload status and desired buffer delay time
CN101174930A (zh) * 2006-11-03 2008-05-07 华为技术有限公司 一种中继***中自动重传请求的实现方法和装置
CN101305346A (zh) * 2004-05-21 2008-11-12 Bea***公司 用于具有过载保护的应用服务器的***和方法
CN102523306A (zh) * 2011-12-31 2012-06-27 山东中创软件工程股份有限公司 过载保护方法及***
CN103178981A (zh) * 2011-12-24 2013-06-26 腾讯科技(深圳)有限公司 连接管理方法和***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6836785B1 (en) * 2000-11-22 2004-12-28 At&T Corp. Method and apparatus for throttling requests to a server having a buffer with varied acceptance limit based on server overload status and desired buffer delay time
CN101305346A (zh) * 2004-05-21 2008-11-12 Bea***公司 用于具有过载保护的应用服务器的***和方法
CN101174930A (zh) * 2006-11-03 2008-05-07 华为技术有限公司 一种中继***中自动重传请求的实现方法和装置
CN103178981A (zh) * 2011-12-24 2013-06-26 腾讯科技(深圳)有限公司 连接管理方法和***
CN102523306A (zh) * 2011-12-31 2012-06-27 山东中创软件工程股份有限公司 过载保护方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于动态调度算法的Web QoS控制***的设计与实现;唐天俊;《湖南大学硕士学位论文》;20091225;20-51

Also Published As

Publication number Publication date
CN105471933A (zh) 2016-04-06

Similar Documents

Publication Publication Date Title
CN105471933B (zh) 服务器过载保护方法、服务器过载保护***及服务器
US20170155560A1 (en) Management systems for managing resources of servers and management methods thereof
CN106452818B (zh) 一种资源调度的方法和***
US9634915B2 (en) Methods and computer program products for generating a model of network application health
CN104601492B (zh) 一种nfv架构下进行业务流控的方法及装置
US9547534B2 (en) Autoscaling applications in shared cloud resources
US9183111B2 (en) Methods and computer program products for collecting storage resource performance data using file system hooks
US8516509B2 (en) Methods and computer program products for monitoring system calls using safely removable system function table chaining
US9389902B2 (en) Setting retransmission time of an application client during virtual machine migration
US9961157B2 (en) Adaptive compression management for web services
US8909761B2 (en) Methods and computer program products for monitoring and reporting performance of network applications executing in operating-system-level virtualization containers
CN110069337B (zh) 一种容灾降级的方法和装置
WO2018121334A1 (zh) 一种提供网页应用服务的方法、装置、电子设备及***
CN105978821B (zh) 网络拥塞避免的方法及装置
JP6840225B2 (ja) 信頼できない相互接続エージェントをスロットルするためのメカニズム
US20170054804A1 (en) Server Access Processing System
CN111181850B (zh) 数据包泛洪抑制方法、装置和设备及计算机存储介质
US20170187790A1 (en) Ranking system
CN109726151B (zh) 用于管理输入输出栈的方法、设备和介质
CN114020529A (zh) 一种流表数据的备份方法、装置、网络设备和存储介质
CN114189477B (zh) 一种报文拥塞控制方法及装置
WO2017041652A1 (zh) 一种网络资源的使用限额的控制方法、装置及***
WO2017070869A1 (zh) 一种内存配置方法、装置及***
CN107276853B (zh) 流量处理方法及电子设备、计算机***
US20210004308A1 (en) Data processing method and system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190807

Address after: 518000 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518000 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.

TR01 Transfer of patent right