掌桥专利:专业的专利平台
掌桥专利
首页

服务过载的处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 09:38:30


服务过载的处理方法、装置、电子设备及存储介质

技术领域

本公开涉及互联网技术领域,尤其涉及一种服务过载的处理方法、装置、电子设备及存储介质。

背景技术

RPC(Remote Procedure Call Protocol,远程过程调用协议)指的是分布式系统架构中不同系统之间的远程通信和相互调用,其中,不同系统之间的调用包括不同系统中服务之间的调用。

如果一个系统接收到的RPC请求数过多,超出自己的处理能力时,则会发生过载。对于该系统而言,目前一般通过阈值的方式进行过载保护,然而,目前在过载保护机制中阈值一般需要凭借人的经验来设置,但如果设置得过大,则达不到过载保护的作用,如果设置得过小则会过于敏感,从而导致短时的突发流量尖峰下的RPC请求被错误地丢弃。因此,在目前的过载保护机制中,如何设置合理的阈值至关重要。

发明内容

本公开提供一种服务过载的处理方法、装置、电子设备及存储介质,以至少解决相关技术中在过载保护机制如何合理设置阈值的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种服务过载的处理方法,所述方法包括:

获取分布式系统架构中提供服务的系统的资源数据和所述系统在当前时刻的当前负载信息,根据所述资源数据和当前负载信息之间的大小关系,计算所述系统在下一时刻的服务请求阈值;

当系统在下一时刻接收到服务调用请求时,若系统的并发服务请求数小于所述服务请求阈值,则根据所述服务调用请求进行相应的服务调用;

若系统的并发服务请求数大于或等于所述服务请求阈值,则丢弃所述服务调用请求。

在其中一个实施例中,系统的资源数据包括所述系统的CPU核数,所述系统在当前时刻的当前负载信息包括所述系统当前正在执行的任务数量;所述获取系统的资源数据和所述系统在当前时刻的当前负载信息,根据所述资源数据和当前负载信息之间的大小关系,计算所述系统在下一时刻的服务请求阈值,包括:若所述系统当前正在执行的任务数量大于所述系统的CPU核数,则减小所述系统在当前时刻的当前服务请求阈值,得到所述系统在下一时刻的服务请求阈值;若所述系统当前正在执行的任务数量小于所述系统的CPU核数,则增大所述系统在当前时刻的当前服务请求阈值,得到所述系统在下一时刻的服务请求阈值;若所述系统当前正在执行的任务数量等于所述系统的CPU核数,则将所述系统在当前时刻的当前服务请求阈值作为所述系统在下一时刻的服务请求阈值。

在其中一个实施例中,根据所述资源数据和当前负载信息之间的大小关系,计算所述系统在下一时刻的服务请求阈值,包括:获取所述系统在当前时刻的当前并发服务请求数以及当前服务请求阈值;根据第一设定值和所述系统的资源数据、所述系统在当前时刻的当前负载信息以及当前服务请求阈值,计算所述系统在下一时刻的服务请求阈值的第一估计值,所述第一设定值用于表征梯度下降算法中的学习率,用于计算并限定所述第一估计值的大小;根据第二设定值和所述系统在当前时刻的当前并发服务请求数,计算所述系统在下一时刻的服务请求阈值的第二估计值,所述第二设定值用于表征梯度下降算法中的伸缩率,用于计算并限定所述第二估计值的大小;提取所述系统在下一时刻的服务请求阈值的第一估计值和第二估计值中的最小值,将所述最小值作为所述系统在下一时刻的服务请求阈值。

在其中一个实施例中,根据第一设定值和所述系统的资源数据、所述系统在当前时刻的当前负载信息以及当前服务请求阈值,计算所述系统在下一时刻的服务请求阈值的第一估计值,包括:获取所述系统的资源数据与所述系统在当前时刻的当前负载信息之间的差值;提取所述差值与所述系统在当前时刻的当前负载信息之间的商;获取所述商、所述第一设定值以及所述系统在当前时刻的当前服务请求阈值之间的乘积,得到所述系统在下一时刻的服务请求阈值的偏移量;获取所述系统在当前时刻的当前服务请求阈值与所述系统在下一时刻的服务请求阈值的偏移量之间的和,将所述和确定为所述系统在下一时刻的服务请求阈值的第一估计值。

在其中一个实施例中,根据第二设定值和所述系统在当前时刻的当前并发服务请求数,计算所述系统在下一时刻的服务请求阈值的第二估计值,包括:获取所述系统在当前时刻的当前并发服务请求数与所述第二设定值之间的乘积,将所述乘积确定为所述系统在下一时刻的服务请求阈值的第二估计值。

在其中一个实施例中,第一设定值在[0,1)的区间中,第二设定值大于1。

根据本公开实施例的第二方面,提供一种服务过载的处理装置,所述装置包括:

数据获取模块,被配置为执行获取分布式系统架构中提供服务的系统的资源数据和所述系统在当前时刻的当前负载信息;

阈值估计模块,被配置为执行根据所述资源数据和当前负载信息之间的大小关系,计算所述系统在下一时刻的服务请求阈值;

服务处理模块,被配置为执行当系统在下一时刻接收到服务调用请求时,若系统的并发服务请求数小于所述服务请求阈值,则根据所述服务调用请求进行相应的服务调用;若系统的并发服务请求数大于或等于所述服务请求阈值,则丢弃所述服务调用请求。

在其中一个实施例中,系统的资源数据包括所述系统的CPU核数,所述系统在当前时刻的当前负载信息包括所述系统当前正在执行的任务数量;所述阈值估计模块被配置为执行:若所述系统当前正在执行的任务数量大于所述系统的CPU核数,则减小所述系统在当前时刻的当前服务请求阈值,得到所述系统在下一时刻的服务请求阈值;若所述系统当前正在执行的任务数量小于所述系统的CPU核数,则增大所述系统在当前时刻的当前服务请求阈值,得到所述系统在下一时刻的服务请求阈值;若所述系统当前正在执行的任务数量等于所述系统的CPU核数,则将所述系统在当前时刻的当前服务请求阈值作为所述系统在下一时刻的服务请求阈值。

在其中一个实施例中,阈值估计模块包括:数据获取单元,被配置为执行获取所述系统在当前时刻的当前并发服务请求数以及当前服务请求阈值;第一估计值获取单元,被配置为执行根据第一设定值和所述系统的资源数据、所述系统在当前时刻的当前负载信息以及当前服务请求阈值,计算所述系统在下一时刻的服务请求阈值的第一估计值,所述第一设定值用于表征梯度下降算法中的学习率,用于计算并限定所述第一估计值的大小;第二估计值获取单元,被配置为执行根据第二设定值和所述系统在当前时刻的当前并发服务请求数,计算所述系统在下一时刻的服务请求阈值的第二估计值,所述第二设定值用于表征梯度下降算法中的伸缩率,用于计算并限定所述第二估计值的大小;服务请求阈值获取单元,被配置为执行提取所述系统在下一时刻的服务请求阈值的第一估计值和第二估计值中的最小值,将所述最小值作为所述系统在下一时刻的服务请求阈值。

在其中一个实施例中,第一估计值获取单元被配置为执行:获取所述系统的资源数据与所述系统在当前时刻的当前负载信息之间的差值;提取所述差值与所述系统在当前时刻的当前负载信息之间的商;获取所述商、所述第一设定值以及所述系统在当前时刻的当前服务请求阈值之间的乘积,得到所述系统在下一时刻的服务请求阈值的偏移量;获取所述系统在当前时刻的当前服务请求阈值与所述系统在下一时刻的服务请求阈值的偏移量之间的和,将所述和确定为所述系统在下一时刻的服务请求阈值的第一估计值。

在其中一个实施例中,第二估计值获取单元被配置为执行:获取所述系统在当前时刻的当前并发服务请求数与所述第二设定值之间的乘积,将所述乘积确定为所述系统在下一时刻的服务请求阈值的第二估计值。

在其中一个实施例中,第一设定值在[0,1)的区间中,第二设定值大于1。

根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,使得电子设备执行第一方面的任一项实施例中所述的服务过载的处理方法。

根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行第一方面的任一项实施例中所述的服务过载的处理方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行第一方面的任一项实施例中所述的服务过载的处理方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

通过获取系统的资源数据和系统在当前时刻的当前负载信息,并根据资源数据和当前负载信息之间的大小关系,计算系统在下一时刻的服务请求阈值,当在下一时刻接收到服务调用请求时,若系统的并发服务请求数小于服务请求阈值,则根据服务调用请求进行相应的服务调用,若系统的并发服务请求数大于或等于服务请求阈值,则丢弃服务调用请求。从而实现对服务请求阈值的动态调整,不仅避免了人工设置服务请求阈值准确性不高的问题,且基于该动态的服务请求阈值,既可以保证系统能够容忍适时的突发流量尖峰,也可以保证系统能够在不超过自身处理能力的情况下最大程度的提供服务。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种服务过载的处理方法的流程图。

图2是根据一示例性实施例示出的估计服务请求阈值步骤的流程示意图。

图3是根据一示例性实施例示出的一种服务过载的处理装置的框图。

图4是根据一示例性实施例示出的一种电子设备的内部结构图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

为了便于理解本公开提供的一种服务过载的处理方法,下面,首先对RPC进行简要说明。RPC是分布式系统架构中不同系统之间的远程通信和相互调用,具体地,在分布式系统架构中不同系统之间,运行在各个系统中的服务可以通过RPC请求调用运行在其他系统中的服务。但是,当一个系统接收到的RPC请求数过多,超出自己的处理能力时,则会发生过载。对于该系统而言,当发生过载时,不能及时处理的RPC请求将进入排队状态,如果过载情况持续,排队队列会越来越长,最终导致所有RPC请求都不能及时处理。因此,当发生过载时,通常会启用过载保护机制,即丢弃(拒绝)一部分RPC请求,而保证其他RPC请求能够得到及时的处理,从而保证系统仍然能够提供一定的服务能力。目前在过载保护机制中常用的做法是,通过设置系统处理RPC请求数的阈值,系统每接收到一个RPC请求时,统计当前的RPC并发请求数,如果当前的RPC并发请求数达到该阈值,则表示系统过载,从而丢弃该RPC请求。而系统过载一般意味着系统的某个资源不足,如系统的CPU(central processingunit,中央处理器)资源不够,而CPU是否过载又可以通过CPU负载来衡量。但是对于不同的系统而言,其处理能力通常是不同的。而目前凭借人的经验设置阈值的方式不仅工作量大,且难以准确地设置出适合系统自身的阈值,如设置得过大,则达不到对系统过载保护的作用,如果设置得过小则系统会过于敏感,从而导致短时的突发流量尖峰下的RPC请求被错误地丢弃。

基于此,本公开提供了一种服务过载的处理方法,如图1所示,包括以下步骤。

在步骤S110中,获取分布式系统架构中提供服务的系统的资源数据和系统在当前时刻的当前负载信息。

其中,资源数据包括系统的CPU资源、系统内存以及网卡传输速率等,而CPU资源又可以通过CPU核数来衡量,CUP核数即一个CPU由多少个核心组成,核心数越多,代表这个CPU的运转速度越快,性能越好。例如对于同一个数据处理,一核CPU相当于1个人处理数据,双核CPU相当于2个人处理同一个数据,4核CPU相当于4个人去处理同一个数据,因此处理核心数越多,CPU的工作效率也就越高。系统内存则是指系统的内存容量。由于对于系统内存或网卡传输速率的资源瓶颈相对较容易解决,比如内存,只要控制使用容量不超过内存容量就可以,对于网卡传输速率的控制与系统内存相类似。因此,在判断系统是否过载时,大部分情况下只需要考虑系统的CPU资源是否过载。又由于CPU是否过载可以通过CPU负载来衡量,它代表的是当前有多少个处于Running(运行)状态的线程,即系统在当前时刻的当前负载信息。如果系统在某一时刻的running线程数超过CPU核数,这意味着CPU忙不过来了,即CPU过载。因此,在本实施例中,通过获取系统的资源数据和系统在当前时刻的当前负载信息,并通过后续步骤进行过载保护的处理。

在步骤S120中,根据资源数据和当前负载信息之间的大小关系,计算系统在下一时刻的服务请求阈值。

其中,服务请求阈值是基于过载保护机制设置的系统在某一时刻所能处理的并发RPC请求的最大数量。资源数据和当前负载信息之间的大小关系可以是指资源数据和当前负载信息之间的相互大小关系。例如,在过载保护机制中,当某一时刻系统的CPU过载时,则表示在该时刻系统的running线程数超过(即大于)CPU核数,因此,此时需要使得系统的服务请求阈值足够小,以丢弃足够多的请求,而保证剩下的请求不超过系统的处理能力。而在正常情况下,即系统的running线程数未超过(即小于或等于)CPU核数时,表示系统的CPU未过载,此时则需要使得系统的服务请求阈值足够大,以保证系统能够容忍适时的突发流量尖峰。基于此,在本实施例中,根据系统的资源数据和当前负载信息之间的大小关系,而计算系统在下一时刻的服务请求阈值,从而实现对服务请求阈值的动态调整。

在步骤S130中,当系统在下一时刻接收到服务调用请求时,若系统的并发服务请求数小于服务请求阈值,则根据服务调用请求进行相应的服务调用。

在步骤S140中,若系统的并发服务请求数大于或等于服务请求阈值,则丢弃服务调用请求。

具体地,在通过上述步骤确定系统实时的服务请求阈值后,则可以基于过载保护机制并根据该服务请求阈值对接收到的服务调用请求进行相应的处理。例如,在系统接收到服务调用请求时,判断系统此时的并发服务请求数与服务请求阈值之间的关系,若系统此时的并发服务请求数小于服务请求阈值,则表示系统此时的CPU未过载,即系统有能力对该服务调用请求进行处理,因此,可以根据服务调用请求进行相应的服务调用,即对该服务调用请求进行对应的服务调用处理。若系统此时的并发服务请求数大于或等于服务请求阈值,则表示系统此时的CPU已经满负荷,即系统已经没有能力再对该服务调用请求进行处理,因此,为了保证系统的正常运行,则对该服务调用请求进行丢弃处理。

上述服务过载的处理方法,通过获取系统的资源数据和系统在当前时刻的当前负载信息,并根据资源数据和当前负载信息之间的大小关系,获取系统在下一时刻的服务请求阈值,当系统在下一时刻接收到服务调用请求时,若系统的并发服务请求数小于服务请求阈值,则根据服务调用请求进行相应的服务调用,若系统的并发服务请求数大于或等于服务请求阈值,则丢弃服务调用请求。从而实现基于动态调整的服务请求阈值对系统进行过载保护,不仅避免了人工设置服务请求阈值工作量大及准确性不高的问题,且基于该动态的服务请求阈值,既可以保证系统能够容忍适时的突发流量尖峰,也可以保证系统能够在不超过自身处理能力的情况下最大程度的提供服务。

在一示例性实施例中,系统的资源数据包括系统的CPU核数,系统在当前时刻的当前负载信息包括系统当前正在执行的任务数量。则在步骤S120中,根据资源数据和当前负载信息之间的大小关系,获取系统在下一时刻的服务请求阈值,具体包括:若系统当前正在执行的任务数量大于系统的CPU核数,则减小系统在当前时刻的当前服务请求阈值,得到系统在下一时刻的服务请求阈值;若系统当前正在执行的任务数量小于系统的CPU核数,则增大系统在当前时刻的当前服务请求阈值,得到系统在下一时刻的服务请求阈值;若系统当前正在执行的任务数量等于系统的CPU核数,则将系统在当前时刻的当前服务请求阈值作为系统在下一时刻的服务请求阈值。

其中,系统当前正在执行的任务数量是指系统当前处于Running(运行)状态的线程的数量。在本实施例中,可以基于系统当前正在执行的任务数量与系统的CPU核数来判断系统是否过载。具体地,若系统当前正在执行的任务数量大于系统的CPU核数,则表示系统过载,此时可以通过减小系统在当前时刻的当前服务请求阈值,从而得到系统在下一时刻的服务请求阈值,以达到丢弃足够多的服务调用请求,而保证剩下的服务调用请求不超过系统的处理能力,使得系统能够正常处理。若系统当前正在执行的任务数量小于系统的CPU核数,则表示系统未发生过载,即系统还有能力处理更多的服务调用请求,因此,此时可以通过增大系统在当前时刻的当前服务请求阈值,以得到系统在下一时刻的服务请求阈值,从而使得系统能够容忍适时的突发流量尖峰,以最大程度的对服务调用请求进行处理。若系统当前正在执行的任务数量等于系统的CPU核数,则表示系统进入一个相对稳定的状态,因此,可以将系统在当前时刻的当前服务请求阈值作为系统在下一时刻的服务请求阈值。需要说明的是,系统在当前时刻的当前服务请求阈值可以是为系统设置的初始服务请求阈值,也可以是基于系统的初始服务请求阈值并结合上述方法实时计算得到。具体地,系统的初始服务请求阈值可以是一个大于0的任意值,也可以是给定的一个经验值,例如可以是CPU核数的10倍。在本实施例中,无论系统的初始服务请求阈值设置的是多少,通过图1所示的方法都可以使其很快收敛到合适的值。

上述实施例中,基于系统当前正在执行的任务数量与系统的CPU核数之间的大小关系,而对系统在当前时刻的当前服务请求阈值进行调整,以得到系统在下一时刻的服务请求阈值,使得得到的服务请求阈值更加贴合系统自身情况,从而避免了人工配置阈值准确性不高的问题。

在一示例性实施例中,如图2所示,系统的资源数据包括系统的CPU核数,系统在当前时刻的当前负载信息包括系统当前正在执行的任务数量。则在步骤S120中,根据资源数据和当前负载信息之间的大小关系,计算系统在下一时刻的服务请求阈值,具体可以通过以下步骤实现:

在步骤S121中,获取系统在当前时刻的当前并发服务请求数以及当前服务请求阈值。

其中,当前并发服务请求数是指系统在当前时刻正在处理的服务调用请求的数量。其可以通过简单的计数实现,如系统每接收到一个服务调用请求则加1,每处理完一个服务调用请求则减1(无论成功还是失败)。因此,通过系统当前时刻的计数结果即可获取系统在当前时刻的当前并发服务请求数。当前服务请求阈值可以是为系统设置的初始服务请求阈值,也可以是基于系统的初始服务请求阈值并结合上述方法实时计算得到系统在当前时刻的服务请求阈值,在本实施例中,为了区分不同时刻的服务请求阈值,将系统在当前时刻的服务请求阈值称之为当前服务请求阈值。

在步骤S122中,根据第一设定值和系统的资源数据、系统在当前时刻的当前负载信息以及当前服务请求阈值,计算系统在下一时刻的服务请求阈值的第一估计值。

在本实施例中,根据第一设定值和系统的资源数据、系统在当前时刻的当前负载信息以及当前服务请求阈值,并基于设定的梯度下降算法计算系统在下一时刻的服务请求阈值的第一估计值。其中,第一设定值用于表征梯度下降算法中的学习率,其用于计算并限定第一估计值的大小。具体的,通过获取系统的资源数据与系统在当前时刻的当前负载信息之间的差值,并提取该差值与系统在当前时刻的当前负载信息之间的商,进而获取得到的商、第一设定值以及系统在当前时刻的当前服务请求阈值之间的乘积,从而得到系统在下一时刻的服务请求阈值的偏移量,获取系统在当前时刻的当前服务请求阈值与系统在下一时刻的服务请求阈值的偏移量之间的和,将该和确定为系统在下一时刻的服务请求阈值的第一估计值。

