CN112422440B - 一种应用于服务器的流量控制方法以及相关装置 - Google Patents
一种应用于服务器的流量控制方法以及相关装置 Download PDFInfo
- Publication number
- CN112422440B CN112422440B CN201910780154.XA CN201910780154A CN112422440B CN 112422440 B CN112422440 B CN 112422440B CN 201910780154 A CN201910780154 A CN 201910780154A CN 112422440 B CN112422440 B CN 112422440B
- Authority
- CN
- China
- Prior art keywords
- server
- service
- tps
- current limiting
- concurrency
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请公开了一种应用于服务器的流量控制方法以及相关装置,通过确定预设时间段内的服务请求的数量TPS峰值,并根据所述TPS峰值设定限流触发的阈值,即当下一时刻的TPS数值的大小关系满足限流条件时,进行限流,实现了按照服务器实际处理能力进行流控的过程,在限流期间根据预设条件对流量进行动态分配,即使同类服务部署在不同计算能力的容器或者虚拟机中,进一步的,以控制所述服务器的并发量满足预设条件,既启到了限流的作用,又为限流控制提供了量化手段,提高了限流判断的准确定,保证了服务器的稳定运行。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用于服务器的流量控制方法以及相关装置。
背景技术
随着分布式服务架构、微服务架构等技术的应用,以及容器化和云等计算能力动态规划技术的应用,服务调用链路日益增长,全链路累计耗时与压测数据偏差随之增大,需要对服务器处理过程中的流量进行管控,以保证服务器的正常运行。
一般可以采用分流和限流的方法,其中,分流方法包括轮询、随机、地址Hash、加权最小活跃数等,前三种算法都是静态分流算法,加权最小活跃数算法则实现了响应时间越小的实例可以获得更多请求的效果,进一步的,还可以采用限流的方法,即计数器、漏斗、令牌桶等算法对流量进行进一步的限制。
但是由于服务器物理处理能力的波动,静态限流方案可能会由于全链路累计耗时与压测数据偏差的增大影响到服务器的正常运行,即静态的限流阈值可能由于服务器处理能力的改变而无法准确的模拟当前触发限流的条件,影响限流触发的准确性,进一步的影响服务器运行过程的稳定性。
发明内容
有鉴于此,本申请第一方面提供一种应用于服务器的流量控制方法,可应用于流量控制系统或程序过程中,具体包括:确定预设时间段内服务器每秒处理的服务请求的数量(transactions per second,TPS)峰值,所述TPS峰值出现在第一时刻,所述服务请求的数量用于指示流量的大小;
若第二时刻的TPS数值满足限流条件,则获取限流信息,所述限流信息用于指示减少所述服务请求的处理,所述限流条件基于所述TPS峰值与所述第二时刻的TPS数值的大小关系设定;
获取所述TPS峰值对应的第一响应时间以及所述第二时刻的TPS数值对应的第二响应时间;
根据所述限流信息分配所述服务请求,以控制所述服务器的并发量满足预设条件,所述预设条件包括限流参数小于预设阈值,所述限流参数基于所述第一响应时间与所述第二响应时间的比例关系确定。
本申请第二方面提供另一种应用于服务器的流量控制装置,包括:
确定单元,用于确定预设时间段内服务器每秒处理的服务请求的数量TPS峰值,所述TPS峰值出现在第一时刻,所述服务请求的数量用于指示流量的大小;
限流单元,用于若第二时刻的TPS数值满足限流条件,则获取限流信息,所述限流信息用于指示减少所述服务请求的处理,所述限流条件基于所述TPS峰值与所述第二时刻的TPS数值的大小关系设定;
获取单元,用于获取所述TPS峰值对应的第一响应时间以及所述第二时刻的TPS数值对应的第二响应时间;
分配单元,用于根据所述限流信息分配所述服务请求,以控制所述服务器的并发量满足预设条件,所述预设条件包括限流参数小于预设阈值,所述限流参数基于所述第一响应时间与所述第二响应时间的比例关系确定。
在本申请一些可能的实现方式中,所述第二响应时间用于指示所述服务器同时处理多个服务实例时的平均响应时间,
所述分配单元,具体用于确定所述服务器分别处理所述多个服务实例的时间信息;
所述分配单元,具体用于根据所述时间信息确定分配规则,所述分配规则基于所述多个服务实例的时间信息之间的比例确定;
所述分配单元,具体用于根据所述分配规则分配所述服务请求,以控制所述服务器的并发量满足预设条件。
在本申请一些可能的实现方式中,所述分配单元,具体用于根据所述时间信息按照预设次序进行排列,生成服务请求分配次序;
所述分配单元,具体用于根据所述服务请求分配次序确定所述分配规则;
所述分配单元,具体用于按照所述服务请求分配次序依次对所述多个服务实例进行所述服务请求的分配,以使得所述多个服务实例达到流量阈值,所述流量阈值基于所述分配规则设定;
所述分配单元,具体用于若所述服务器的并发量满足预设条件,则停止所述服务请求的分配。
在本申请一些可能的实现方式中,所述分配单元,具体用于获取所述多个服务实例的分类信息;
所述分配单元,具体用于根据所述分类信息分别确定不同类别中服务实例的平均响应时间;
所述分配单元,具体用于根据所述不同类别中服务实例的平均响应时间确定所述多个服务实例的时间信息。
在本申请一些可能的实现方式中,其特征在于,所述确定单元,具体用于获取预设时间段内所述服务器的并发量的变化曲线;
所述确定单元,具体用于根据所述变化曲线确定所述服务器的服务时间段,所述服务时间段用于指示所述服务器的并发量达到服务阈值;
所述确定单元,具体用于确定所述服务时间段内不同时刻的并发量对应的响应时间,以计算得到TPS数值集合;
所述确定单元,具体用于在所述TPS数值集合中确定所述TPS峰值。
在本申请一些可能的实现方式中,所述分配单元,还用于若第三时刻的第三响应时间小于所述第一响应时间,则获取解除限流信息;
所述分配单元,还用于根据所述解除限流信息解除对所述服务器并发量的控制,以使得所述服务器按照额定并发量处理所述服务请求。
在本申请一些可能的实现方式中,所述分配单元,还用于根据所述解除限流信息解除对所述服务器并发量的控制;
所述分配单元,还用于确定所述第一时刻对于所述服务请求的分配信息;
所述分配单元,还用于根据所述分配信息更新分配次序,以使得所述服务器按照额定并发量处理所述服务请求。
本申请第三方面提供一种计算机设备,包括:存储器、处理器以及总线系统;所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行上述第一方面或第一方面任一项所述的应用于服务器的流量控制的方法。
本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一项所述的应用于服务器的流量控制的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
通过确定预设时间段内的TPS峰值,并根据所述TPS峰值限流触发的阈值,即当下一时刻的TPS数值的大小关系满足限流条件时,进行限流,实现了按照服务器实际处理能力进行流控的过程,然后根据预设条件对流量进行动态分配,即使同类服务部署在不同计算能力的容器或者虚拟机中,进一步的,以控制所述服务器的并发量满足预设条件,既启到了限流的作用,又为限流控制提供了量化手段,提高了限流判断的准确定,保证了服务器的稳定运行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为流量控制系统运行的网络架构图;
图2为一种流量控制系统的运行流程框架图;
图3为本申请实施例提供的一种应用于服务器的流量控制方法的流程图;
图4为本申请实施例提供的另一种应用于服务器的流量控制方法的流程图;
图5为本申请实施例提供的一种流量控制的方法的实时监测图;
图6为本申请实施例提供的一种应用于服务器的流量控制的界面显示示意图;
图7为本申请实施例提供的流量控制装置的结构示意图;
图8为本申请实施例提供的另一种流量控制装置的结构示意图。
具体实施方式
本申请实施例提供了一种应用于服务器的流量控制方法以及相关装置,可以应用于应用于服务器的流量控制系统中,具体通过确定预设时间段内的TPS峰值,并根据所述TPS峰值设定限流触发的阈值,即当下一时刻的TPS数值的大小关系满足限流条件时,进行限流,实现了按照服务器实际处理能力进行流控的过程,然后根据预设条件对流量进行动态分配,即使同类服务部署在不同计算能力的容器或者虚拟机中,进一步的,以控制所述服务器的并发量满足预设条件,既启到了限流的作用,又为限流控制提供了量化手段,提高了限流判断的准确定,保证了服务器的稳定运行。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本申请提供的应用于服务器的流量控制方法可以应用于可应用于流量控制系统的运行过程中,具体的,流量控制系统可以运行于如图1所示的网络架构中,如图1所示,是流量控制系统运行的网络架构图,如图可知,流量控制系统可以获取服务器的服务实例的TPS变动,并根据该实例的实际处理能力进行流控,可以动态实现流量分配,即使同类服务部署在不同计算能力的容器或者虚拟机中;当出现TPS峰值时,表明某个实例已经过载,因此利用限流阈值与当前响应时间的比值,等比例降低并发量上限。可以理解的是,图1中示出了一个服务器,在实际场景中可以有更多的服务器参与到服务实例的流量控制过程中,具体数量因实际场景而定,此处不做限定;另外,图1中示出了三个服务实例,但在实际场景中,也可以有更多个服务实例的参与,特别是在多应用数据交互的场景中,具体服务器数量因实际场景而定。
可以理解的是,上述流量控制系统可以运行于个人移动终端,也可以运行于服务器,还可以作为运行于第三方设备以提供客户端实验数据与后台策略的快速迭代试错,以得出实验报告;具体的应用于服务器的流量控制系统可以是以一种程序的形式在上述设备中运行,也可以作为上述设备中的系统部件进行运行,还可以作为云端服务程序的一种,具体运作模式因实际场景而定,此处不做限定。
随着分布式服务架构、微服务架构等技术的应用,以及容器化和云等计算能力动态规划技术的应用,服务调用链路日益增长,全链路累计耗时与压测数据偏差随之增大,需要对服务器处理过程中的流量进行管控,以保证服务器的正常运行。
一般可以采用分流和限流的方法,其中,分流方法包括轮询、随机、地址Hash、加权最小活跃数等,前三种算法都是静态分流算法,加权最小活跃数算法则实现了响应时间越小的实例可以获得更多请求的效果,进一步的,还可以采用限流的方法,即计数器、漏斗、令牌桶等算法对流量进行进一步的限制,其中,计数器一般是基于压测得到的并发量上限,统计当前并发量,保持当前并发量不大于上限的方案。基于成功率的算法是计数器算法的优化或者变种。漏斗方案是将请求按顺序排队,先入先出队列处理的方案,即不论请求并发量多大,处理并发量基本固定,常见于采用消息队列的系统;令牌桶是漏斗方案的优化,为了避免请求队列过大,请求等待超时之后仍在队列中,当队列长度达到额定设置后,根据处理能力发放令牌,有令牌的请求才放入队列中。
但是由于服务器物理处理能力的波动,静态限流方案可能会由于全链路累计耗时与压测数据偏差的增大影响到服务器的正常运行,即静态的限流阈值可能由于服务器处理能力的改变而无法准确的模拟当前触发限流的条件,影响限流触发的准确性,进一步的影响服务器运行过程的稳定性。
为了解决上述问题,本申请提出了一种应用于服务器的流量控制方法,该方法应用于图2所示的流量控制系统的运行流程框架,如图2所示,是一种流量控制系统的运行流程框架图,包括配置模块、监测模块、判断模块和调整模块;其中,配置模块用户输入相关指令以获取TPS峰值,监测模块用于实时监测各个时刻的响应时间,一旦有响应时间的大小关系满足限流条件,判断模块就会触发限流,并通过调整模块调控服务器的并发量,从而实现服务器流量的动态控制过程。
结合上述系统流程,下面将对本申请中应用于服务器的流量控制的方法进行介绍,请参阅图3,图3为本申请实施例提供的一种应用于服务器的流量控制方法的流程图,本申请实施例至少包括以下步骤:
301、确定预设时间段内服务器每秒处理的服务请求的数量TPS峰值,并获取达到所述TPS峰值时对应的第一响应时间。
本实施例中,所述TPS峰值为预设时间段内TPS的最大值,所述服务请求的数量用于指示流量的大小。
可以理解的是,预设时间段的设定可以是基于当前时刻之前的一段时间,即TPS峰值可以为当前时刻之前最近一次峰值的大小;对于峰值,即可以按秒为时间单位,监测统计到的TPS数值,当TPS数值出现持续小于某个值x时,x对应的数值即是当前TPS的峰值。
在一种可能的实现方式中,可以结合以下伪代码的形式进行响应时间的确定过程:
private long statSecondTime;//统计tps对应的时间
private AtomicInteger concurrency=new AtomicInteger(0);//线程安全的计数器,用来记录请求数
应当注意的是,上述代码仅为示例,即为一种可能的实现方式,具体的代码形式因具体场景而定,此处不做限定。
可选的,对于TPS峰值的获取还可以通过获取预设时间段内所述服务器的并发量的变化曲线;然后根据所述变化曲线确定所述服务器的服务时间段,所述服务时间段用于指示所述服务器的并发量达到服务阈值;继而确定所述服务时间段内不同时刻的并发量对应的响应时间,以计算得到TPS数值集合;最后在所述TPS数值集合中确定所述TPS峰值。
302、若第二时刻的TPS数值满足限流条件,则获取限流信息。
本实施例中,所述限流信息用于指示减少所述服务请求的处理,所述限流条件基于所述TPS峰值与所述第二时刻的TPS数值大小关系设定,第二时刻可以是第一时刻之后的相邻的时刻,也可以是第一时刻之后一段时间中的任一时刻。
在一种可能的场景中,限流条件可以是第二时刻的TPS数值小于TPS峰值,这是由于当出现TPS峰值时,表明某个实例已经过载,而此时出现过长响应时间的情况说明服务器已无法完全处理当前的请求,故需要进行限流;可以理解的是,限流条件还可以是第二时刻的TPS数值小于TPS峰值,且TPS峰值减去第二时刻的TPS数值的差值小于一定阈值,即考虑到服务器资源的波动性,可能存在一定的误差空间,例如:当TPS峰值减去第二时刻的TPS数值的差值小于5时,开始限流。
303、获取所述TPS峰值对应的第一响应时间以及所述第二时刻的TPS数值对应的第二响应时间。
本实施例中,在触发限流之后采用TPS峰值对应的第一响应时间以及所述第二时刻的TPS数值对应的第二响应时间作为判断服务器负载的参数,这是由于限流之后一些服务实例可能停止或划分到其他服务进程中,并发数具有不稳定性,进而TPS数值无法准确的反映服务器的负载情况,但是服务器的响应时间并不会由于服务实例的停止而发生改变。
304、根据所述限流信息分配所述服务请求,以控制所述服务器的并发量满足预设条件。
本实施例中,所述预设条件包括限流参数小于预设阈值,所述限流参数基于所述第一响应时间与所述第二响应时间的比例关系确定。
可以理解的是,限流参数是为了反映当前响应时间的波动程度,即当前时刻服务器的负载情况,则限流参数可是第一响应时间与第二响应时间的比值,例如:第一响应时间为10ms,第二响应时间为12ms,预设阈值为0.05,则当前限流参数为(12-10)/10=0.2>0.05,需要减少所述服务器的并发量,以使得限流参数小于预设阈值0.05。
应当注意的是,若第一响应时间之后又出现了新的TPS峰值,则将TPS峰值进行更新,并得到对应的更新后的响应时间,根据更新后的响应时间进行相关的限流判断,即本实施例中,限流参数的判断过程为一个动态的变化过程。
可选的,对于减少服务器的并发量的过程,可以是对于多个服务实例的流量分配过程,可以通过确定所述服务器分别处理所述多个服务实例的时间信息;然后根据所述时间信息确定分配规则,所述分配规则基于所述多个服务实例的时间信息之间的比例确定;再根据所述分配规则分配所述服务请求,以控制所述服务器的并发量满足预设条件。
具体的,分配规则可以是基于各服务实例的响应时间设定,即响应时间小的服务实例分配更多的流量,例如:服务器包含3个服务实例,在触发限流时响应时间分别为10ms、20ms、20ms,则在分配流量时按照2:1:1的比例进行流量分配。
可选的,对于流量分配的过程也可以按照响应时间排序进行分配,即根据所述时间信息按照预设次序进行排列,生成服务请求分配次序;根据所述服务请求分配次序确定所述分配规则;按照所述服务请求分配次序依次对所述多个服务实例进行所述服务请求的分配,以使得所述多个服务实例达到流量阈值,所述流量阈值基于所述分配规则设定;若所述服务器的并发量满足预设条件,则停止所述服务请求的分配。
具体的,当存在多个服务实例时,按照响应时间倒序排列,即响应时间最短的服务实例先分配流量,待达到该服务实例的阈值后,例如:0.8,再分配下一个服务实例,依此分配流量。
在一种可能的场景中,由于服务实例都对应具体的服务类型,不同类型的服务实例的响应时间具有一定的相似度,故可以根据分类后的服务实例进行流量分配,具体的,首先获取所述多个服务实例的分类信息;然后根据所述分类信息分别确定不同类别中服务实例的平均响应时间;最后根据所述不同类别中服务实例的平均响应时间确定所述多个服务实例的时间信息。
结合上述实施例可知,通过确定预设时间段内的TPS峰值,并根据所述TPS峰值设定限流触发的阈值,即当下一时刻的TPS数值的大小关系满足限流条件时,进行限流,实现了按照服务器实际处理能力进行流控的过程,然后根据预设条件对流量进行动态分配,即使同类服务部署在不同计算能力的容器或者虚拟机中,进一步的,以控制所述服务器的并发量满足预设条件,既启到了限流的作用,又为限流控制提供了量化手段,提高了限流判断的准确定,保证了服务器的稳定运行。
上述实施例介绍了限流的触发过程,对应的,限流也可以被解除,而且解除之后若响应时间再次回升,还会触发限流;下面,对该场景结合附图进行说明,如图4所示,图4为本申请实施例提供的另一种应用于服务器的流量控制的方法的流程图,本申请实施例至少包括以下步骤:
401、确定预设时间段内服务器每秒处理的服务请求的数量TPS峰值,并获取达到所述TPS峰值时对应的第一响应时间。
402、若第二时刻的TPS数值满足限流条件,则获取限流信息。
403、获取所述TPS峰值对应的第一响应时间以及所述第二时刻的TPS数值对应的第二响应时间。
404、根据所述限流信息分配所述服务请求,以控制所述服务器的并发量满足预设条件。
本实施例中,步骤401-404与图3所述实施例的步骤301-304类似,相关描述可以进行参照,此处不做赘述。
405、实时监测各时刻对应的响应时间。
本实施例中,实时监测各时刻对应的响应时间是由于在触发限流之后采用响应时间作为判断服务器负载的参数,这是由于限流之后一些服务实例可能停止或划分到其他服务进程中,并发数具有不稳定性,进而TPS数值无法准确的反映服务器的负载情况,但是服务器的响应时间并不会由于服务实例的停止而发生改变。
406、若第三时刻的第三响应时间小于第一响应时间,则解除限流。
本实施例中,若第三时刻的第三响应时间小于第一响应时间,即说明第三时刻服务器的负载得到了释放,或者说没有过大的负载压力,可以负载更多的服务请求,即可解除限流,结合上述限流的过程,可以通过以下伪代码的形式实现:
应当注意的是,上述代码仅为示例,即为一种可能的实现方式,具体的代码形式因具体场景而定,此处不做限定。
407、按照额定并发量分配流量。
本实施例中,额定并发量即为服务器可以处理的最大并发量,此时可以根据第一时刻的分配的比例对多个节点进行流量分配,也可以根据当前时刻确定的TPS峰值对应的分配方案进行流量分配。
可以理解的是,本实施例中也可以使用TPS峰值对应的并发量作为判断限流的参数,但是相比于TPS峰值对应的响应时间作为判断限流的参数,以并发量作为判断限流的参数可能出现不稳定的情况;这是因为该服务可能调用其他的服务,而后续的服务提供方如果处理能力下降(比如耗时增大),则该服务的TPS峰值出现在后续服务降级故障发生时,此时的并发量将作为限流阈值。即使后续服务降级故障恢复,该并发量上限的场景下,系统的当前TPS可能无法超越前期的TPS峰值,限流不会解除;如果后续服务故障进一步恶化,算法层面也缺少并发量上限浮动的判断。本算法的限流阈值是采用TPS峰值对应的响应时间,在上面的场景中,随着并发量上限的降低,当前响应时间也会逐步减小。
在一种可能的场景中,在解除限流之后可能出现两种情况,1,后续服务随着并发量减小,处理能力恢复,则当前响应时间小于(响应时间)阈值,限流解除,系统吞吐量曲线上扬,当吞吐量接近上次限流的TPS峰值时,如果后续服务故障未恢复,则再次限流,循环往复,直至故障恢复,系统吞吐量曲线继续走高;2,后续服务处理能力持续恶化,表现在随着并发量减少,当前响应时间未减小到小于阈值,甚至持续增加,因此不会解除限流,而且可以根据响应时间的比值,继续减少并发量。
为进一步证明本申请实施例的可行性,下面,对该场景结合一种测试场景进行说明,如图5所示,图5为本申请实施例提供的一种流量控制的方法的实时监测图,该测试过程的实现方式如下:
如图5可见在A、B、C、D触发了限流,这是由于响应时间出现了波动,例如:由于在A处出现了小的波谷,而波谷的最低点代表了响应时间最小,即TPS峰值,所以当耗时大于波谷底点时,触发限流;然后在B处出现转折,转折点后的响应时间变大,则在B触发限流;可见,本申请中触发限流的过程为动态的调整过程,即根据当前服务器的负载情况对限流的阈值进行动态的确定,保证了限流过程的准确性。
在一种可能的显示方式中,可以采用如图6所述的显示方式对上述实施例进行显示,图6为本申请实施例提供的一种应用于服务器的流量控制的界面显示示意图。该界面可以包括横坐标为时刻进程,纵坐标为响应时间的实时监测曲线,当用户需要知晓各时刻的服务器状态时,可以点击详情,则会显示出各个时刻的响应时间,对应的并发量,以及当前服务器的状态,例如:正常(解除限流)或限流。
可以理解的是,上述实施例中出现的相关步骤以及参数均可以在该显示界面中显示,此处不做限定。
为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。请参阅图7,图7为本申请实施例提供的流量控制装置的结构示意图,流量控制装置700包括:
确定单元701,用于确定预设时间段内服务器每秒处理的服务请求的数量TPS峰值,并获取达到所述TPS峰值时对应的第一响应时间,所述TPS峰值出现在第一时刻,所述服务请求的数量用于指示流量的大小;
限流单元702,用于若第二时刻的TPS数值满足限流条件,则获取限流信息,所述限流信息用于指示减少所述服务请求的处理,所述限流条件基于所述TPS峰值与所述第二时刻的TPS数值的大小关系设定;
获取单元703,用于获取所述TPS峰值对应的第一响应时间以及所述第二时刻的TPS数值对应的第二响应时间
分配单元704,用于根据所述限流信息分配所述服务请求,以控制所述服务器的并发量满足预设条件,所述预设条件包括限流参数小于预设阈值,所述限流参数基于所述第一响应时间与所述第二响应时间的比例关系确定。
优选的,在本申请一些可能的实现方式中,所述第二响应时间用于指示所述服务器同时处理多个服务实例时的平均响应时间,
所述分配单元704,具体用于确定所述服务器分别处理所述多个服务实例的时间信息;
所述分配单元704,具体用于根据所述时间信息确定分配规则,所述分配规则基于所述多个服务实例的时间信息之间的比例确定;
所述分配单元704,具体用于根据所述分配规则分配所述服务请求,以控制所述服务器的并发量满足预设条件。
优选的,在本申请一些可能的实现方式中,所述分配单元704,具体用于根据所述时间信息按照预设次序进行排列,生成服务请求分配次序;
所述分配单元704,具体用于根据所述服务请求分配次序确定所述分配规则;
所述分配单元704,具体用于按照所述服务请求分配次序依次对所述多个服务实例进行所述服务请求的分配,以使得所述多个服务实例达到流量阈值,所述流量阈值基于所述分配规则设定;
所述分配单元704,具体用于若所述服务器的并发量满足预设条件,则停止所述服务请求的分配。
优选的,在本申请一些可能的实现方式中,所述分配单元704,具体用于获取所述多个服务实例的分类信息;
所述分配单元704,具体用于根据所述分类信息分别确定不同类别中服务实例的平均响应时间;
所述分配单元704,具体用于根据所述不同类别中服务实例的平均响应时间确定所述多个服务实例的时间信息。
优选的,在本申请一些可能的实现方式中,其特征在于,所述确定单元701,具体用于获取预设时间段内所述服务器的并发量的变化曲线;
所述确定单元701,具体用于根据所述变化曲线确定所述服务器的服务时间段,所述服务时间段用于指示所述服务器的并发量达到服务阈值;
所述确定单元701,具体用于确定所述服务时间段内不同时刻的并发量对应的响应时间,以计算得到TPS数值集合;
所述确定单元701,具体用于在所述TPS数值集合中确定所述TPS峰值。
优选的,在本申请一些可能的实现方式中,所述分配单元704,还用于若第三时刻的第三响应时间小于所述第一响应时间,则获取解除限流信息;
所述分配单元704,还用于根据所述解除限流信息解除对所述服务器并发量的控制,以使得所述服务器按照额定并发量处理所述服务请求。
优选的,在本申请一些可能的实现方式中,所述分配单元704,还用于根据所述解除限流信息解除对所述服务器并发量的控制;
所述分配单元704,还用于确定所述第一时刻对于所述服务请求的分配信息;
所述分配单元704,还用于根据所述分配信息更新分配次序,以使得所述服务器按照额定并发量处理所述服务请求。
通过确定预设时间段内的TPS峰值,并获取达到所述TPS峰值时对应的响应时间作为限流触发的阈值,即当下一时刻的响应时间的大小关系满足限流条件时,进行限流,实现了按照服务器实际处理能力进行流控的过程,然后根据预设条件对流量进行动态分配,即使同类服务部署在不同计算能力的容器或者虚拟机中,进一步的,以控制所述服务器的并发量满足预设条件,既启到了限流的作用,又为限流控制提供了量化手段,提高了限流判断的准确定,保证了服务器的稳定运行。
本申请实施例还提供了一种流量控制装置,请参阅图8,图8是本申请实施例提供的另一种流量控制装置的结构示意图,该流量控制装置800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对的流量控制装置中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在的流量控制装置800上执行存储介质830中的一系列指令操作。
的流量控制装置800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由的流量控制装置所执行的步骤可以基于该图8所示的流量控制装置结构。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有应用于服务器的流量控制指令,当其在计算机上运行时,使得计算机执行如前述图2至图6所示实施例描述的方法中流量控制装置所执行的步骤。
本申请实施例中还提供一种包括应用于服务器的流量控制指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图2至图6所示实施例描述的方法中应用于服务器的流量控制装置所执行的步骤。
本申请实施例还提供了一种应用于服务器的流量控制系统,所述应用于服务器的流量控制系统可以包含图7所描述实施例中的应用于服务器的流量控制装置,或者图8所描述的应用于服务器的流量控制装置。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,流量控制装置,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种应用于服务器的流量控制方法,其特征在于,包括:
确定预设时间段内服务器每秒处理的服务请求的数量TPS峰值,所述TPS峰值出现在第一时刻,所述服务请求的数量用于指示流量的大小;
若第二时刻的TPS数值满足限流条件,则获取限流信息,所述限流信息用于指示减少所述服务请求的处理,所述限流条件基于所述TPS峰值与所述第二时刻的TPS数值的大小关系设定;
获取所述TPS峰值对应的第一响应时间以及所述第二时刻的TPS数值对应的第二响应时间;
根据所述限流信息分配所述服务请求,以控制所述服务器的并发量满足预设条件,所述预设条件包括限流参数小于预设阈值,所述限流参数基于所述第一响应时间与所述第二响应时间的比例关系确定。
2.根据权利要求1所述的方法,其特征在于,所述第二响应时间用于指示所述服务器同时处理多个服务实例时的平均响应时间,所述根据所述限流信息分配所述服务请求,以控制所述服务器的并发量满足预设条件,包括:
确定所述服务器分别处理所述多个服务实例的时间信息;
根据所述时间信息确定分配规则,所述分配规则基于所述多个服务实例的时间信息之间的比例确定;
根据所述分配规则分配所述服务请求,以控制所述服务器的并发量满足预设条件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述时间信息确定分配规则,包括:
根据所述时间信息按照预设次序进行排列,生成服务请求分配次序;
根据所述服务请求分配次序确定所述分配规则;
所述根据所述分配规则分配所述服务请求,以控制所述服务器的并发量满足预设条件,包括:
按照所述服务请求分配次序依次对所述多个服务实例进行所述服务请求的分配,以使得所述多个服务实例达到流量阈值,所述流量阈值基于所述分配规则设定;
若所述服务器的并发量满足预设条件,则停止所述服务请求的分配。
4.根据权利要求2所述的方法,其特征在于,所述确定所述服务器分别处理所述多个服务实例的时间信息,包括:
获取所述多个服务实例的分类信息;
根据所述分类信息分别确定不同类别中服务实例的平均响应时间;
根据所述不同类别中服务实例的平均响应时间确定所述多个服务实例的时间信息。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述确定预设时间段内服务器每秒处理的服务请求的数量TPS峰值,包括:
获取预设时间段内所述服务器的并发量的变化曲线;
根据所述变化曲线确定所述服务器的服务时间段,所述服务时间段用于指示所述服务器的并发量达到服务阈值;
确定所述服务时间段内不同时刻的并发量对应的响应时间,以计算得到TPS数值集合;
在所述TPS数值集合中确定所述TPS峰值。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述限流信息分配所述服务请求,以控制所述服务器的并发量满足预设条件之后,所述方法还包括:
若第三时刻的第三响应时间小于所述第一响应时间,则获取解除限流信息;
根据所述解除限流信息解除对所述服务器并发量的控制,以使得所述服务器按照额定并发量处理所述服务请求。
7.根据权利要求6所述的方法,其特征在于,所述根据所述解除限流信息解除对所述服务器并发量的控制,以使得所述服务器按照额定并发量处理所述服务请求,包括:
根据所述解除限流信息解除对所述服务器并发量的控制;
确定所述第一时刻对于所述服务请求的分配信息;
根据所述分配信息更新分配次序,以使得所述服务器按照额定并发量处理所述服务请求。
8.一种应用于服务器的流量控制装置,其特征在于,包括:
确定单元,用于确定预设时间段内服务器每秒处理的服务请求的数量TPS峰值,所述TPS峰值出现在第一时刻,所述服务请求的数量用于指示流量的大小;
限流单元,用于若第二时刻的TPS数值满足限流条件,则获取限流信息,所述限流信息用于指示减少所述服务请求的处理,所述限流条件基于所述TPS峰值与所述第二时刻的TPS数值的大小关系设定;
获取单元,用于获取所述TPS峰值对应的第一响应时间以及所述第二时刻的TPS数值对应的第二响应时间;
分配单元,用于根据所述限流信息分配所述服务请求,以控制所述服务器的并发量满足预设条件,所述预设条件包括限流参数小于预设阈值,所述限流参数基于所述第一响应时间与所述第二响应时间的比例关系确定。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行权利要求1至7任一项所述的应用于服务器的流量控制方法。
10.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述权利要求1至7任一项所述的应用于服务器的流量控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910780154.XA CN112422440B (zh) | 2019-08-22 | 2019-08-22 | 一种应用于服务器的流量控制方法以及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910780154.XA CN112422440B (zh) | 2019-08-22 | 2019-08-22 | 一种应用于服务器的流量控制方法以及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112422440A CN112422440A (zh) | 2021-02-26 |
CN112422440B true CN112422440B (zh) | 2023-03-24 |
Family
ID=74778957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910780154.XA Active CN112422440B (zh) | 2019-08-22 | 2019-08-22 | 一种应用于服务器的流量控制方法以及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112422440B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118667A (zh) * | 2021-03-17 | 2022-09-27 | 华为技术有限公司 | 传输控制方法及装置 |
CN113595922B (zh) * | 2021-07-29 | 2024-05-03 | 上海浦东发展银行股份有限公司 | 一种流量限制方法、装置、服务器及存储介质 |
CN114710406B (zh) * | 2022-04-24 | 2023-09-26 | 中国工商银行股份有限公司 | 超时阈值的动态确定方法、装置、电子设备和介质 |
CN115242718B (zh) * | 2022-06-21 | 2024-01-30 | 平安科技(深圳)有限公司 | 集群限流方法、装置、设备及介质 |
CN114844835B (zh) * | 2022-07-04 | 2022-09-20 | 眉山环天智慧科技有限公司 | 一种自适应动态限流方法、设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326950B (zh) * | 2013-06-20 | 2016-08-10 | 交通银行股份有限公司 | 一种银行卡数据流量控制方法及系统 |
CN105389214B (zh) * | 2015-11-10 | 2019-03-29 | 中国建设银行股份有限公司 | 一种监控方法及系统 |
US10581745B2 (en) * | 2017-12-11 | 2020-03-03 | International Business Machines Corporation | Dynamic throttling thresholds |
CN110099009B (zh) * | 2018-01-31 | 2021-01-26 | 北京易真学思教育科技有限公司 | 基于接口响应时间趋势的动态限流方法及计算机可读介质 |
-
2019
- 2019-08-22 CN CN201910780154.XA patent/CN112422440B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112422440A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112422440B (zh) | 一种应用于服务器的流量控制方法以及相关装置 | |
WO2016119412A1 (zh) | 一种云平台上的资源伸缩方法和一种云平台 | |
US11188392B2 (en) | Scheduling system for computational work on heterogeneous hardware | |
US9712404B2 (en) | Performance evaluation method and information processing device | |
US9547534B2 (en) | Autoscaling applications in shared cloud resources | |
USRE44686E1 (en) | Dynamically modifying the resources of a virtual server | |
US10162684B2 (en) | CPU resource management in computer cluster | |
US8386512B2 (en) | System for managing data collection processes | |
US7467291B1 (en) | System and method for calibrating headroom margin | |
CN112559182B (zh) | 资源分配方法、装置、设备及存储介质 | |
US20170359271A1 (en) | Multi-tenant based system and method for providing services | |
US10069757B1 (en) | Reserved network device capacity | |
EP3483730A1 (en) | Resource allocation method and resource manager | |
KR20120063499A (ko) | 엔터프라이즈 네트워크에서 할당된 클라우드 자원의 동적 로드 밸런싱 및 스케일링 | |
CN105468458B (zh) | 计算机集群的资源调度方法及系统 | |
US8782659B2 (en) | Allocation of processing tasks between processing resources | |
CN109739627B (zh) | 任务的调度方法、电子设备及介质 | |
CN103502944A (zh) | 虚拟机内存调整方法和设备 | |
US10305974B2 (en) | Ranking system | |
CN112988390A (zh) | 一种算力资源分配方法及装置 | |
EP3561671A1 (en) | Allocating workload | |
CN111104227A (zh) | 一种K8s平台的资源控制方法、装置及相关组件 | |
CN108376103A (zh) | 一种云平台的资源平衡控制方法及服务器 | |
CN109960565B (zh) | 云平台、基于云平台的虚拟机调度方法及装置 | |
CN103488538B (zh) | 云计算系统中的应用扩展装置和应用扩展方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |