一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

根因服务器定位方法以及根因服务器定位装置与流程

2021-12-17 19:40:00 来源:中国专利 TAG:


1.本发明涉及资源池网络运维监控技术,尤其涉及一种定位造成资源池出口流量突变的根因服务器的方法及装置。


背景技术:

2.资源池监控系统是云平台平稳运行的重要保障,而网络流量监控是资源池监控系统的一个重要组成部分,也是运维人员及时发现网络异常和排查网络故障的重要手段。
3.分布式网络监控系统对流量数据的采集方式可分为主动模式和被动模式两种。主动和被动是相对于采集流量数据的客户端而言的。主动模式是指客户端周期性地主动采集流量数据并返回给服务端,不需要服务端进行干预;被动模式是指服务端周期性地向客户端发出指令,客户端被动地接收请求并采集流量数据,然后返回给服务端。如果采用主动模式,可以减轻服务端的压力,但是由于各客户端自主采集数据,采集时间不同步,导致流量监测数据的时间戳不一定相同。如果采用被动模式,根据服务端的指令采集数据,可以缓解时间不同步的问题,但是当监控数百台服务器和网络设备时,服务端压力过大,可能无法及时收到最新数据。
4.在大规模的资源池监控中,由于监控对象众多,为减少服务器压力,一般采用主动模式监测网络流量变化,并且采样间隔设定在分钟级,而非秒级。由此导致实际采集的流量数据具有以下几个特点:
5.1)在相同的时间区间内,各端口的流量采样点的时间戳可能不一致,采样点的数量也可能不相同;
6.2)由于网络和设备性能的影响,各端口的采样时间间隔可能和设定值不一致,存在波动性的误差;
7.3)由于采样时间间隔在分钟级,监测的流量为此间隔内的平均值,无法体现流量的实际峰值变化;
8.4)由于采样时间不同步,采样间隔存在误差,导致各端口的流量数据无法在时间上建立一一对应的关系。
9.目前对网络流量的监测主要用来做流量值的异常检测,通过在线分析网络流量大小,及时发现流量值异常,生成告警信息。和流量值异常相比,流量突变是指流量在短时间内出现了大幅度的上升或下降,体现的是流量变化幅度的异常。即便某时刻的流量值没有超过报警阈值,也可能发生突变异常。
10.对于造成资源池出口流量突变的根因设备,目前缺少有效的手段进行自动化的排查和定位。专利cn106209404b提供了一种网络异常流量分析方法及系统。当侦测到指定端口出现流量异常时,计算与下级设备各上行端口流量变化的相似度;当相似度大于预设阈值时,选定为当前设备,然后继续逐级向下,直到确定根设备,并将此根设备确定为产生流量异常的根因设备。然而在专利cn106209404b的实施中,发现此方法存在两个突出问题:
11.1)对各端口采样数据的时间一致性要求高。根据此方法的相似度计算公式,在预
设的时间段内,各端口流量采样点的数量需要相同。实际中,各客户端流量的采样时间和采样间隔存在偏差,所以在相同的时间段内,各端口并不一定具备相同数量的流量采样点。
12.2)对根因设备的误判风险高。来自于下级设备的流量,会在上级的网络设备中汇聚和叠加;上级设备出口流量的异常,可能是多个不同的下级设备上行流量异常汇聚的结果。采用自上而下、逐级排查根设备的方法时,由于流量采样误差和流量叠加因素的存在,一旦中间计算出现偏差,选择了错误的设备分支,很可能导致误判根因设备。
13.因此,针对资源池出口流量突变问题,需要一种能够应对流量采样时间不同步、并降低根因设备误判风险的根因服务器快速定位方法及系统。


技术实现要素:

14.有鉴于此,本发明的目的在于提供一种针对造成资源池出口流量突变的根因服务器进行定位的方法及装置。
15.根据本发明的一个方面,提供一种根因服务器定位方法,用于定位造成包括多个服务器的资源池的出口流量突变的根因服务器,其特征在于,所述方法包括:
16.采集所述资源池的出口流量的采样数据和所述资源池内的各服务器的流出流量的采样数据;
17.利用所述资源池的出口流量的采样数据计算所述资源池的突变检测阈值,利用所述资源池的突变检测阈值对所述资源池的出口流量进行突变检测;
18.当检测到所述资源池的出口流量发生突变时,根据所述资源池内的各服务器的流出流量的采样数据计算各服务器的突变检测阈值,利用各服务器的突变检测阈值分别对各服务器的流出流量进行突变检测,得到各服务器的流量变化量;
19.根据各服务器的流量变化量确定造成所述资源池的出口流量突变的根因服务器。
20.优选地,在采集所述资源池的出口流量的采样数据时,按照第一采样频率对所述资源池的出口流量进行采样,得到所述资源池的出口流量的采样数据,在采集所述资源池内的各服务器的流出流量的采样数据时,按照与所述第一采样频率相同或者不同的第二采样频率对各服务器的流出流量进行采样,得到各服务器的的流出流量的采样数据,
21.所述采样数据为采样时间间隔内的流量变化平均值。
22.优选地,在计算突变检测阈值时,利用采样数据的四分位距计算突变检测阈值。
23.优选地,在对流量进行突变检测时,利用突变检测阈值和采样数据的1步差分和2步差分,检测流量是否突变。
24.优选地,计算所述资源池的突变检测阈值的步骤包括:
25.获取所述资源池的出口流量的与采样时刻[t1,t2,

,t
n
]对应的采样数据[x1,x2,

,x
n
],其中n是大于1的自然数;
[0026]
计算[x1,x2,

,x
n
]的第一四分位数q1和第三四分位数q3;
[0027]
计算第三四分位数与第一四分位数的差值,得到四分位距iqr,即
[0028]
iqr=q3-q1
[0029]
获取[x1,x2,

,x
n
]中的最大值x
max
和最小值x
min
,计算最大值x
max
和最小值x
min
的差值,得到极差rg,即
[0030]
rg=x
max-x
min
[0031]
突变检测阈值h的计算公式为
[0032][0033]
其中,w是大于0的常数。
[0034]
优选地,对所述资源池的出口流量进行突变检测的步骤包括:
[0035]
获取所述资源池的出口流量的与采样时刻t
n 1
对应的采样数据x
n 1
,计算1步差分d1=|x
n 1-x
n
|,并通过比较所述1步差分d1和所述资源池的突变检测阈值h来对所述资源池的出口流量进行突变检测。
[0036]
优选地,当通过比较所述1步差分d1和所述资源池的突变检测阈值h未检测到所述资源池的出口流量突变时,计算2步差分d2=|x
n 1-x
n-1
|,并通过比较2步差分d2和所述资源池的突变检测阈值h来对所述资源池的出口流量进行突变检测。
[0037]
优选地,当通过比较2步差分d2和所述资源池的突变检测阈值h未检测到所述资源池的出口流量突变时,获取所述资源池的出口流量的与采样时刻[t2,

,t
n
,t
n 1
]对应的采样数据[x2,

,x
n
,x
n 1
],并将采样时刻[t2,

,t
n
,t
n 1
]作为[t1,t2,

,t
n
],将采样数据[x2,

,x
n
,x
n 1
]作为[x1,x2,

,x
n
],重新计算所述资源池的突变检测阈值并利用重新计算出的所述资源池的突变检测阈值对所述资源池的出口流量进行突变检测。
[0038]
优选地,假设资源池内存在m个服务器,h
j
表示资源池内的第j个服务器的服务器突变检测阈值,j=1,2,

,m,计算第j个服务器的服务器突变检测阈值h
j
的步骤包括:
[0039]
获取第j个服务器的流出流量的与采样时刻对应的流出流量采样数据其中,k是大于1的自然数;
[0040]
计算的第一四分位数q1
j
和第三四分位数q3
j

[0041]
计算第三四分位数与第一四分位数的差值,得到四分位距iqr
j
,即
[0042]
iqr
j
=q3
j-q1
j
[0043]
获取中的最大值和最小值计算最大值和最小值的差值,得到极差rg
j
,即
[0044][0045]
突变检测阈值h
j
的计算公式为
[0046][0047]
其中,w
j
是大于0的常数。
[0048]
优选地,对第j个服务器的流出流量进行突变检测的步骤包括:
[0049]
获取第j个服务器的出口流量的与采样时刻对应的采样数据计算第j
个服务器的1步差分并通过比较所述1步差分和第j个服务器的突变检测阈值h
j
来对第j个服务器的流出流量进行突变检测。
[0050]
优选地,当通过比较第j个服务器的1步差分和第j个服务器的突变检测阈值h
j
未检测到第j个服务器的出口流量突变时,计算第j个服务器的2步差分并通过比较所述2步差分和第j个服务器的突变检测阈值h
j
来对第j个服务器的出口流量进行突变检测。
[0051]
优选地,利用下述公式(1),得到各服务器的突变检测结果[r1,

,r
j
,

,r
m
],
[0052][0053]
当r
j
为1时,表示第j个服务器的流出流量出现突变,利用下述公式(2)计算第j个服务器的流量变化量p
j
为,
[0054][0055]
当r
j
为0时,表示第j个服务器的流出流量未出现突变,第j个服务器的流量变化量p
j
为0,
[0056]
由此得到各服务器的流量变化量[p1,

,p
j
,

,p
m
]。
[0057]
优选地,确定根因服务器的步骤包括:
[0058]
统计各服务器的流出流量的突变检测结果[r1,

,r
j
,

,r
m
]中的r
j
等于1的次数c,
[0059]
当c=1时,将突变检测结果为1的服务器判定为第一根因服务器;
[0060]
当c=2时,比较突变检测结果为1的两个服务器的流量变化量的大小,将具有相对较大的流量变化量的服务器确定为第一根因服务器,将具有相对较小的流量变化量的服务器确定为第二根因服务器,
[0061]
当c≥3时,获取突变检测结果为1的与c的值相应数量的服务器的流量变化量,并将流量变化量按大小从高到低进行排序,选取具有前三名的流量变化量的服务器作为第一根因服务器、第二根因服务器和第三根因服务器。
[0062]
优选地,统计各服务器的流出流量的突变检测结果[r1,

,r
j
,

,r
m
]中的r
j
等于1的次数c,当c=0时,获取各服务器的与采样时刻对应的采样数据并将采样时刻作为将采样数据作为重新计算各服务器的突变检测阈值并利用重新计算出的各服务器的突变检测阈值分别对各服务器的流出流量进行突变检测,重新得到各服务器的流量变化量,并根据重新得到的各服务器的流量变化量确定根因服务器。
[0063]
根据本发明的另一个方面,提供一种根因服务器定位装置,用于定位造成包括多
个服务器的资源池的出口流量突变的根因服务器,所述根因服务器定位装置包括:
[0064]
数据采集模块,用于采集所述资源池的出口流量的采样数据和所述资源池内的各服务器的流出流量的采样数据;
[0065]
阈值计算模块,用于利用所述数据采集模块采集的所述资源池的出口流量的采样数据计算所述资源池的突变检测阈值,用于利用各服务器的流出流量的采样数据计算各服务器的突变检测阈值;
[0066]
突变检测模块,用于根据所述阈值计算模块计算出的所述资源池的突变检测阈值,对所述资源池的出口流量进行突变检测,用于根据阈值计算模块计算出的各服务器的突变检测阈值,对各服务器的流出流量进行突变检测;
[0067]
根因服务器定位模块,根据所述突变检测模块针对各服务器的流出流量的突变检测结果,确定造成所述资源池的出口流量突变的根因服务器。
[0068]
根据本发明的又一个方面,提供一种存储介质,其上存储有计算机程序指令,该程序被处理器执行时实现上述根因服务器定位方法。
[0069]
根据本发明,利用时间不同步的流量采样数据,检测资源池的出口流量的变化,当发现了资源池的出口流量突变时,能够快速排查并定位造成此突变的根因服务器,提高了定位根因服务器的准确率,降低了误判率。
[0070]
本发明通过独立突变检测、动态阈值更新、1步差分、2步差分以及延时一个采样点等方法,解决了流量采样时间不同步、采样间隔不准确、相同时间区间内采样点数量不一致的问题。当资源池出口流量发生突变时,通过排查相邻时间域内发生流量突变的服务器,确定引起资源池出口流量突变的根因服务器。相比于对流量采样时间一致性要求较高的方法,本发明更适用于采用主动模式的资源池大规模网络监控。
[0071]
当资源池出口流量发生突变时,直接检测各服务器的流出流量变化。相比于逐级向下检测流量变化相似度的方法,本发明提供的方法不仅缩短了设备检查路径,降低了计算复杂度,还降低了根因服务器的误判率。特别是当多个服务器流量异常引起资源池出口流量突变时,本发明的方法可以降低服务器的漏判率,提高根因服务器定位的准确率。
附图说明
[0072]
图1是本发明实施方式所涉及的资源池的一种网络结构图。
[0073]
图2是本发明实施方式所涉及的资源池出口流量突变根因服务器定位装置的结构图。
[0074]
图3是资源池出口流量突变根因服务器定位方法的流程图。
[0075]
图4是示出资源池的出口流量数据的突变检测的流程图。
[0076]
图5是示出得到各服务器的检测结果和流量变化量的流程图。
具体实施方式
[0077]
为了使本技术领域人员更好地理解本发明中的技术方案,下面结合附图和具体实施例,对本发明的技术方案作进一步描述。显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。
[0078]
图1是本发明实施方式所涉及的资源池的一种网络结构图。如图1所示,资源池包
括多个服务器102、4个接入交换机103、2个汇聚交换机104、2个核心交换机105、2个出口路由器101。服务器102与接入交换机103相连,接入交换机103通过汇聚交换机104和核心交换机105连接,核心交换机105与出口路由器101连接,出口路由器101与上层网络相连。资源池的网络结构可根据服务器数量和业务需求选择不同层次的交换机连接方式,并不限于图1所示的网络结构。即,服务器102、接入交换机103、汇聚交换机104、核心交换机105、出口路由器101的数量不限于图1所示的数量,另外,服务器102与出口路由器101之间的交换机的层次、连接方式以及数量也不限于图1所示的结构。
[0079]
本发明实施方式提供能够快速定位造成资源池的出口流量突变的服务器,在本发明实施方式中将造成资源池的出口流量突变的服务器称为根因服务器。图2为本发明实施方式所涉及的资源池出口流量突变根因服务器定位装置的结构图。如图2所示,资源池出口流量突变根因服务器定位装置包括数据采集模块201、数据存储模块202、数据读取模块203、阈值计算模块204、突变检测模块205、根因服务器定位模块206和结果显示模块207。
[0080]
其中,数据采集模块201负责采集资源池的出口流量数据和各服务器102的流出流量数据。其中,资源池的出口流量数据是通过采集出口路由器101的上行的出口流量数据来采集的。另外,资源池的出口流量数据可以是资源池中包含的所有出口路由器101的上行的出口流量的总和。数据采集模块201可以按预设采样频率采集出口路由器101的出口流量数据和各服务器102的流出流量数据,然后将采样的流量数据发送给数据存储模块202,同时将采样的流量数据发送给数据读取模块203。数据存储模块202将接收到的流量数据保存到历史数据库中,数据读取模块203将接收到的当前的流量数据进行缓存。另外,在本发明中,数据存储模块202并不是必需的,也可以不设置数据存储模块202,也可以由数据采集模块201采集流量数据之后进行保存。
[0081]
作为数据采集模块201的实现方式,可以利用zabbix开源软件实现数据采集模块201。在此,出口路由器101可以启用简单网络管理协议(snmp,simple network management protocol),然后在zabbix服务器(zabbix server)利用模板snmp接口(template snmp interface)对两个出口路由器101的上行端口进行流量监控,通过zabbix汇总检查(aggregate checks)功能中的求和(grpsum)功能对资源池的两个出口路由器101的上行流量进行聚合,从而得到资源池的出口流量数据。在每台服务器102上部署和配置zabbix代理(zabbix agent),启用主动模式,利用net.if.out和grpsum实现对各服务器102的流出流量的数据采集。
[0082]
数据读取模块203根据阈值计算模块204和突变检测模块205的需求,从数据存储模块202获取所需的历史采样数据和缓存中的当前采样数据。在本发明中,数据读取模块203也不是必需的,也可以不设置数据读取模块203,也可以由突变检测模块205和阈值计算模块204根据需要获取数据采集模块201所采集到的采样数据。换句话说,采样数据的存储和读取可以采用任何方式,并不局限于图2所示的方式。
[0083]
阈值计算模块204利用数据读取模块203获取所需的流量数据,然后计算相应的突变检测阈值,并将突变检测阈值发送给突变检测模块205。在阈值计算模块204中计算突变检测阈值的方法将在后述的图4的步骤402和图5的步骤502中详细说明。
[0084]
突变检测模块205利用数据读取模块203获取所需的流量数据,并从阈值计算模块204获取突变检测阈值,检测流量数据是否发生突变,并计算检测结果和流量变化量。在突
变检测模块205中检测流量数据是否发生突变的方法将在后述的图4的步骤403~407以及图5的步骤503~507中详细说明。
[0085]
突变检测模块205可以根据需要,将检测结果和流量变化量发送给根因服务器定位模块206和结果显示模块207。
[0086]
根因服务器定位模块206通过对资源池出口流量突变检测结果、资源池出口流量变化量、各服务器突变检测结果、发生突变的服务器流出流量变化量进行分析计算,确定引起资源池出口流量突变的根因服务器,并将结果发送给结果显示模块207。在根因服务器定位模块206中确定根因服务器的方法将在后述的图3的步骤309中详细说明。
[0087]
结果显示模块207用于输出突变检测结果、流量变化量、根因服务器信息。
[0088]
图3是资源池出口流量突变根因服务器定位方法的流程图,如图3所示,包括以下步骤:
[0089]
步骤301,采集所述资源池的出口流量的采样数据和所述资源池内的各服务器的流出流量的采样数据。
[0090]
作为一个例子,在采集所述资源池的出口流量的采样数据时,可以按照第一采样频率对所述资源池的出口流量进行采样,得到所述资源池的出口流量的采样数据。在采集所述资源池内的各服务器的流出流量的采样数据时,可以按照与所述第一采样频率相同或者不同的第二采样频率对各服务器的流出流量进行采样,得到各服务器的的流出流量的采样数据。在利用主动模式采集采样数据时,针对资源池的出口流量数据和针对各服务器的流出流量数据的采集时间可以不同步。
[0091]
所述资源池的出口流量的采样数据和所述资源池内的各服务器的流出流量的采样数据可以为采样时间间隔内的流量变化平均值。
[0092]
另外,该步骤301例如可以通过图2中的数据采集模块201来实现,如上所述,例如,可利用zabbix api,通过zabbix server和zabbixagent的流量监控来获取资源池的出口流量数据和各服务器的流出流量数据的采样数据。另外,资源池的出口流量数据和各服务器的流出流量数据的采集方式不限于本发明实施方式给出的方式。
[0093]
步骤302,利用所述资源池的出口流量的采样数据,计算所述资源池的突变检测阈值,利用所述资源池的突变检测阈值对所述资源池的出口流量进行突变检测。
[0094]
图4是示出步骤302的资源池的出口流量数据的突变检测的流程图,如图4所示,包括如下步骤。
[0095]
步骤401,按照预设时间窗口大小,获取当前时刻之前的资源池出口流量数据的历史采样数据[x1,x2,

,x
n
]和对应的采样时刻数据[t1,t2,

,t
n
]。
[0096]
该步骤例如可通过图2所示的数据读取模块203实现。
[0097]
步骤402,利用出口流量的采样数据[x1,x2,

,x
n
],计算突变检测阈值h,计算突变检测阈值h的方法为:
[0098]
计算[x1,x2,

,x
n
]的第一四分位数q1和第三四分位数q3;
[0099]
计算第三四分位数与第一四分位数的差值,得到四分位距iqr;
[0100]
所述四分位距iqr为
[0101]
iqr=q3-q1
[0102]
计算[x1,x2,

,x
n
]中最大值x
max
和最小值x
min
之间的差值,得到极差rg;
[0103]
所述极差rg为
[0104]
rg=x
max-x
min
[0105]
突变检测阈值h的计算公式为
[0106][0107]
其中,w为权重系数,w可以为大于0的数,根据需要设定,例如可以设定为4。
[0108]
本步骤402例如可以通过图2所示的阈值计算模块204实现,对阈值计算模块204输入采样数据[x1,x2,

,x
n
],则阈值计算模块204输出计算得到的突变检测阈值h。
[0109]
步骤403,获取资源池的出口流量数据的与下一个采样时刻t
n 1
对应的采样数据x
n 1
,并计算1步差分d1。
[0110]
其中,所述1步差分d1的计算公式为
[0111]
d1=|x
n 1-x
n
|
[0112]
步骤404,通过比较1步差分d1和突变检测阈值h来对资源池的出口流量进行突变检测,当1步差分d1小于突变检测阈值h时,判断为未检测到资源池的出口流量的突变,进入到步骤405,当1步差分d1大于或者等于突变检测阈值h时,判定为检测到资源池的出口流量的突变,进入到步骤408。
[0113]
步骤405,计算2步差分d2。
[0114]
所述2步差分d2的计算公式为
[0115]
d2=|x
n 1-x
n-1
|
[0116]
步骤406,通过比较2步差分d2和突变检测阈值h来对资源池的出口流量进行突变检测,当2步差分d2小于突变检测阈值h时,判断为未检测到资源池的出口流量的突变,进入到步骤407,当2步差分d2大于或者等于突变检测阈值h时,判断为检测到资源池的出口流量的突变,进入到步骤407。
[0117]
步骤407,计算检测结果r和流量变化量p,并输出检测结果r和流量变化量p。
[0118]
当步骤404或者步骤406中检测到资源池的出口流量的突变时,将检测结果r例如标记为1,当步骤404和步骤406中都未检测到资源池的出口流量的突变时,将检测结果r例如标记为0。
[0119]
检测结果r的计算公式可以表示为如下:
[0120][0121]
其中,当r为1时,表示资源池的出口流量出现突变,当r为0时,表示资源池的出口流量未出现突变。
[0122]
当在步骤404中检测到资源池的出口流量的突变时,流量变化量p可以用1步差分d1表示,当在步骤406中检测到资源池的出口流量的突变时,流量变化量p可以用2步差分d2表示。即,流量变化量p可以表示为如下:
[0123][0124]
另外,需要说明的是,根据需要,本步骤407中的流量变化量p也可以不计算。另外,
检测结果的表达方式也未必采用0和1的方式,只要能够识别是否检测到突变,则可以采用任意表达方式。
[0125]
另外,步骤403~407可以通过如图2所示的突变检测模块205实现,对突变检测模块205输入采样数据[x1,

,x
n
,x
n 1
],则突变检测模块205输出检测结果r和流量变化量p。
[0126]
接着返回到图3,继续说明资源池出口流量突变根因服务器定位方法。
[0127]
步骤303,判定是否检测到所述资源池的出口流量发生突变,如果是,则进入到步骤305,否则,进入到步骤304。例如,如果检测结果r为1,则进入到步骤305,如果检测结果为0,则进入到步骤304。
[0128]
步骤304,更新资源池的出口流量的采样数据和采样时刻数据,并返回到步骤302,基于更新后的采样数据重新计算资源池的突变检测阈值,并利用重新计算的突变检测阈值对资源池的出口流量进行突变检测,直至检测到所述资源池的出口流量突变为止。
[0129]
在本步骤304中,将时间窗口往后延一个采样时刻,即,将资源池的出口流量数据的采样数据序列[x1,x2,

,x
n
]更新为[x2,

,x
n
,x
n 1
],将采样时刻数据[t1,t2,

,t
n
]更新为[t2,

,t
n
,t
n 1
],并接收与下一个采样时刻t
n 2
对应的采样数据x
n 2
,然后返回到步骤302,重新计算相应的突变检测阈值,进行下一轮的突变检测。
[0130]
在经过步骤304之后进入到步骤302时,在步骤302中,更新后的采样数据[x2,

,x
n
,x
n 1
]被作为[x1,x2,

,x
n
],更新后的采样时刻数据[t2,

,t
n
,t
n 1
]被作为[t1,t2,

,t
n
],计算突变检测阈值h。另外,新获取的采样数据x
n 2
被作为x
n 1
,计算1步差分d1和2步差分d2。
[0131]
步骤305,根据所述资源池内的各服务器的流出流量的采样数据,计算各服务器的突变检测阈值,并利用各服务器的突变检测阈值分别对各服务器的流出流量进行突变检测,得到各服务器的检测结果和流量变化量。
[0132]
假设资源池内有m个服务器,图5示出关于第j个服务器得到服务器的检测结果和流量变化量的步骤,其中,j=1,2,

,m。
[0133]
步骤501,按照预设时间窗口大小,获取第j个服务器的流出流量的与采样时刻对应的采样数据其中,为资源池的出口流量的采样数据x
n 1
的采样时刻。因此,采样数据是指自时刻t
n 1
开始回溯的n 1个历史数据。
[0134]
本步骤501例如可通过图2所示的数据读取模块203实现。
[0135]
步骤502,利用第j个服务器的流出流量的采样数据计算第j个服务器的突变检测阈值h
j
,计算突变检测阈值h
j
的方法为:
[0136]
计算的第一四分位数q1
j
和第三四分位数q3
j

[0137]
计算第三四分位数与第一四分位数的差值,得到四分位距iqr
j

[0138]
所述四分位距iqr
j

[0139]
iqr
j
=q3
j-q1
j
[0140]
计算中的最大值和最小值计算最大值和最小
值的差值,得到极差rg
j

[0141]
所述极差rg
j

[0142][0143]
突变检测阈值h
j
的计算公式为
[0144][0145]
其中,w
j
是可以是大于0的常数,根据需要设定,例如可以设定为4。
[0146]
另外,需要说明的是,在本实施方式中,在计算各服务器的突变检测阈值时,利用了与计算资源池的突变检测阈值时相同的数量的采样数据,但本发明不限于此,在计算各服务器的突变检测阈值时,也可以利用与计算资源池的突变检测阈值时不同的数量的采样数据。即使采用不同数量的采样数据,计算突变检测阈值的方法可以是相同的。
[0147]
本步骤502例如可以通过图2所示的阈值计算模块204实现,对阈值计算模块204输入采样数据则阈值计算模块204输出计算得到的突变检测阈值h
j

