一种用于确定目标网络设备需分配的线程数的方法与设备与流程

文档序号:14676685发布日期:2018-06-12 21:35阅读:141来源:国知局
一种用于确定目标网络设备需分配的线程数的方法与设备与流程

本发明涉及互联网技术领域,尤其涉及一种用于确定目标网络设备需分配的线程数的技术。



背景技术:

在后台程序的设计中,吞吐量与响应时间是两个重要的指标,为了保证用户体验,系统的设计原则是在保证了一定的响应时间(如200ms以内)的前提下尽可能多的提高吞吐量。对于后台工程师而言,因服务器资源有限,计算资源是最稀缺资源,而为了满足吞吐量和响应时间这两个硬性需求,后台开发工程师需要尽可能的有效榨干服务器资源,这就需要合理分配线程数量。现有的线程数量分配方法诸如:1)对每一客户端请求单独使用一个线程响应,该方法虽然基本上可以保证响应时间,但若请求量过大但没有合理的线程销毁策略,容易分配过多的线程,这会导致整个服务器资源被占满,使得整台服务器处于无法响应状态;2)使用线程池,该方法支持广泛,且使用方便,只需设置几个核心参数(核心线程数、等待队列数、最大线程数)就可满足几乎全部的需求,但对于核心参数的设计没有理论依据,且不可修改,无法应对突发情况(如请求量激增),无法随着请求量激增而自适应分配线程数量,线程分配灵活性较低。



技术实现要素:

本发明的一个目的是提供一种用于确定目标网络设备需分配的线程数的方法与设备。

根据本发明的一个方面,提供了一种用于确定目标网络设备需分配的线程数的方法,其中,该方法包括:

确定目标网络设备中第一时间段内的线程数平均使用信息;

根据所述线程数平均使用信息及预定的线程满足率,确定所述目标网络设备中第二时间段内需分配的线程数,其中,所述第二时间段紧邻所述第一时间段之后且与所述第一时间段具有相同的时间间隔。

根据本发明的另一方面,还提供了一种用于确定目标网络设备需分配的线程数的线程确定设备,其中,该线程确定设备包括:

用于确定目标网络设备中第一时间段内的线程数平均使用信息的装置;

用于根据所述线程数平均使用信息及预定的线程满足率,确定所述目标网络设备中第二时间段内需分配的线程数的装置,其中,所述第二时间段紧邻所述第一时间段之后且与所述第一时间段具有相同的时间间隔。

与现有技术相比,本发明的一个优选实施例通过根据目标网络设备中第一时间段内的线程数平均使用信息及预定的线程满足率,确定该目标网络设备中第二时间段内需分配的线程数,其中,第二时间段紧邻第一时间段之后且与所述第一时间段具有相同的时间间隔,从而实现了基于网络设备中前一时间段内的线程数平均使用信息,并结合预定的线程满足率,确定该网络设备后一时间段内需分配的线程数,也即基于过往统计而动态修改线程池核心数从而自适应分配线程数量,不仅提高了线程分配灵活性,也提高了服务器资源利用率,并可应对很多突发情况。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1示出根据本发明一个方面的一种用于确定目标网络设备需分配的线程数的线程确定设备的设备示意图;

图2示出根据本发明另一个方面的一种用于确定目标网络设备需分配的线程数的方法流程图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本发明作进一步详细描述。

图1示出根据本发明一个方面的一种用于确定目标网络设备需分配的线程数的线程确定设备1,其中,线程确定设备1包括用于确定目标网络设备中第一时间段内的线程数平均使用信息的装置(以下简称“第一确定装置11”);用于根据所述线程数平均使用信息及预定的线程满足率,确定所述目标网络设备中第二时间段内需分配的线程数的装置(以下简称“第二确定装置12”),其中,所述第二时间段紧邻所述第一时间段之后且与所述第一时间段具有相同的时间间隔。具体地,第一确定装置11确定目标网络设备中第一时间段内的线程数平均使用信息;第二确定装置12根据所述线程数平均使用信息及预定的线程满足率,确定所述目标网络设备中第二时间段内需分配的线程数,其中,所述第二时间段紧邻所述第一时间段之后且与所述第一时间段具有相同的时间间隔。