举例来说,以系统的资源数据为系统的CPU核数(通过CPU表示)、系统在当前时刻(即t时刻)的当前负载信息为系统在当前时刻正在执行的任务数量(通过Load(t)表示)为例进行说明,假设系统在当前时刻(即t时刻)的当前服务请求阈值为CT(t),第一设定值为α,其是一个大于或等于0且小于1的实数,用于表征梯度下降算法中的学习率,其可以控制第一估计值的迭代速度,在本实施例中,α为0.1时效果最佳。则基于设定的梯度下降算法计算系统在下一时刻(即t+1时刻)的服务请求阈值的第一估计值为:

在步骤S123中,根据第二设定值和系统在当前时刻的当前并发服务请求数,计算系统在下一时刻的服务请求阈值的第二估计值。

其中,第二设定值用于表征梯度下降算法中的伸缩率,其用于计算并限定第二估计值的大小。具体地,该第二设定值可以是一个大于1的常数,在本实施例中,可以通过该第二设定值控制第二估计值的最大值,从而防止第二估计值无限增长。在本实施例中,假设系统在当前时刻(即t时刻)的当前并发服务请求数为C(t),第二设定值为β,则获取系统在下一时刻(即t+1时刻)的服务请求阈值的第二估计值为:

CT(t+1)

即将系统在当前时刻的当前并发服务请求数C(t)与第二设定值β之间的乘积,作为系统在下一时刻的服务请求阈值的第二估计值。

在步骤S124中,提取系统在下一时刻的服务请求阈值的第一估计值和第二估计值中的最小值,将最小值作为系统在下一时刻的服务请求阈值。

具体地,将系统在下一时刻的服务请求阈值的第一估计值和第二估计值中的最小值作为系统在下一时刻的服务请求阈值。假设系统在下一时刻的服务请求阈值为CT(t+1),则有:

CT(t+1)=min(CT(t+1)

从上述公式可以看出,当Load>CPU时,CT(t+1)会趋向于减小,从而更容易导致服务调用请求丢弃,从而使得Load下降。并且Load越大,下降的速度越快,而Load越接近于CPU,则下降速度越慢。而当Load=CPU时,则此时是一个稳定的状态,即CT(t+1)将不再变化(现实中不太可能维持这个状态),只能尽量趋近,并围绕CPU来回小幅振荡。当Load

在上述实施例中,根据t时刻的各个参数值,并采用梯度下降算法估计t+1时刻的服务请求阈值,从而保证最终的负载信息会趋于接近或小于系统的资源数据,同时服务请求阈值也将趋于一个稳定的值,在实现动态调整服务请求阈值的同时,既可以使得系统能够容忍适时的突发流量尖峰,又能在过载发生时保障系统能够及时处理足够多的服务调用请求。

应该理解的是,虽然图1-2流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

图3是根据一示例性实施例示出的一种服务过载的处理装置框图。参照图3,该装置包括数据获取模块302,阈值估计模块304和服务处理模块306。

数据获取模块302,被配置为执行获取分布式系统架构中提供服务的系统的资源数据和系统在当前时刻的当前负载信息;

阈值估计模块304,被配置为执行根据资源数据和当前负载信息之间的大小关系,计算系统在下一时刻的服务请求阈值;

服务处理模块306,被配置为执行当系统在下一时刻接收到服务调用请求时,若系统的并发服务请求数小于服务请求阈值,则根据服务调用请求进行相应的服务调用;若系统的并发服务请求数大于或等于服务请求阈值,则丢弃服务调用请求。

在一示例性实施例中,系统的资源数据包括系统的CPU核数,系统在当前时刻的当前负载信息包括系统当前正在执行的任务数量;则阈值估计模块304被配置为执行:若系统当前正在执行的任务数量大于系统的CPU核数,则减小系统在当前时刻的当前服务请求阈值,得到系统在下一时刻的服务请求阈值;若系统当前正在执行的任务数量小于系统的CPU核数,则增大系统在当前时刻的当前服务请求阈值,得到系统在下一时刻的服务请求阈值;若系统当前正在执行的任务数量等于系统的CPU核数,则将系统在当前时刻的当前服务请求阈值作为系统在下一时刻的服务请求阈值。

在一示例性实施例中,阈值估计模块304包括:数据获取单元,被配置为执行获取系统在当前时刻的当前并发服务请求数以及当前服务请求阈值;第一估计值获取单元,被配置为执行根据第一设定值和系统的资源数据、系统在当前时刻的当前负载信息以及当前服务请求阈值,计算系统在下一时刻的服务请求阈值的第一估计值,其中,第一设定值用于表征梯度下降算法中的学习率,用于计算并限定所述第一估计值的大小;第二估计值获取单元,被配置为执行根据第二设定值和系统在当前时刻的当前并发服务请求数,计算系统在下一时刻的服务请求阈值的第二估计值,其中,第二设定值用于表征梯度下降算法中的伸缩率,用于计算并限定所述第二估计值的大小;服务请求阈值获取单元,被配置为执行提取系统在下一时刻的服务请求阈值的第一估计值和第二估计值中的最小值,将最小值作为系统在下一时刻的服务请求阈值。

在一示例性实施例中,第一估计值获取单元被配置为执行:获取系统的资源数据与系统在当前时刻的当前负载信息之间的差值;提取差值与系统在当前时刻的当前负载信息之间的商;获取所述商、第一设定值以及系统在当前时刻的当前服务请求阈值之间的乘积,得到系统在下一时刻的服务请求阈值的偏移量;获取系统在当前时刻的当前服务请求阈值与系统在下一时刻的服务请求阈值的偏移量之间的和,将所述和确定为系统在下一时刻的服务请求阈值的第一估计值。

在一示例性实施例中,第二估计值获取单元被配置为执行:获取系统在当前时刻的当前并发服务请求数与第二设定值之间的乘积,将乘积确定为系统在下一时刻的服务请求阈值的第二估计值。

在一示例性实施例中,第一设定值在[0,1)的区间中,第二设定值大于1。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图4是根据一示例性实施例示出的一种用于服务过载的处理方法的设备Z00的框图。例如,设备Z00可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。

参照图4,设备Z00可以包括以下一个或多个组件:处理组件Z02、存储器Z04、电力组件Z06、多媒体组件Z08、音频组件Z10、输入/输出(I/O)的接口Z12、传感器组件Z14以及通信组件Z16。

处理组件Z02通常控制设备Z00的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件Z02可以包括一个或多个处理器Z20来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件Z02可以包括一个或多个模块,便于处理组件Z02和其他组件之间的交互。例如,处理组件Z02可以包括多媒体模块,以方便多媒体组件Z08和处理组件Z02之间的交互。

存储器Z04被配置为存储各种类型的数据以支持在设备Z00的操作。这些数据的示例包括用于在设备Z00上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器Z04可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘或光盘。

电源组件Z06为设备Z00的各种组件提供电力。电源组件Z06可以包括电源管理系统,一个或多个电源,及其他与为设备Z00生成、管理和分配电力相关联的组件。

多媒体组件Z08包括在所述设备Z00和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件Z08包括一个前置摄像头和/或后置摄像头。当设备Z00处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件Z10被配置为输出和/或输入音频信号。例如,音频组件Z10包括一个麦克风(MIC),当设备Z00处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器Z04或经由通信组件Z16发送。在一些实施例中,音频组件Z10还包括一个扬声器,用于输出音频信号。

I/O接口Z12为处理组件Z02和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件Z14包括一个或多个传感器,用于为设备Z00提供各个方面的状态评估。例如,传感器组件Z14可以检测到设备Z00的打开/关闭状态,组件的相对定位,例如所述组件为设备Z00的显示器和小键盘,传感器组件Z14还可以检测设备Z00或设备Z00一个组件的位置改变,用户与设备Z00接触的存在或不存在,设备Z00方位或加速/减速和设备Z00的温度变化。传感器组件Z14可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件Z14还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件Z14还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。

通信组件Z16被配置为便于设备Z00和其他设备之间有线或无线方式的通信。设备Z00可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件Z16经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件Z16还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,设备Z00可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器Z04,上述指令可由设备Z00的处理器Z20执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 服务过载的处理方法、装置、电子设备及存储介质
  • 服务启动处理方法、装置、电子设备及可读存储介质
技术分类

06120112248493