面向软件运行环境的智能监测方法与流程
本发明涉及软件运维监控,具体是面向软件运行环境的智能监测方法。
背景技术:
1、软件运行环境的状态监测是保障软件系统稳定运行的重要基础。当前,针对软件运行环境的状态监测与异常预警,普遍采用如下技术手段:对cpu利用率、内存利用率、磁盘输入输出等待时间、网络传输重传率等各项环境参数分别设定独立的固定告警阈值,当任一参数超出其预设阈值时触发告警;或者基于各项参数的历史时序数据进行趋势预测,当预测值超出预设范围时发出预警。
2、然而,上述现有技术方案中,各项环境参数均被独立监测,忽略了各维度参数之间天然的动态联动耦合关系。在实际运行场景中,cpu利用率的上升通常伴随内存占用的增加,磁盘io等待时间的延长可能引发网络重传率的升高,各维度参数的协同变化共同反映软件运行环境的整体稳态水平。当各参数独立正常但协同联动关系已发生结构性破缺时,系统实际上已处于不稳定状态,现有技术无法识别此类因协同耦合关系破缺而引发的隐性异常。
3、因此,需要一种能够从多维度参数协同耦合角度出发,对软件运行环境进行稳态感知并识别上述隐性异常的技术方案。
技术实现思路
1、本发明的目的在于提供面向软件运行环境的智能监测方法,以解决现有技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:面向软件运行环境的智能监测方法,
3、方法包括:
4、步骤s1:在软件正常运行的状态下,持续性采集若干个维度的软件运行环境参数,所述若干个维度的软件运行环境参数为cpu利用率、内存利用率、磁盘输入输出等待时间、tcp协议累计已发送报文段总数以及累计重传报文段总数;
5、步骤s2:选取预设基准时间窗口,对采集的各维度的软件运行环境参数分别进行稳态分布拟合,得到各维度的稳态概率分布区间;计算任意两个维度的软件运行环境参数之间的动态联动耦合系数,搭建跨维度耦合关联矩阵;整合各维度的稳态概率分布区间和跨维度耦合关联矩阵,构成软件运行环境专属的耦合稳态基准指纹;
6、步骤s3:按照预设固定采样周期,实时采集软件当前采样时间点的各维度的软件运行环境参数;计算当前各维度参数相对于对应稳态概率分布区间的单维偏离度,以及当前各维度参数之间的实际联动系数相对于所述跨维度耦合关联矩阵的耦合破缺度;对所述单维偏离度与所述耦合破缺度进行归一化处理,得到实时耦合漂移值;
7、步骤s4:当所述实时耦合漂移值超过预设自适应触发阈值、连续预设次数的采样周期内所述实时耦合漂移值均超过所述预设自适应触发阈值、且所述实时耦合漂移值相比上一次采样周期的耦合漂移值的增幅超过预设百分比阈值,同时所述耦合破缺度超过预设阈值时,判定软件运行环境产生异常,并记录首次触发采样时间点。
8、进一步的,步骤s1包括:
9、步骤s1-1:在软件正常运行的状态下,以固定采样周期t获得历史采样时间点,构建历史采样时间点集合timeset={t1,t2,…,ti,…,ti},其中t1,t2,…,ti,…,ti分别表示第1个,第2个,…,第i个,…,第i个历史采样时间点;
10、步骤s1-2:对于第i个历史采样时间点ti,采集若干个维度在第i个历史采样时间点ti的软件运行环境参数,包括第i个历史采样时间点ti的cpu利用率c(ti)、内存利用率m(ti)、磁盘输入输出等待时间d(ti)、tcp协议累计已发送报文段总数s(ti)以及累计重传报文段总数r(ti);
11、步骤s1-3:对于第i个历史采样时间点ti,计算第i个历史采样时间点ti的网络传输重传率:p(ti)=(r(ti)-r(ti-1))/(s(ti)-s(ti-1))×100%,其中s(ti-1)和r(ti-1)分别表示第i-1个历史采样时间点ti-1的tcp协议累计已发送报文段总数和累计重传报文段总数;当i=1时,不存在上一采样时间点,不计算网络传输重传率,标记为空值;
12、步骤s1-4:获取所有的历史采样时间点的cpu利用率,按照历史采样时间点先后顺序排列,得到cpu利用率时间序列,记为cseq;获取所有的历史采样时间点的内存利用率,按照历史采样时间点先后顺序排列,得到内存利用率时间序列,记为mseq;获取所有的历史采样时间点的磁盘输入输出等待时间,按照历史采样时间点先后顺序排列,得到磁盘输入输出等待时间序列,记为dseq;获取所有的历史采样时间点的网络传输重传率,按照历史采样时间点先后顺序排列,得到网络传输重传率时间序列,记为pseq。
13、进一步的,步骤s2包括:
14、步骤s2-1:选取历史采样时间点集合timeset中最新的连续a个历史采样时间点作为预设基准时间窗口;从步骤s1-4中生成的cpu利用率时间序列cseq、内存利用率时间序列mseq、磁盘输入输出等待时间序列dseq以及网络传输重传率时间序列pseq中,分别提取对应所述预设基准时间窗口内的各维度的软件运行环境参数的基准子序列,包括:cpu利用率基准子序列cbase={c(ti-a+1),c(ti-a+2),…,c(ti)};内存利用率基准子序列mbase={m(ti-a+1),m(ti-a+2),…,m(ti)};磁盘输入输出等待时间基准子序列dbase={d(ti-a+1),d(ti-a+2),…,d(ti)};网络传输重传率基准子序列pbase={p(ti-a+1),p(ti-a+2),…,p(ti)};
15、步骤s2-2:对于所述cpu利用率基准子序列、内存利用率基准子序列、磁盘输入输出等待时间基准子序列以及网络传输重传率基准子序列,分别采用核密度估计方法进行稳态分布拟合,得到各维度的软件运行环境参数的概率密度函数;对于任一维度的软件运行环境参数的基准子序列xbase={x(ti-a+1),x(ti-a+2),…,x(ti)},其中x表示cpu利用率、内存利用率、磁盘输入输出等待时间以及网络传输重传率中的一种;基准子序列的核密度估计公式为;其中,fest_x(x)为各维度的概率密度函数估计值,h为带宽参数,k(·)为高斯核函数,x(tj)为基准子序列中第j个历史采样时间点tj对应的参数值;基于所述各维度的概率密度函数估计值fest_x(x),采用数值积分方法求解累积分布函数,以预设置信水平(1-α)×100%分别计算各维度参数的置信区间下限和置信区间上限,其中α为预设显著性水平;置信区间下限xlower为满足fest_x(xlower)=α/2的分位数值,置信区间上限xupper为满足fest_x(xupper)=1-α/2的分位数值;得到各维度的软件运行环境参数的稳态概率分布区间,包括:cpu利用率稳态概率分布区间:[clower,cupper];内存利用率稳态概率分布区间:[mlower,mupper];磁盘输入输出等待时间稳态概率分布区间:[dlower,dupper];网络传输重传率稳态概率分布区间:[plower,pupper];
16、步骤s2-3:对于所述cpu利用率基准子序列、内存利用率基准子序列、磁盘输入输出等待时间基准子序列以及网络传输重传率基准子序列中任意两个维度的软件运行环境参数x和y的基准子序列xbase={x(ti-a+1),x(ti-a+2),…,x(ti)}和ybase={y(ti-a+1),y(ti-a+2),…,y(ti)},按照公式计算xbase与ybase之间的动态联动耦合系数:,其中,xbase_avg和ybase_avg分别为基准子序列xbase和ybase的均值;将任意两个维度之间的所述动态联动耦合系数作为矩阵元素,构建四阶对称矩阵,,其中,ρcm表示cpu利用率基准子序列与内存利用率基准子序列之间的动态联动耦合系数,ρcd表示cpu利用率基准子序列与磁盘输入输出等待时间基准子序列之间的动态联动耦合系数,ρcp表示cpu利用率基准子序列与网络传输重传率基准子序列之间的动态联动耦合系数,ρmd表示内存利用率基准子序列与磁盘输入输出等待时间基准子序列之间的动态联动耦合系数,ρmp表示内存利用率基准子序列与网络传输重传率基准子序列之间的动态联动耦合系数,ρdp表示磁盘输入输出等待时间基准子序列与网络传输重传率基准子序列之间的动态联动耦合系数;矩阵对角线元素恒为1,表征各维度的软件运行环境参数与自身的耦合系数;将所述四阶对称矩阵w作为跨维度耦合关联矩阵;
17、步骤s2-4:整合步骤s2-2得到的各维度稳态概率分布区间和步骤s2-3得到的跨维度耦合关联矩阵,构成软件运行环境的耦合稳态基准指纹。
18、进一步的,步骤s3包括:
19、步骤s3-1:在当前采样时间点tcur,以所述预设固定采样周期t采集软件当前采样时间点的各维度的软件运行环境参数,包括当前采样时间点tcur的cpu利用率c(tcur)、内存利用率m(tcur)、磁盘输入输出等待时间d(tcur)以及网络传输重传率p(tcur);
20、步骤s3-2:对于当前采样时间点tcur的各维度的软件运行环境参数,分别计算各维度稳态概率分布区间的单维偏离度,所述单维偏离度为当前参数值偏离各维度稳态概率分布区间中心的程度;cpu利用率的单维偏离度dc(tcur):;内存利用率的单维偏离度dm(tcur):;磁盘输入输出等待时间的单维偏离度dd(tcur):;网络传输重传率的单维偏离度dp(tcur):;将上述四个维度的单维偏离度进行算术平均,得到当前采样时间点的综合单维偏离度dsingle(tcur):dsingle(tcur)=(dc(tcur)+dm(tcur)+dd(tcur)+dp(tcur))/4;
21、步骤s3-3:对于当前采样时间点tcur,计算当前各维度的软件运行环境参数之间的实际联动系数与所述跨维度耦合关联矩阵w中对应基准联动系数之间的偏差,作为耦合破缺度;当前采样时间点四个维度的软件运行环境参数两两之间的实际联动系数sxy(tcur)为:,其中,σx和σy分别为基准子序列xbase和ybase的标准差;得到当前采样时间点的实际联动系数集合scur={scm(tcur),scd(tcur),scp(tcur),smd(tcur),smp(tcur),sdp(tcur)};计算当前采样时间点的耦合破缺度b(tcur):b(tcur)=(scm(tcur)-ρcm)2+(scd(tcur)-ρcd)2+(scp(tcur)-ρcp)2+(smd(tcur)-ρmd)2+(smp(tcur)-ρmp)2+(sdp(tcur)-ρdp)2;
22、步骤s3-4:对所述综合单维偏离度dsingle(tcur)和所述耦合破缺度b(tcur)分别赋予预设权重w1和w2并进行加权求和后映射至0至100区间,得到当前采样时间点的实时耦合漂移值f(tcur):f(tcur)=min(100,(w1⋅dsingle(tcur)+w2⋅b(tcur))/(w1+w2));其中w1为单维偏离度权重,w2为耦合破缺度权重,且w1>0,w2>0。
23、进一步的,步骤s4包括:
24、步骤s4-1:获取步骤s2-1中所述预设基准时间窗口内连续a个历史采样时间点对应的实时耦合漂移值,形成基准窗口漂移值序列fbase={f(ti-a+1),f(ti-a+2),…,f(ti)},计算基准窗口漂移值序列fbase的均值μf和标准差σf,按照公式计算自适应触发阈值fth:fth=μf+β⋅σf,其中,β为预设窗口漂移值标准差倍数系数,且β>0;
25、步骤s4-2:在当前采样时间点tcur,当以下四个条件同时满足时,判定软件运行环境产生异常;
26、条件一,所述实时耦合漂移值f(tcur)超过所述自适应触发阈值fth,即满足f(tcur)>fth;
27、条件二,从当前采样时间点tcur开始,向前连续n个采样时间点的实时耦合漂移值均超过所述自适应触发阈值,其中n为预设连续采样次数;
28、条件三,所述实时耦合漂移值f(tcur)相比上一采样时间点tcur-1的耦合漂移值f(tcur-1)的增幅超过预设百分比阈值δ:(f(tcur)-f(tcur-1))/(f(tcur-1))×100%>δ;
29、条件四,所述耦合破缺度b(tcur)超过预设耦合破缺度阈值bth;
30、步骤s4-3:当步骤s4-2中所述四个条件在当前采样时间点tcur首次被同时满足时,将当前采样时间点tcur记为首次触发采样时间点tfirst;当任一条件不满足时,判定当前时刻环境状态正常,不记录首次触发采样时间点。
31、与现有技术相比,本发明的有益效果是:
32、1.本发明通过构建包含各维度稳态概率分布区间和跨维度耦合关联矩阵的耦合稳态基准指纹,在实时监测时不仅计算各维度参数的单维偏离度,还计算当前各维度参数之间的实际联动系数与基准耦合关联矩阵之间的耦合破缺度。当各维度参数独立正常但相互之间的协同联动关系已发生结构性破缺时,耦合破缺度能够有效反映该隐性异常状态,解决了现有技术中各项环境参数独立监测、无法识别协同耦合关系破缺类隐性异常的技术问题。
33、2.本发明通过获取预设基准时间窗口内连续历史采样时间点对应的实时耦合漂移值,形成基准窗口漂移值序列,计算其均值和标准差,动态生成自适应触发阈值。该自适应触发阈值能够随运行环境的历史漂移水平自动调整,适应不同业务周期和环境波动幅度的变化,解决了现有固定阈值方案在高峰期易误报、低谷期易漏报的技术问题。
34、3.本发明在异常判定时,同时要求实时耦合漂移值超过自适应触发阈值、连续预设次数采样周期内均超过自适应触发阈值、实时耦合漂移值相比上一次采样周期的增幅超过预设百分比阈值、以及耦合破缺度超过预设阈值。四个条件同时满足方才判定异常,有效排除了单次偶发波动或个别参数瞬时抖动导致的误判,使异常判定结果更加准确可靠,同时首次触发时刻的记录为后续的根因定位提供了精准的时间锚点。