在此,线程确定设备1包括但不限于网络设备、用户设备或网络设备与用户设备通过网络相集成所构成的设备。在此,所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现;或者由用户设备实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。在此,所述用户设备可以是任何一种可与用户通过键盘、鼠标、触摸板、触摸屏、或手写设备等方式进行人机交互的电子产品,例如计算机、手机、PDA、掌上电脑PPC或平板电脑等。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。本领域技术人员应能理解上述线程提供设备1仅为举例,其他现有的或今后可能出现的网络设备或用户设备如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,网络设备及用户设备均包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。

具体地,第一确定装置11确定目标网络设备中第一时间段内的线程数平均使用信息。具体地,第一确定装置11根据第一时间段的时间间隔与目标网络设备中在该第一时间段内每分钟线程使用数量确定所述线程数平均使用信息。在此,所述目标网络设备可以是运行后台程序的各种服务器,如文件服务器,数据库服务器,应用程序服务器,WEB服务器等。

例如,假设对于某一后台服务器,第一确定装置11预搜集该后台服务器在第一时间段(如前一时间段)如从T1至Tn时间段内的线程数平均使用信息,第一确定装置11可首先搜集该时间段内每分钟线程使用数量,如得到该时间段内从T1时刻开始每分钟线程使用数量分别为S1、S2、S3,…,Sn,则第一确定装置11可得到T1至Tn时间段内使用的线程数量总和为Sum=S1+S2+S3+…+Sn,然后,求平均值,即可得到从T1至Tn时间段内的线程数平均使用信息为(S1+S2+S3+…+Sn)/(Tn-T1)。

接着,第二确定装置12根据所述线程数平均使用信息及预定的线程满足率,确定所述目标网络设备中第二时间段内需分配的线程数,其中,所述第二时间段紧邻所述第一时间段之后且与所述第一时间段具有相同的时间间隔。

在此,本领域技术人员应当理解,在具体实施例中,所述第一时间段可以是前一时间段,所述第二时间段可以是后一时间段,该两个时间段相邻具有相同时间间隔。

具体地,第二确定装置12可根据所述线程数平均使用信息及预定的线程满足率,结合泊松分布,确定所述目标网络设备中第二时间段内需分配的线程数,如将所述线程数平均使用信息作为所述泊松分布的参数λ,将所述线程满足率与不同k值下的概率累积和进行比较,将与所述线程满足率相匹配的概率累积和所对应的数值k作为确定所述目标网络设备中第二时间段内需分配的线程数,其中,k为泊松分布的概率函数中的不同取值。

在此,所述预定的线程满足率是指目标网络设备内当前线程数对待执行的任务的满足度,也即,当前线程数能够响应的任务数量占总任务数量的百分比。

例如,接上例,假设第一确定装置11确定的线程数平均使用信息为2,即泊松分布的参数λ=2,而所述预定的线程满足率为80%,对于泊松分布,其概率函数为其中,各参数表示的含义如下:

P:未来一段时间内(即第二时间段内)平均使用k个线程的概率,

X:线程数变量,

k:X的取值(0,1,2,3...),

λ:线程数平均使用信息,也即过去一段时间(即第一时间段内)平均使用线程数的情况。

因k不同取值时,泊松分布的概率结果如下表1所示:

表1

由以上表1可以看出,在k=3时所积累的概率即P(0)+P(1)+P(2)+P(3)=0.857,k=4时所累积的概率=0.947,k=5时所累积的概率=0.983,k>=6时所累积的概率=1,以上情形均大于80%,则第二确定装置12可判断下一时间段内后台服务器需分配的线程数量可以为3、4、5、6及以上中的任意数值。

更优选地,若具有多个概率累积和与所述线程满足率相匹配,第二确定装置12可将所述多个概率累积和中与所述线程满足率之间差的绝对值最小的概率累积和所对应的数值k作为确定所述目标网络设备中第二时间段内需分配的线程数。

例如,接上例,如表1所示,有多个概率累积和与线程满足率80%相匹配,因在k=3时所积累的概率为0.857,其与80%之间差的绝对值最小,则第二确定装置12可确定下一时间段内后台服务器需分配的线程数量为3。