[0148]
步骤503,利用第j个服务器的与采样时刻对应的采样数据并计算1步差分
[0149]
其中,所述1步差分d1的计算公式为
[0150][0151]
步骤504,通过比较1步差分和突变检测阈值h
j
来对第j个服务器的流出流量进行突变检测,当1步差分小于突变检测阈值h
j
时,判断为未检测到第j个服务器的流出流量的突变,进入到步骤505,当1步差分大于或者等于突变检测阈值h
j
时,判定为检测到第j个服务器的流出流量的突变,进入到步骤507。
[0152]
步骤505,计算2步差分
[0153]
所述2步差分的计算公式为
[0154][0155]
步骤506,通过比较2步差分和突变检测阈值h
j
来对第j个服务器的流出流量进行突变检测,当2步差分小于突变检测阈值h
j
时,判断为未检测到第j个服务器的流出流量的突变,当2步差分大于或者等于突变检测阈值h
j
时,判断为检测到第j个服务器的流出流量的突变。
[0156]
步骤507,计算检测结果r
j
和流量变化量p
j

[0157]
当步骤504或者步骤506中检测到第j个服务器的流出流量的突变时,将检测结果r
j
例如标记为1,当步骤504和步骤506中都未检测到第j个服务器的流出流量的突变时,将检测结果r
j
例如标记为0。
[0158]
检测结果r
j
的计算公式可以表示为如下:
[0159][0160]
其中,当r
j
为1时,表示第j个服务器的流出流量出现突变,当r
j
为0时,表示第j个服务器的流出流量未出现突变。
[0161]
当在步骤504中检测到第j个服务器的流出流量的突变时,流量变化量p
j
可以用1步差分表示,当在步骤506中检测到资源池的出口流量的突变时,流量变化量p
j
可以用2步差分表示。即,流量变化量p
j
可以表示为如下:
[0162][0163]
通过关于各服务器执行图5所示的步骤,得到各服务器的检测结果[r1,r2,

r
j
,

,r
m
]和流量变化量[p1,p2,

p
j
,

,p
m
]。其中,r
j
为第j个服务器的检测结果,p
j
为第j个服务器的流量变化量。
[0164]
另外,步骤503~507例如可以通过如图2所示的突变检测模块205实现,对突变检测模块205输入第j个服务器的流出流量的采样数据则突变检测模块205输出关于第j个服务器的突变检测结果r
j
和流量变化量p
j

