服务器内存动态监控方法、装置、设备及存储介质与流程

文档序号:26954413发布日期:2021-10-16 03:08阅读:144来源:国知局
服务器内存动态监控方法、装置、设备及存储介质与流程

1.本说明书涉及金融领域或其他领域的服务器内存监控技术,尤其是涉及一种服务器内存动态监控方法、装置、设备及存储介质。


背景技术:

2.近几年来,服务器集群规模呈现爆发性增长;与此同时,服务器内存等性能指标的使用情况也成了至关重要的关注点。目前,现有的服务器内存监控方式为:将各服务器的内存使用率与设定阈值进行比较的方式实现;其中,对于不同的应用服务器,其内存使用率阈值可以不同。然而,考虑到内存数据的特性,偶发性的内存使用率较高,或者内存使用率一直处于平稳且较高数值也可能并不属于异常现象。因此,现有的服务器内存监控方案的监控准确率不高;无法适应服务器集群规模化下的监控需求,亟需改进。


技术实现要素:

3.本说明书实施例的目的在于提供一种服务器内存动态监控方法、装置、设备及存储介质,以提高服务器集群内存监控的准确率。
4.为达到上述目的,一方面,本说明书实施例提供了一种服务器内存动态监控方法,包括:
5.获取目标服务器在第一时段内的内存使用率整体变化趋势,并获取所述目标服务器在第二时段内的内存使用率所覆盖的内存使用率子区间数;
6.在所述内存使用率整体变化趋势为上升趋势,或者所述内存使用率子区间数达到分片阈值时,判断所述目标服务器在所述第二时段内是否存在内存使用率突增;
7.当所述目标服务器在所述第二时段内存在内存使用率突增时,根据所述内存使用率整体变化趋势及所述第二时段内的内存使用率,确定所述目标服务器的内存监控结果。
8.本说明书实施例中,所述获取目标服务器在第一时段内的内存使用率整体变化趋势,包括:
9.获取所述目标服务器在所述第一时段内的内存使用率;
10.将所述第一时段内的内存使用率输入预设的趋势检验算法,获得所述目标服务器在所述第一时段内的内存使用率整体变化趋势。
11.本说明书实施例中,所述获取所述目标服务器在第二时段内的内存使用率所覆盖的内存使用率子区间数,包括:
12.获取所述目标服务器在所述第二时段内的内存使用率;
13.确定所述第二时段内的内存使用率的覆盖范围;
14.确定所述覆盖范围在内存使用率子区间集合中所覆盖的内存使用率子区间数。
15.本说明书实施例中,所述判断所述目标服务器在所述第二时段内是否存在内存使用率突增,包括:
16.确定所述目标服务器在所述第二时段内的内存使用率的滑动窗口差值序列;
17.根据所述滑动窗口差值序列生成多个滑窗子序列;
18.确定每个所述滑窗子序列内滑动窗口差值的和值;
19.当所述多个滑窗子序列中至少有一个滑窗子序列满足预设条件时,确认所述目标服务器在所述第二时段内存在内存使用率突增;
20.其中,所述预设条件包括:
21.滑窗子序列中位于末位的滑动窗口差值大于第一阈值,且该滑窗子序列内滑动窗口差值的和值大于第二阈值。
22.本说明书实施例中,所述根据所述内存使用率整体变化趋势及所述第二时段内的内存使用率,确定所述目标服务器的内存监控结果,包括:
23.确定所述内存使用率整体变化趋势的斜率;
24.确定所述第二时段对应的滑动窗口差值序列内滑动窗口差值的第一均值,并确定指定第二时段对应的滑动窗口差值序列内滑动窗口差值的第二均值;
25.当所述斜率大于斜率阈值,且所述第一均值大于所述第二均值时,确认所述目标服务器的内存存在异常。
26.本说明书实施例中,所述根据所述内存使用率整体变化趋势及所述第二时段内的内存使用率,确定所述目标服务器的内存监控结果,包括:
27.确定所述内存使用率整体变化趋势的斜率;
28.确定所述第二时段对应的滑动窗口差值序列内滑动窗口差值的第一标准差,并确定指定第二时段对应的滑动窗口差值序列内滑动窗口差值的第二标准差;
29.当所述斜率大于斜率阈值,且所述第一标准差大于所述第二标准差时,确认所述目标服务器的内存存在异常。
30.本说明书实施例中,所述确定所述内存使用率整体变化趋势的斜率,包括:
31.利用最小二乘法拟合所述第一时段内的内存使用率的变化曲线;
32.确定所述变化曲线的起止点的斜率,以作为所述内存使用率整体变化趋势的斜率。
33.本说明书实施例中,所述第一时段包括最近两周。
34.本说明书实施例中,所述第二时段包括最近三小时。
35.本说明书实施例中,所述指定第二时段包括上周最近三小时。
36.另一方面,本说明书实施例还提供了一种服务器内存动态监控装置,包括:
37.获取模块,用于获取目标服务器在第一时段内的内存使用率整体变化趋势,并获取所述目标服务器在第二时段内的内存使用率所覆盖的内存使用率子区间数;
38.判断模块,用于在所述内存使用率整体变化趋势为上升趋势,或者所述内存使用率子区间数达到分片阈值时,判断所述目标服务器在所述第二时段内是否存在内存使用率突增;
39.确定模块,用于当所述目标服务器在所述第二时段内存在内存使用率突增时,根据所述内存使用率整体变化趋势及所述第二时段内的内存使用率,确定所述目标服务器的内存监控结果。
40.另一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法
的指令。
41.另一方面,本说明书实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
42.由以上本说明书实施例提供的技术方案可见,本说明书实施例中,可以获取服务器的内存使用率整体变化趋势,并在整体变化趋势呈上升趋势下,执行判断服务器是否存在内存使用率突增,然后根据存使用率整体变化趋势和内存使用率突增情况确定服务器的内存监控结果;由于综合考虑到了内存使用率的整体变化趋势和突增,与传统技术中直接依据阈值判断服务器内存状态的方式相比,本说明书实施例的服务器内存动态监控方法更加准确。不仅如此,本说明书实施例仅在整体变化趋势呈上升趋势下,才去判断服务器是否存在内存使用率突增,如此,还可以大幅降低计算量,从而也提高了服务器内存动态监控的时效性。
附图说明
43.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
44.图1示出了本说明书一些实施例中服务器内存动态监控系统的示意图;
45.图2示出了本说明书一些实施例中服务器内存动态监控方法的流程图;
46.图3示出了本说明书一些实施例中内存使用率子区间划分示意图;
47.图4示出了本说明书一些实施例中内存使用率所覆盖的内存使用率子区间数的示意图;
48.图5示出了本说明书一些实施例计算自增长和累积增长的示意图;
49.图6示出了本说明书一些实施例中服务器内存动态监控装置的结构框图;
50.图7示出了本说明书一些实施例中计算机设备的结构框图。
51.【附图标记说明】
52.10、数据源;
53.20、服务器内存动态监控装置;
54.30、配置源;
55.40、告警展示端;
56.61、获取模块;
57.62、判断模块;
58.63、确定模块;
59.702、计算机设备;
60.704、处理器;
61.706、存储器;
62.708、驱动机构;
63.710、输入/输出接口;
64.712、输入设备;
65.714、输出设备;
66.716、呈现设备;
67.718、图形用户接口;
68.720、网络接口;
69.722、通信链路;
70.724、通信总线。
具体实施方式
71.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
72.图1示出了一些实施例中服务器内存动态监控系统的结构示意图。该服务器内存动态监控系统用于动态监控服务器集群的内存状态。其中,服务器集群可以为应用无服务器集群(例如银行数据中心服务器集群等)。服务器内存动态监控系统可以包括数据源10、服务器内存动态监控装置20、配置源30和告警展示端40。服务器内存动态监控装置20可以从多个数据源10获取服务器集群的内存使用率数据,并根据预设处理逻辑处理所述内存使用率数据,从而获得服务器集群的内存监控结果,并可以在某个或某些服务器的内存存在异常时,发送内存告警信息给告警展示端40,以便于通过告警展示端40展示给相关人员。其中,基于配置源30可以实现对服务器集群中的指定应用、指定节点或指定服务器进行异常监控。
73.一些实施例中,数据源10例如可以包括操作系统功耗管理系统(operating system power management,ospm)、服务器资源监控工具(例如nmon(nigel's monitor))等。配置源30例如可以包括配置管理数据库(configuration management database,cmdb)等。告警展示端40例如可以包括用户终端设备或服务器监控系统等。其中,用户终端设备可以包括但不限于显示器、台式电脑、移动终端(即智能手机)、平板电脑和/或笔记本电脑等。
74.本说明书实施例提供了一种服务器内存动态监控方法,其可以应用于上述的服务器内存动态监控装置侧。参考图2所示,在一些实施例中,所述服务器内存动态监控方法可以包括以下步骤:
75.s201、获取目标服务器在第一时段内的内存使用率整体变化趋势,并获取所述目标服务器在第二时段内的内存使用率所覆盖的内存使用率子区间数。
76.s202、在所述内存使用率整体变化趋势为上升趋势,或者所述内存使用率子区间数达到分片阈值时,判断所述目标服务器在所述第二时段内是否存在内存使用率突增;
77.s203、当所述目标服务器在所述第二时段内存在内存使用率突增时,根据所述内存使用率整体变化趋势及所述第二时段内的内存使用率,确定所述目标服务器的内存监控结果。
78.本说明书实施例中,可以获取服务器的内存使用率整体变化趋势,并在整体变化趋势呈上升趋势下,执行判断服务器是否存在内存使用率突增,然后根据存使用率整体变
化趋势和内存使用率突增情况确定服务器的内存监控结果;由于综合考虑到了内存使用率的整体变化趋势和突增,与传统技术中直接依据阈值判断服务器内存状态的方式相比,本说明书实施例的服务器内存动态监控方法更加准确。不仅如此,本说明书实施例仅在整体变化趋势呈上升趋势下,才去判断服务器是否存在内存使用率突增,如此,还可以大幅降低计算量,从而也提高了服务器内存动态监控的时效性。
79.目标服务器是指服务器集群中被纳入内存监控范围内的任何服务器。本说明书实施例中,第一时段是一个相对较长的最近时段,以便于全局性、整体性了解目标服务器在该相对较长最近时段内的整体变化趋势。例如,在一些实施例中,第一时段可以是最近两周(即最近14天),即可以获取目标服务器在最近两周内的内存使用率。第二时段是一个相对较短的最近时段,以便于局部性了解目标服务器在该相对较短最近时段内的局部变化趋势。例如,在一些实施例中,第二时段可以是最近三小时,即可以获取目标服务器在最近三小时内的内存使用率。本领域技术人员可以理解,上述的两周和三小时仅是示例性说明,在本说明书其他实施例中,第一时段和第二时段的具体时长可以根据需要适当设置,本说明书对此不作唯一限定。但是,无论如何选择,总体而言,第一时段的时长应远大于第二时段的时长。
80.在一些实施例中,所述获取目标服务器在第一时段内的内存使用率整体变化趋势,可以包括以下步骤:
81.(1)、获取所述目标服务器在所述第一时段内的内存使用率。
82.由于第一时段是一个相对较长的最近时段,其采样及处理频率可以适当降低,以降低计算机资源消耗。例如,以第一时段为最近两周为例,可以每天采集一次目标服务器在最近两周的内存使用率;如此可以每天仅计算一次目标服务器在最近两周内的内存使用率整体变化趋势。同样,这里每天采集一次并计算一次仅是示例性说明,在本说明书其他实施例中,采集和计算频率可以根据需要适当设置,本说明书对此不作唯一限定。
83.在一些实施例中,可以从多个数据源获取目标服务器在第一时段内的内存使用率整体变化趋势,如此可以避免单个数据源的局限性,从而有利于获得更高质量的内存使用率数据。
84.(2)、将所述第一时段内的内存使用率输入预设的趋势检验算法,获得所述目标服务器在所述第一时段内的内存使用率整体变化趋势。
85.在一些实施例中,将所述第一时段内的内存使用率输入mann

kendall趋势检验算法,从而可以获得所述目标服务器在第一时段内的内存使用率整体变化趋势。其中,mann

kendall趋势检验算法是非参数检验方法(非参数检验方法亦称无分布检验),其优点是不需要样本遵从一定的分布,也不受少数异常值的干扰,更适用于类型变量和顺序变量,计算也比较简便。在另一些实施例中,也可以通过曲线拟合方式,将目标服务器在第一时段内的内存使用率离散数据,拟合成一条内存使用率变化曲线,从而也可以获得目标服务器在第一时段内的内存使用率整体变化趋势。其中,曲线拟合例如可以包括但不限于最小二乘拟合等算法。如此,对于服务器集群中的所有被纳入监控范围内的服务器而言,通过上述方式可以得到每个服务器在第一时段内的一条内存使用率变化曲线。
86.本说明书实施例中,为了更直观地表达目标服务器在第二时段内的内存使用率的变化情况,可以预先将内存使用率区间(即0~100%)划分为多个子区间(或区间片段)。目
标服务器在第二时段内的内存使用率所覆盖的子区间越多,表明目标服务器在第二时段内的内存使用率波动越大;反之越小。例如,在图3所示的示例性实施例中,内存使用率可以划分为20个子区间,20个子区间可以形成内存使用率子区间集合,相邻子区间相差5个百分比,如[0%,5%]、[6%,10%]、[11%~15%]、

、[91%~95%]、[95%~100%]。其中,图3中的数字表示内存使用率百分比;例如:20表示20%,50表示50%。
[0087]
在一些实施例中,所述获取目标服务器在第二时段内的内存使用率所覆盖的内存使用率子区间数,可以包括以下步骤:
[0088]
(1)、获取所述目标服务器在所述第二时段内的内存使用率。
[0089]
为了有利于提高内存状态监控的时效性,获取目标服务器在第二时段内的内存使用率的采样频率可以相对较高。例如,在一实施例中,可以每隔若干分钟采集一次目标服务器在第二时段内的内存使用率。
[0090]
(2)确定所述第二时段内的内存使用率的覆盖范围。
[0091]
本说明书实施例中,采集到目标服务器在第二时段内的内存使用率是一些离散值,通过对这些离散值进行排序可以确定出其中的最小值和最大值时;以最小值和最大值作为区间端点所形成的区间,即为目标服务器在第二时段内的内存使用率的覆盖范围。例如,在一示例性实施例中,采集到的目标服务器在第二时段内的内存使用率的最大值为59%,最小值为20%,则对于本次采样而言,[20%,59%]即为目标服务器在第二时段内的内存使用率的覆盖范围。
[0092]
(3)确定所述覆盖范围在内存使用率子区间集合中所覆盖的内存使用率子区间数。
[0093]
由于内存使用率整个区间(即0~100%)被预先划分为多个子区间,每个子区间的端点值确定;在确定第二时段内的内存使用率的覆盖范围基础上,可以计算出覆盖范围在内存使用率子区间集合中所覆盖的内存使用率子区间数。例如,在图4所示的示例性实施例中,内存使用率可以划分为20个子区间;采集到的目标服务器在第二时段内的内存使用率的覆盖范围为18%~37%;通过计算可以得到该18%~37%覆盖范围覆盖了[15%,20%]、[21%,25%]、[26%,30%]、[31%,35%]以及[35%,40%],共5个内存使用率子区间。因此,可以确定该18%~37%覆盖范围在内存使用率子区间集合中所覆盖的内存使用率子区间数为5。
[0094]
当服务器的内存使用率整体变化趋势呈下降趋势或平稳趋势时,内存使用率短时的小幅波动一般不会对服务器造成实质性影响;而且考虑到判断目标服务器在第二时段内是否存在内存使用率突增的计算量较大;因此,在内存使用率整体变化趋势为上升趋势,或者内存使用率子区间数达到分片阈值时,才去判断目标服务器在第二时段内是否存在内存使用率突增,如此,对于内存使用率整体变化趋势呈下降趋势或平稳趋势的服务器,以及对于内存使用率子区间数未达到分片阈值服务器,可以无需参与本次内存使用率突增判断,从而可以实现在不降低内存监控准确率的基础上,大幅减少计算量,进而兼顾了服务器内存监控的时效性。需要说明的是,上述的平稳趋势并非仅包含总体或大致呈水平分布的内存使用率曲线,还包括幅值不超过一定值且呈周期性(或大致呈周期性)的曲线(例如类似于正弦曲线等)。
[0095]
在一些实施例中,所述判断目标服务器在第二时段内是否存在内存使用率突增,
可以包括以下步骤:
[0096]
(1)、确定所述目标服务器在所述第二时段内的内存使用率的滑动窗口差值序列。
[0097]
在一些实施例中,目标服务器在第二时段内的内存使用率可以是由多个离散数据点按照采样时间顺序排列的时间序列。可以预设一个指定大小的滑窗,并以一个离散数据点作为滑动步长,然后滑动计算滑窗两端的内存使用率差值;据此可以得到目标服务器在第二时段内的内存使用率的滑动窗口差值序列。
[0098]
例如,以第二时段为最近三小时为例,假设内存使用率的采样频率为5分钟一次(即每小时12次),则最近三小时共可以获得目标服务器的36个内存使用率(例如图5中的mem1~mem36)。以12个离散数据点作为滑窗大小,以一个离散数据点作为滑动步长,通过将这些内存使用率进行滑窗计算,可以得到25个自然增长增量(例如图5中的selfgrow1~selfgrow25)。具体而言:第1个自然增长增量selfgrow1可以根据公式selfgrow1=mem12

mem1计算得到;第2个自然增长增量selfgrow2可以根据公式selfgrow2=mem13

mem2计算得到;第3个自然增长增量selfgrow3可以根据公式selfgrow3=mem14

mem3计算得到;以此递推,第25个自然增长增量selfgrow25可以根据公式selfgrow25=mem36

mem25计算得到。
[0099]
将25个自然增长增量selfgrow1~selfgrow25按序排列仅可以得到一个滑动窗口差值序列,即目标服务器在所述第二时段内的内存使用率的滑动窗口差值序列。
[0100]
(2)、根据所述滑动窗口差值序列生成多个滑窗子序列。
[0101]
在一些实施例中,对于上一步得到的滑动窗口差值序列,也可以预设一个指定大小的滑窗,并以一个自然增长增量作为滑动步长,然后滑动选取滑窗内的自然增长增量,从而可以得到多个滑窗子序列。
[0102]
请继续参见图5所示,在一示例性实施例中,对于25个自然增长增量selfgrow1~selfgrow25,若以12个自然增长增量作为滑窗大小,以一个自然增长增量作为滑动步长,则通过滑动选取滑窗内的自然增长增量,可以得到如下所示的14个滑窗子序列。
[0103]
{selfgrow1,selfgrow2,selfgrow3,selfgrow4,selfgrow5,selfgrow6,selfgrow7,selfgrow8,selfgrow9,selfgrow10,selfgrow11,selfgrow12};
[0104]
{selfgrow2,selfgrow3,selfgrow4,selfgrow5,selfgrow6,selfgrow7,selfgrow8,selfgrow9,selfgrow10,selfgrow11,selfgrow12,selfgrow13};
[0105]
{selfgrow3,selfgrow4,selfgrow5,selfgrow6,selfgrow7,selfgrow8,selfgrow9,selfgrow10,selfgrow11,selfgrow12,selfgrow13,selfgrow14};
[0106]
{selfgrow4,selfgrow5,selfgrow6,selfgrow7,selfgrow8,selfgrow9,selfgrow10,selfgrow11,selfgrow12,selfgrow13,selfgrow14,selfgrow15};
[0107]
{selfgrow5,selfgrow6,selfgrow7,selfgrow8,selfgrow9,selfgrow10,selfgrow11,selfgrow12,selfgrow13,selfgrow14,selfgrow15,selfgrow16};
[0108]
{selfgrow6,selfgrow7,selfgrow8,selfgrow9,selfgrow10,selfgrow11,selfgrow12,selfgrow13,selfgrow14,selfgrow15,selfgrow16,selfgrow17};
[0109]
{selfgrow7,selfgrow8,selfgrow9,selfgrow10,selfgrow11,selfgrow12,selfgrow13,selfgrow14,selfgrow15,selfgrow16,selfgrow17,selfgrow18};
[0110]
{selfgrow8,selfgrow9,selfgrow10,selfgrow11,selfgrow12,selfgrow13,selfgrow14,selfgrow15,selfgrow16,selfgrow17,selfgrow18,selfgrow19};
[0111]
{selfgrow9,selfgrow10,selfgrow11,selfgrow12,selfgrow13,selfgrow14,selfgrow15,selfgrow16,selfgrow17,selfgrow18,selfgrow19,selfgrow20};
[0112]
{selfgrow10,selfgrow11,selfgrow12,selfgrow13,selfgrow14,selfgrow15,selfgrow16,selfgrow17,selfgrow18,selfgrow19,selfgrow20,selfgrow21};
[0113]
{selfgrow11,selfgrow12,selfgrow13,selfgrow14,selfgrow15,selfgrow16,selfgrow17,selfgrow18,selfgrow19,selfgrow20,selfgrow21,selfgrow22};
[0114]
{selfgrow12,selfgrow13,selfgrow14,selfgrow15,selfgrow16,selfgrow17,selfgrow18,selfgrow19,selfgrow20,selfgrow21,selfgrow22,selfgrow23};
[0115]
{selfgrow13,selfgrow14,selfgrow15,selfgrow16,selfgrow17,selfgrow18,selfgrow19,selfgrow20,selfgrow21,selfgrow22,selfgrow23,selfgrow24};
[0116]
{selfgrow14,selfgrow15,selfgrow16,selfgrow17,selfgrow18,selfgrow19,selfgrow20,selfgrow21,selfgrow22,selfgrow23,selfgrow24,selfgrow25};
[0117]
(3)、确定每个所述滑窗子序列内滑动窗口差值的和值。
[0118]
本说明书实施例中,滑动窗口差值即为自然增长增量。对于每个滑窗子序列,可以计算其内各自然增长增量之和(即和值)。
[0119]
例如,以上述的一个滑窗子序列{selfgrow1,selfgrow2,selfgrow3,selfgrow4,selfgrow5,selfgrow6,selfgrow7,selfgrow8,selfgrow9,selfgrow10,selfgrow11,selfgrow12}为例,通过公式sumgrow1=selfgrow1+selfgrow2+

+selfgrow12可以计算出该滑窗子序列内滑动窗口差值的和值sumgrow1。其中,每个滑窗子序列内滑动窗口差值的和值均可以作为一个累积增长增量(例如图5中的sumgrow1~sumgrow14)。目标服务器在第二时段内的内存使用率所覆盖的内存使用率子区间数,可以定性表示目标服务器在第二时段内存在的波动情况,但并不能定量反映这种短时波动的大小。通过上述的累积增长增量,可以定量地反映出目标服务器的内存使用率在短时变化的增幅。
[0120]
(4)、当所述多个滑窗子序列中至少有一个滑窗子序列满足预设条件时,确认所述目标服务器在所述第二时段内存在内存使用率突增。
[0121]
在一些实施例中,所述预设条件可以包括:滑窗子序列中位于末位的滑动窗口差值大于第一阈值,且该滑窗子序列内滑动窗口差值的和值大于第二阈值。滑窗子序列中位于末位的滑动窗口差值,即为滑窗子序列中的最后一个自然增长增量,例如以上述的一个滑窗子序列{selfgrow1,selfgrow2,selfgrow3,selfgrow4,selfgrow5,selfgrow6,selfgrow7,selfgrow8,selfgrow9,selfgrow10,selfgrow11,selfgrow12}为例,“selfgrow12”即为该滑窗子序列中位于末位的滑动窗口差值。第一阈值为可以为常数a;第二阈值为可以为常数a和b可以根据服务器的特性确定;m为滑窗大小,即单个滑窗子序列的个数,例如当一个滑窗子序列有12个自然增长增量时,则m=12。
[0122]
基于上述预设条件不仅可以识别出目标服务器的内存使用率在短时变化的趋势是增大还是减小,还可以识别出这种短时变化趋势的增幅大小,并据此判断目标服务器在短时内的内存使用率是否存在突增,从而可以有利于准确识别出目标服务器在短时内的内存使用率是否存在突增。因此,当多个滑窗子序列中至少有一个滑窗子序列满足上述预设条件时,可以确认所述目标服务器在所述第二时段内存在内存使用率突增。
[0123]
在一些实施例中,所述根据内存使用率整体变化趋势及第二时段内的内存使用率,确定所述目标服务器的内存监控结果,可以包括以下步骤:
[0124]
(1)、确定所述内存使用率整体变化趋势的斜率。
[0125]
在一些实施例中,可以利用最小二乘法拟合所述第一时段内的内存使用率的变化曲线;然后计算变化曲线的起止点的斜率(即第一时段内的起始点和终止点之间的斜率),并将其作为所述内存使用率整体变化趋势的斜率。
[0126]
(2)、确定所述第二时段对应的滑动窗口差值序列内滑动窗口差值的第一均值,并确定指定第二时段对应的滑动窗口差值序列内滑动窗口差值的第二均值。
[0127]
(3)、当所述斜率大于斜率阈值,且所述第一均值大于所述第二均值时,确认所述目标服务器的内存存在异常(即内存使用率异常);否则,可以确认所述目标服务器的内存正常(即内存使用率正常)。
[0128]
在另一些实施例中,所述根据内存使用率整体变化趋势及第二时段内的内存使用率,确定所述目标服务器的内存监控结果,也可以包括以下步骤:
[0129]
(1)、确定所述内存使用率整体变化趋势的斜率。
[0130]
(2)、确定所述第二时段对应的滑动窗口差值序列内滑动窗口差值的第一标准差,并确定指定第二时段对应的滑动窗口差值序列内滑动窗口差值的第二标准差。
[0131]
(3)、当所述斜率大于斜率阈值,且所述第一标准差大于所述第二标准差时,确认所述目标服务器的内存存在异常(即内存使用率异常);否则,可以确认所述目标服务器的内存正常(即内存使用率正常)。
[0132]
本说明书实施例中,上述的指定第二时段可以是指对应统计同期,具体可以根据需要适当设定。例如,在一示例性实施例中,以第一时段是最近两周,第二时段为最近三小时为例;则指定第二时段可以为上周最近三小时(即一周前的最近三小时)。若当前时间为2021年7月23日12:00,则第二时段为2021年7月23日9:00~12:00,则此时指定第二时段为2021年7月16日9:00~12:00。
[0133]
鉴于很多场景下内存使用率数据具有周期性特点(服务器在周期性业务高峰增长较快,此后会自动回收下降),本说明书实施例实现了可以从两方面对周期性增长进行过滤:
[0134]
1)长期缓增方面,即第一时段内的内存使用率整体变化趋势的斜率;以第一时段是两周为例,第一时段内的内存使用率整体变化趋势为上升趋势时,即便是存在周期性波动的情况,也需要关注是否回收完全;这里回收完全是指:每次周期性回收是否能下降到上一次的内存使用率基线,即在内存使用率的上升和下降前后内存无增长,换而言之,周期内累积增长为0(或小于设定)。
[0135]
2)短期突增方面,当前所涉及应用的业务周期大多为小时、日、周;以第一时段是最近两周,第二时段为最近三小时,指定第二时段为上周最近三小时为例,利用“当前三小时”及“上一周对应三小时”两个时间段的统计指标对比能过滤大多数的周期性波动,比如,若当前时间段虽处于突增状态,但增长幅度相比于上一时间段总体相似或相对较小,则可以视为内存使用率正常。
[0136]
在一些实施例中,当确认目标服务器的内存存在异常时,可以及时向告警展示端(例如用户终端、监控系统等)发送内存异常告警信息,以提醒相关人员注意或处理。其中,
向告警展示端发送内存异常告警信息的可以是通过邮件通知、短消息通知或事件通知等方式实现。
[0137]
例如,以邮件通知为例,可以通过向notes邮箱系统发送预警邮件的方式,将内存异常的服务器按“预警类型(如内存异常、负载均衡异常等)