在此,本发明通过基于服务器中前一时间段内的线程数平均使用信息,并结合预定的线程满足率,确定该服务器后一时间段内需分配的线程数,也即基于过往统计而动态修改线程池核心数从而自适应分配线程数量,不仅提高了线程分配灵活性,也提高了服务器资源利用率,并可应对很多突发情况。

优选地,线程确定设备1的各个装置之间是持续不断工作的。具体地,第一确定装置11持续确定目标网络设备中第一时间段内的线程数平均使用信息;第二确定装置12持续根据所述线程数平均使用信息及预定的线程满足率,确定所述目标网络设备中第二时间段内需分配的线程数,其中,所述第二时间段紧邻所述第一时间段之后且与所述第一时间段具有相同的时间间隔。在此,本领域技术人员应当理解,所述持续是指线程确定设备1的各装置之间分别不断地进行目标网络设备中第一时间段内的线程数平均使用信息的确定,以及目标网络设备中第二时间段内需分配的线程数的确定,直至线程确定设备1在较长时间内停止确定目标网络设备中第一时间段内的线程数平均使用信息。

优选地,线程确定设备1还包括用于将所述目标网络设备中第二时间段内需分配的线程数提供给管理该目标网络设备的线程分配策略的线程池,以将其作为该线程池的核心线程数的装置(以下简称“提供装置”,未示出)。

例如,因第二确定装置12确定下一时间段内后台服务器需分配的线程数量为3,则提供装置将该数值提供给管理该后台服务器的线程分配策略的线程池,以将其作为该线程池的核心线程数,即管理该后台服务器的线程分配策略的线程池的核心线程数调整为数值3。

图2示出根据本发明另一个方面的一种用于确定目标网络设备需分配的线程数的方法流程图。

其中,该方法包括步骤S1和步骤S2。具体地,在步骤S1中,线程确定设备1确定目标网络设备中第一时间段内的线程数平均使用信息;在步骤S2中,线程确定设备1根据所述线程数平均使用信息及预定的线程满足率,确定所述目标网络设备中第二时间段内需分配的线程数,其中,所述第二时间段紧邻所述第一时间段之后且与所述第一时间段具有相同的时间间隔。

在此,线程确定设备1包括但不限于网络设备、用户设备或网络设备与用户设备通过网络相集成所构成的设备。在此,所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现;或者由用户设备实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。在此,所述用户设备可以是任何一种可与用户通过键盘、鼠标、触摸板、触摸屏、或手写设备等方式进行人机交互的电子产品,例如计算机、手机、PDA、掌上电脑PPC或平板电脑等。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。本领域技术人员应能理解上述线程提供设备1仅为举例,其他现有的或今后可能出现的网络设备或用户设备如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,网络设备及用户设备均包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。

具体地,在步骤S1中,线程确定设备1确定目标网络设备中第一时间段内的线程数平均使用信息。具体地,在步骤S1中,线程确定设备1根据第一时间段的时间间隔与目标网络设备中在该第一时间段内每分钟线程使用数量确定所述线程数平均使用信息。在此,所述目标网络设备可以是运行后台程序的各种服务器,如文件服务器,数据库服务器,应用程序服务器,WEB服务器等。

例如,假设对于某一后台服务器,在步骤S1中,线程确定设备1预搜集该后台服务器在第一时间段(如前一时间段)如从T1至Tn时间段内的线程数平均使用信息,在步骤S1中,线程确定设备1可首先搜集该时间段内每分钟线程使用数量,如得到该时间段内从T1时刻开始每分钟线程使用数量分别为S1、S2、S3,…,Sn,则在步骤S1中,线程确定设备1可得到T1至Tn时间段内使用的线程数量总和为Sum=S1+S2+S3+…+Sn,然后,求平均值,即可得到从T1至Tn时间段内的线程数平均使用信息为(S1+S2+S3+…+Sn)/(Tn-T1)。

接着,在步骤S2中,线程确定设备1根据所述线程数平均使用信息及预定的线程满足率,确定所述目标网络设备中第二时间段内需分配的线程数,其中,所述第二时间段紧邻所述第一时间段之后且与所述第一时间段具有相同的时间间隔。