[0165]
再次返回到图3进行说明。
[0166]
步骤306,根据各服务器的流量变化量判断是否存在造成所述资源池的出口流量突变的根因服务器。
[0167]
具体为,统计各服务器的流出流量的突变检测结果[r1,

,r
j
,

,r
m
]中的突变检测结果r
j
等于1的次数c,当c的值为0时,判断为不存在根因服务器,进入到步骤307,
[0168]
当c的值大于或者等于1时,判断为存在流出流量突变的服务器,进入到步骤309。
[0169]
步骤307,更新各服务器的采样数据,再次根据所述资源池内的各服务器的流出流量的采样数据,计算各服务器的突变检测阈值,并利用各服务器的突变检测阈值分别对各服务器的流出流量进行突变检测,得到各服务器的检测结果和流量变化量。
[0170]
在此更新各服务器的采样数据的方法为,获取各服务器的与下一个采样时刻对应的采样数据并将各服务器的流出流量的采样数据更新为将采样时刻更新为
[0171]
更新完各服务器的采样数据之后,更新后的采样时刻被作为
更新后的采样数据被作为新获取的被作为重新计算各服务器的突变检测阈值并利用重新计算的各服务器的突变检测阈值分别对各服务器的流出流量进行突变检测并重新得到各服务器的检测结果和流量变化量,这些重新计算的步骤同步骤305,可以采用图5所示的步骤。
[0172]
步骤308,根据各服务器的流量变化量判断是否存在造成所述资源池的出口流量突变的根因服务器,步骤308的判断方法同步骤306。
[0173]
当在步骤308中判断为存在根因服务器时,进入到步骤309,当在步骤308中判断为不存在根因服务器时,进入到步骤304更新资源池出口流量的采样数据和采样时刻之后,反复执行步骤302~309。
[0174]
步骤309,根据各服务器的流量变化量[p1,p2,

,p
m
],确定根因服务器,并输出根因服务器。
[0175]
根因服务器的确定方法为:
[0176]
统计各服务器的流出流量的突变检测结果[r1,

,r
j
,

,r
m
]中的突变检测结果r
j
等于1的次数c,
[0177]
当c=1时,表示有1个服务器的检测结果为1,即r
j
=1,并将r
j
=1的第j个服务器确定为第一根因服务器;
[0178]
当c=2时,表示有2个服务器的检测结果为1,即,r
i
=1、r
j
=1,并获取r
i
=1的第i个服务器的流量变化量p
i
和r
j
=1的第j个服务器的流量变化量p
j
,并比较第i个服务器的流量变化量p
i
和第j个服务器的流量变化量p
j
,将具有相对较大的流量变化量的服务器确定为第一根因服务器,将具有相对较小的流量变化量的服务器确定为第二根因服务器;
[0179]
当c≥3时,表示有与c的值对应的数量的服务器的检测结果为1,并获取检测结果为1的服务器的流量变化量,并将流量变化量按大小从高到低进行排序,选取前3名,分别将对应的服务器确定为第一根因服务器、第二根因服务器和第三根因服务器。
[0180]
另外,在步骤306和步骤308以及步骤309中,都统计了各服务器的流出流量的突变检测结果[r1,

,r
j
,

,r
m
]中的突变检测结果r
j
等于1的次数c,但也可以不统计突变检测结果r
j
等于1的次数c。例如,在步骤306和步骤308以及步骤309中,可以统计流量变化量[p1,p2,

p
j
,

,p
m
]中的p
j
为非零的次数c’,并根据c’的值来判断是否存在根因服务器以及确定根因服务器。这时,在检测各服务器的流出流量的突变时,可以不需要得出突变检测结果r
j
,而仅得出流量变化量p
j