应用

集群

ip

两周内存数据变化图表”依次递进的形式,通知相关运维人员和操作系统相关人员进行异常问题的排查与处理。再如,以事件通知为例,可以通过将内存异常告警信息发送至监控系统的告警事件列表,以通知运维值班岗处理相关内存告警。
[0138]
在另一些实施例中,在向告警展示端发送内存异常告警信息时,可以根据内存异常程度适当控制发送频率,以达到既能将内存异常告警信息有效通知相关人员,又不过多打扰相关人员的目的。例如,在一示例性实施例中,内存监控为每小时全量巡检一次,可以计算12小时内服务器已发邮件的数量,对于每次巡检得到的内存异常告警信息,可以在数据库中记录上述12小时内发送相同内存异常告警信息的告警邮件的数量。对于疑似内存异常但内存总体使用率不超过80%且增长不突出的异常服务器,12小时内可以仅发送一次告警邮件,来提醒相关人员进行分析与处理。其中,相同内存异常告警信息是指:针对同一个服务器的相同性质的内存异常告警。
[0139]
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
[0140]
与上述的第二时段内的内存使用率方法对应,本说明书实施例还提供了一种服务器内存动态监控装置,参考图6所示,在一些实施例中,所述服务器内存动态监控装置可以包括:
[0141]
获取模块61,可以用于获取目标服务器在第一时段内的内存使用率整体变化趋势,并获取所述目标服务器在第二时段内的内存使用率所覆盖的内存使用率子区间数;
[0142]
判断模块62,可以用于在所述内存使用率整体变化趋势为上升趋势,或者所述内存使用率子区间数达到分片阈值时,判断所述目标服务器在所述第二时段内是否存在内存使用率突增;
[0143]
确定模块63,可以用于当所述目标服务器在所述第二时段内存在内存使用率突增时,根据所述内存使用率整体变化趋势及所述第二时段内的内存使用率,确定所述目标服务器的内存监控结果。
[0144]
一些装置实施例中,所述获取目标服务器在第一时段内的内存使用率整体变化趋势,可以包括:
[0145]
获取所述目标服务器在所述第一时段内的内存使用率;
[0146]
将所述第一时段内的内存使用率输入预设的趋势检验算法,获得所述目标服务器在所述第一时段内的内存使用率整体变化趋势。
[0147]
一些装置实施例中,所述获取所述目标服务器在第二时段内的内存使用率所覆盖的内存使用率子区间数,可以包括:
[0148]
获取所述目标服务器在所述第二时段内的内存使用率;
[0149]
确定所述第二时段内的内存使用率的覆盖范围;
[0150]
确定所述覆盖范围在内存使用率子区间集合中所覆盖的内存使用率子区间数。
[0151]
一些装置实施例中,所述判断所述目标服务器在所述第二时段内是否存在内存使用率突增,可以包括:
[0152]
确定所述目标服务器在所述第二时段内的内存使用率的滑动窗口差值序列;
[0153]
根据所述滑动窗口差值序列生成多个滑窗子序列;
[0154]
确定每个所述滑窗子序列内滑动窗口差值的和值;
[0155]
当所述多个滑窗子序列中至少有一个滑窗子序列满足预设条件时,确认所述目标服务器在所述第二时段内存在内存使用率突增;
[0156]
其中,所述预设条件包括:
[0157]
滑窗子序列中位于末位的滑动窗口差值大于第一阈值,且该滑窗子序列内滑动窗口差值的和值大于第二阈值。
[0158]
一些装置实施例中,所述根据所述内存使用率整体变化趋势及所述第二时段内的内存使用率,确定所述目标服务器的内存监控结果,包括:
[0159]
确定所述内存使用率整体变化趋势的斜率;
[0160]
确定所述第二时段对应的滑动窗口差值序列内滑动窗口差值的第一均值,并确定指定第二时段对应的滑动窗口差值序列内滑动窗口差值的第二均值;
[0161]
当所述斜率大于斜率阈值,且所述第一均值大于所述第二均值时,确认所述目标服务器的内存存在异常。
[0162]
一些装置实施例中,所述根据所述内存使用率整体变化趋势及所述第二时段内的内存使用率,确定所述目标服务器的内存监控结果,可以包括:
[0163]
确定所述内存使用率整体变化趋势的斜率;
[0164]
确定所述第二时段对应的滑动窗口差值序列内滑动窗口差值的第一标准差,并确定指定第二时段对应的滑动窗口差值序列内滑动窗口差值的第二标准差;
[0165]
当所述斜率大于斜率阈值,且所述第一标准差大于所述第二标准差时,确认所述目标服务器的内存存在异常。
[0166]
一些装置实施例中,所述确定所述内存使用率整体变化趋势的斜率,包括:
[0167]
利用最小二乘法拟合所述第一时段内的内存使用率的变化曲线;
[0168]
确定所述变化曲线的起止点的斜率,以作为所述内存使用率整体变化趋势的斜率。
[0169]
一些装置实施例中,所述第一时段包括最近两周。
[0170]
一些装置实施例中,所述第二时段包括最近三小时。
[0171]
一些装置实施例中,所述指定第二时段包括上周最近三小时。
[0172]
在另一些实施例中,上述的服务器内存动态监控方法和装置,还可以将监控结果用于服务器集群的内存性能分析。例如,以性能分析为例,可以将监控结果发送至性能分析平台内,以进行内存性能(例如内存异常的预警记录和处理记录、内存实时数据、内存发展趋势等)可视化展示。
[0173]
在另一些实施例中,上述的服务器内存动态监控方法和装置,还可以将监控结果用于评估服务器集群的负载均衡情况;即通过对同一集群各服务器的内存状况评估,来主动预估该集群是否负载均衡异常,发现异常集群,则可以及时通知专业维护人员排查问题。
[0174]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本
说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0175]
本说明书的实施例还提供一种计算机设备。如图7所示,在本说明书一些实施例中,所述计算机设备702可以包括一个或多个处理器704,诸如一个或多个中央处理单元(cpu)或图形处理器(gpu),每个处理单元可以实现一个或多个硬件线程。计算机设备702还可以包括任何存储器706,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施例中,存储器706上并可在处理器704上运行的计算机程序,所述计算机程序被所述处理器704运行时,可以执行上述任一实施例所述的第二时段内的内存使用率方法的指令。非限制性的,比如,存储器706可以包括以下任一项或多种组合:任何类型的ram,任何类型的rom,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备702的固定或可移除部件。在一种情况下,当处理器704执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备702可以执行相关联指令的任一操作。计算机设备702还包括用于与任何存储器交互的一个或多个驱动机构708,诸如硬盘驱动机构、光盘驱动机构等。
[0176]
计算机设备702还可以包括输入/输出接口710(i/o),其用于接收各种输入(经由输入设备712)和用于提供各种输出(经由输出设备714)。一个具体输出机构可以包括呈现设备716和相关联的图形用户接口718(gui)。在其他实施例中,还可以不包括输入/输出接口710(i/o)、输入设备712以及输出设备714,仅作为网络中的一台计算机设备。计算机设备702还可以包括一个或多个网络接口720,其用于经由一个或多个通信链路722与其他设备交换数据。一个或多个通信总线724将上文所描述的部件耦合在一起。
[0177]
通信链路722可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路722可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
[0178]
本技术是参照本说明书一些实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0179]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0180]
这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0181]
在一个典型的配置中,计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0182]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0183]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本说明书中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0184]
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0185]
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理器来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0186]
还应理解,在本说明书实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0187]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0188]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1