在此,本领域技术人员应当理解,在具体实施例中,所述第一时间段可以是前一时间段,所述第二时间段可以是后一时间段,该两个时间段相邻具有相同时间间隔。

具体地,在步骤S2中,线程确定设备1可根据所述线程数平均使用信息及预定的线程满足率,结合泊松分布,确定所述目标网络设备中第二时间段内需分配的线程数,如将所述线程数平均使用信息作为所述泊松分布的参数λ,将所述线程满足率与不同k值下的概率累积和进行比较,将与所述线程满足率相匹配的概率累积和所对应的数值k作为确定所述目标网络设备中第二时间段内需分配的线程数,其中,k为泊松分布的概率函数中的不同取值。

在此,所述预定的线程满足率是指目标网络设备内当前线程数对待执行的任务的满足度,也即,当前线程数能够响应的任务数量占总任务数量的百分比。

例如,接上例,假设在步骤S1中,线程确定设备1确定的线程数平均使用信息为2,即泊松分布的参数λ=2,而所述预定的线程满足率为80%,对于泊松分布,其概率函数为其中,各参数表示的含义如下:

P:未来一段时间内(即第二时间段内)平均使用k个线程的概率,

X:线程数变量,

k:X的取值(0,1,2,3...),

λ:线程数平均使用信息,也即过去一段时间(即第一时间段内)平均使用线程数的情况。

因k不同取值时,泊松分布的概率结果如下表2所示:

表2

由以上表2可以看出,在k=3时所积累的概率即P(0)+P(1)+P(2)+P(3)=0.857,k=4时所累积的概率=0.947,k=5时所累积的概率=0.983,k>=6时所累积的概率=1,以上情形均大于80%,则在步骤S2中,线程确定设备1可判断下一时间段内后台服务器需分配的线程数量可以为3、4、5、6及以上中的任意数值。

更优选地,若具有多个概率累积和与所述线程满足率相匹配,在步骤S2中,线程确定设备1可将所述多个概率累积和中与所述线程满足率之间差的绝对值最小的概率累积和所对应的数值k作为确定所述目标网络设备中第二时间段内需分配的线程数。

例如,接上例,如表2所示,有多个概率累积和与线程满足率80%相匹配,因在k=3时所积累的概率为0.857,其与80%之间差的绝对值最小,则在步骤S2中,线程确定设备1可确定下一时间段内后台服务器需分配的线程数量为3。

在此,本发明通过基于服务器中前一时间段内的线程数平均使用信息,并结合预定的线程满足率,确定该服务器后一时间段内需分配的线程数,也即基于过往统计而动态修改线程池核心数从而自适应分配线程数量,不仅提高了线程分配灵活性,也提高了服务器资源利用率,并可应对很多突发情况。

优选地,线程确定设备1的各个步骤之间是持续不断工作的。具体地,在步骤S1中,线程确定设备1持续确定目标网络设备中第一时间段内的线程数平均使用信息;在步骤S2中,线程确定设备1持续根据所述线程数平均使用信息及预定的线程满足率,确定所述目标网络设备中第二时间段内需分配的线程数,其中,所述第二时间段紧邻所述第一时间段之后且与所述第一时间段具有相同的时间间隔。在此,本领域技术人员应当理解,所述持续是指线程确定设备1的各步骤之间分别不断地进行目标网络设备中第一时间段内的线程数平均使用信息的确定,以及目标网络设备中第二时间段内需分配的线程数的确定,直至线程确定设备1在较长时间内停止确定目标网络设备中第一时间段内的线程数平均使用信息。

优选地,该方法还包括步骤S3(未示出)。具体地,在步骤S3中,线程确定设备1将所述目标网络设备中第二时间段内需分配的线程数提供给管理该目标网络设备的线程分配策略的线程池,以将其作为该线程池的核心线程数。

例如,因在步骤S2中,线程确定设备1确定下一时间段内后台服务器需分配的线程数量为3,则在步骤S3中,线程确定设备1将该数值提供给管理该后台服务器的线程分配策略的线程池,以将其作为该线程池的核心线程数,即管理该后台服务器的线程分配策略的线程池的核心线程数调整为数值3。

需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在非易失性存储介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1