[0181]
本步骤309例如可通过图2所示的根因服务器定位模块206实现,对根因服务器定位模块206输入各服务器的检测结果和流量变化量,根因服务器定位模块206即可根据各服务器的检测结果和流量变化量定位根因服务器。
[0182]
在本发明实施方式中,当在步骤308判断为不存在根因服务器时,说明根据步骤305和步骤307的检测结果都没有找到根因服务器,这表示资源池的出口流量的突变可能并非是因服务器的流出流量的突变而引起的,因此不再单独反复执行步骤305或者307,而是再次反复执行步骤302~309。
[0183]
根据本发明实施方式,利用时间不同步的流量采样数据,检测资源池的出口流量的变化,当发现了资源池的出口流量突变时,能够快速排查并定位造成此突变的根因服务
器,提高了定位根因服务器的准确率,降低了误判率。
[0184]
另外,在具体实现图3~图5所示的步骤时,可以在主进程启动后,进行进程池初始化,设定最大进程数。例如,当采用python语言实现时,可通过多进程(multiprocessing)模块的进程池(pool)进行进程池初始化,设定的最大进程数不小于2。
[0185]
另外,可以采用非阻塞方式apply_async将步骤305~309所述的根因服务器定位任务task请求提交给进程池pool。当任务请求提交到pool时,如果进程池中的进程数没有达到指定的最大值,pool就会启用一个空闲子进程来执行该任务请求;否则,任务请求等待池中一个进程结束,然后pool启用此空闲子进程来执行此根因服务器定位任务task。
[0186]
另外,本发明实施方式的资源池出口流量突变根因服务器定位装置可以通过处理电路来实现,数据采集模块201、数据存储模块202、数据读取模块203、阈值计算模块204、突变检测模块205、根因服务器定位模块206和结果显示模块207等各个单元仅是根据所实现的具体功能所划分的逻辑模块,而不是用于限制具体的实现方式。在实际实现时,上述各个单元可被实现为独立的物理实体,或者也可以由单个实体(例如,处理器(cpu或dsp等)、集成电路等)来实现。
[0187]
在另一些实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图3~5所对应实施方式中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0188]
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献