一种软件健康参数识别方法、装置、设备及介质与流程

文档序号:32434382发布日期:2022-12-06 17:03阅读:30来源:国知局
一种软件健康参数识别方法、装置、设备及介质与流程

1.本技术涉及计算机技术领域,特别是涉及一种软件健康参数识别方法、装置、计算设备及计算机可读存储介质。


背景技术:

2.健康参数指影响健康状态的参数。例如,对软件而言,软件的健康参数是对软件的健康状态存在影响的参数。在核电控制场景中,软件可以是分散控制系统(distributed control system,dcs)软件,例如服务器上运行的软件。软件在出现异常时,软件的健康参数也会随之发生变化。
3.业界提供了一种软件健康参数识别方法,该方法从系统层面对软件的健康参数进行识别。例如,识别操作系统中的cpu调度信息、网络管理信息、内存信息、硬盘访问信息等,然后利用统计学和人工识别的方式,确定软件的健康参数。
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.一方面,该方法通过建立4层次和4维度的软件健康参数识别体系,提出节点(node)-进程(process)-现场(thread)-函数(function)的4层架构体系和度量指标监控(metrics)-运行日志(logging)-配置信息(config)-故障时刻数据(dump)的4个维度,为软件健康参数识别提供理论指导,例如识别dcs软件的健康参数;
37.另一方面,通过该方法得到的健康参数,能够针对软件自身出现的故障进行故障识别和故障定位,为用户提供了较多的有效信息,进而以便于用户根据该健康参数在软件运行期间出现的故障进行即使修复,避免软件出现宕机等问题,提高了软件的运行效率和可靠性。
附图说明
38.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为本技术实施例提供的一种应用场景的示意图;
40.图2为本技术实施例提供的一种软件健康参数识别方法的流程图;
41.图3为本技术实施例提供的一种层次的示意图;
42.图4为本技术实施例提供的一种软件健康参数识别方法的流程图;
43.图5为本技术实施例提供的一种软件健康参数识别装置的示意图。
具体实施方式
44.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
45.为了便于本领域技术人员理解,下面先对本技术中所涉及的技术术语进行介绍。
46.健康参数指影响健康状态的参数。例如,对软件而言,软件的健康参数是对软件的健康状态存在影响的参数。通过软件的健康参数,能够确定软件的老化程度、故障原因等。
47.业界提供了一种软件健康参数的识别方法,该方法从系统层面对软件的健康参数进行识别。然而,从操作系统层面对软件的健康参数进行识别得到的健康参数,无法在软件运行期间,对软件自身出现的故障进行识别和故障定位,难以为用户提供与故障修复的参考信息。
48.有鉴于此,本技术实施例提供了一种软件健康参数识别方法。该方法可以由健康参数识别系统(为了便于描述,以下简称识别系统)执行。该方法包括识别系统从不同层次获得软件的运行参数,该层次包括节点层、进程层、线程层、和函数层;接着,从不同维度,对软件的不同层次的运行参数进行识别,得到识别结果,该识别结果包括不同层次对应的影响软件正常运行的健康参数,维度包括度量指标监控维度、运行日志维度、配置信息维度和故障时刻数据维度。如此,通过该方法得到的健康参数能够为用户提供更多的有效信息,以便用户对软件出现的故障进行修复;并且,该方法建立了4层和4维识别体系,使得到的健康参数更具有权威性,能够为软件的故障修复提供理论指导。
49.本技术实施例提供的软件健康参数识别方法可以应用于分散控制系统(distributed control system,dcs),如图1所示,该图示出了本技术实施例的应用场景图。
50.该场景中,识别系统可以对工程师站101、l1控制器102、l1网关103、操作员站104和服务器105中的运行的软件进行识别,以得到该软件对应的健康参数。通过该识别系统得到的健康参数,能够为软件在运行期间出现的故障提供参考信息,以便用户对该故障进行修复,提高了软件的运行效率和可靠性。
51.为了使得本技术的技术方案更加清楚、易于理解,下面以识别系统的角度对本申
请实施例提供的软件健康参数识别方法进行介绍。
52.参见图2,该图示出了一种软件健康参数识别方法的流程图,该方法包括:
53.s201:识别系统从不同层次获得软件的运行参数。
54.其中,不同层次包括节点(node)层、进程(process)层、线程(thread)层和函数(function)层。
55.在一些实施例中,节点层的层次高于进程层的层次,进程层的层次高于线程层的层次,线程层的层次高于函数层的层次。如图3所示,该图为本技术实施例提供的一种不同层次的示意图。
56.从图中可以看出,节点301包括至少一个进程302,进程302包括至少一个线程303,线程303包括至少一个函数304。
57.为了便于理解,下面举例说明。在一些示例中,软件与节点301对应时,则软件的多类功能分别与多个进程302对应,具体的一个类功能(例如多类功能中的第一类功能)中的多个子功能分别与多个线程对应,具体的一个子功能(例如多个子功能中的第一子功能)对应的多个值分别与多个函数304对应。
58.识别系统分别从不同层次,获得软件运行时的运行参数,该运行参数可以包括节点层参数、进程层参数、线程层参数和函数层参数。在一些实施例中,节点层参数包括至少一个参数、进程层参数包括至少一个参数、线程层参数包括至少一个参数、函数层参数包括至少一个参数。
59.s202:识别系统从不同维度,对软件的不同层次的运行参数进行识别,得到识别结果。
60.识别系统从不同层次获得软件的运行参数后,从不同维度,对软件的不同层次的运行参数进行识别,得到识别结果,该识别结果中不同层次对应的影响所述软件正常运行的健康参数。该健康参数可以是节点层的健康参数,也可以是进程成的健康参数,还可以是线程层的健康参数,也可以是函数层的健康参数。
61.其中,维度包括度量指标监控(metrics)维度、运行日志(logging)维度、配置信息(config)维度和故障时间数据(dump)维度。
62.度量指标监控是指监控软件运行中的实时数据。例如监控软件的每秒钟的请求数是多少、平均每个请求处理的时间是多少、请求处理的最长耗时是多少、请求处理的响应的直方图、请求处理正确响应率是多少、等待处理的请求队列长度是多少等。基于度量指标监控,能够获取软件的故障,例如告警异常等。
63.运行日志是指软件运行过程中对出现的事件所记录的文件、以对该事件进行描述。运行日志中可以记录软件出现故障对应的详情(如代码错误的位置等),基于该运行日志,能够定位到错误根源。在一些示例中,运行日志还可以对不同级别的事件进行区分,例如分为简单错误、一般错误、严重错误等,简单错误可以是一般的调用信息错误、一般错误可以是软件运行正常但某些功能不可用、严重错误可以是软件无法正常运行。
64.配置信息是指对软件进行配置的信息。在一些示例中,通过软件的配置信息能够识别代码异常。
65.故障时间数据是指软件运行过程中出现故障的时刻所对应的故障代码(通常由二进制的0、1组成)。通过故障时间数据,能够快速获取故障代码,以便快速对软件出现故障的
原因进行定位。
66.在一些实施例中,软件包括物理层软件和数据链路层软件中的至少一种。其中,物理层软件可以包括l1控制站上的软件、l1网关上的软件等,数据链路层软件可以包括服务器中运行的软件、操作员站中运行的软件、工程师站中运行的软件等。
67.为了便于理解,下面以进程层参数为例进行介绍。例如进程层参数包括第一进程参数和第二进程参数,识别系统分别从四个维度即度量指标监控(metrics)维度、运行日志(logging)维度、配置信息(config)维度和故障时间数据(dump)维度分别对第一进程参数和第二进程参数进行分析,进而确定进程层参数的健康参数,例如识别系统对第一进程参数和第二进程参数进行识别后,得到第二进程参数为进程层参数的健康参数。当然,在一些实施例中,进程层参数还可以包括更多个参数,例如10个参数,识别系统从10个参数中确定出3个参数为进程层参数的健康参数。
68.需要说明的是,以上仅仅是以进程层参数为例进行介绍,当然识别系统还可以对节点层参数、线程层参数、函数层参数进行识别,进而分别得到节点层参数的健康参数、线程层参数的健康参数、函数层参数的健康参数。
69.如此,识别系统能够得到不同层次对应的影响软件正常运行的健康参数。
70.上述方法中,通过建立4层次和4维度的软件健康参数识别体系,提出节点(node)-进程(process)-现场(thread)-函数(function)的4层架构体系和度量指标监控(metrics)-运行日志(logging)-配置信息(config)-故障时刻数据(dump)的4个维度,为软件健康参数识别提供理论指导。如此,通过该方法得到的健康参数,能够针对软件自身出现的故障进行故障识别和故障定位,为用户提供了较多的有效信息,进而以便于用户根据该健康参数在软件运行期间出现的故障进行即使修复,避免软件出现宕机等问题,提高了软件的运行效率和可靠性。
71.在一些实施例中,识别系统得到软件的健康参数后,还可以根据软件的健康参数对软件进行监控,例如实时监控。
72.参见图4,该图示出了又一种软件健康参数识别方法的流程图,该方法在s201和s202的基础上进一步包括:
73.s401:识别系统获取软件的健康参数的参数值。
74.识别系统通过上述方法确定软件的健康参数后,可以获取该健康参数对应的参数值,以对软件的运行状态进行监控。在一些示例中,可以通过应用探针的方式监控软件运行时,其健康参数对应的参数值。
75.s402:当健康参数的参数值与健康参数的参考值之差大于预设差值时,识别系统生成故障告警。
76.在一些示例中,识别系统中预先存储有健康参数的参考值,该参考值可以是软件正常运行时,健康参数的参数值所对应的参数区间的中间值。举例说明,软件正常运行时,健康参数的参数值所对应的参数区间为[5,9],该参数区间的中间值为7,因此识别系统可以将“7”作为健康参数的参考值。
[0077]
识别系统获取到上述健康参数的参数值后,可以将该参数值与参考值进行比较,当健康参数的参数值与健康参数的参考值之差大于预设差值时,则生成故障告警。其中,预设差值可以根据实际需要设定,例如预设差值可以为2、3等。
[0078]
s403:识别系统获取健康参数所对应的目标层次和维度,定位故障告警所在的目标子层。
[0079]
健康参数所对应的目标层次和维度是指确定健康参数所依赖的层次和维度,例如该健康参数来自进程层,对进程层参数进行分析时所依赖的维度为运行日志维度和配置信息维度。如此,识别系统可以根据目标层次和维度,对故障告警进行分析,进而定位故障告警所在的目标子层。该目标子层可以是进程层对应多个进程中的目标进程。
[0080]
s404:识别系统呈现目标子层。
[0081]
识别系统确定目标子层后,可以用过显示器将该目标子层呈现给用户,以便用户确定告警故障对应的具体位置,进而对该故障告警进行修复,以使软件恢复正常运行。
[0082]
在一些实施例中,维度可以通过软件的类型和软件的运行参数的特征来确定。例如,软件的类型可以包括自产品软件和非自产品软件,其中自产品软件是指l2层软件(服务器中运行的软件、操作员站中运行的软件、工程师站中运行的软件等)和l1层软件(l1控制站上的软件、l1网关上的软件等)。自产品软件的参数较为灵活,能够按照需要进行适应拓展,拓展性较强。非自产品软件包括操作系统软件和设备驱动软件等。非自产品软件的参数较为固定,无法拓展。基于上述自产品和非自产品的特点,得到上述四个维度。
[0083]
在一些实施例中,识别系统还可以同时监控自产品的健康参数的参数值(自产品参数值)和非自产品的健康参数的参数值(非自产品参数值),然后基于自产品参数值和自产品参考值进行比较,以及非自产品参数值和非自产品参考值进行比较,然后确定自产品和非自产品构成的系统的健康参数。如此,进一步提高了识别系统的应用范围。
[0084]
基于上述内容描述,本技术提供的软件健康参数识别方法,包括从不同层次获得软件的运行参数;所述层次包括节点层、进程层、线程层和函数层;从不同维度,对所述软件的不同层次的运行参数进行识别,得到识别结果;所述识别结果包括所述不同层次对应的影响所述软件正常运行的健康参数;所述维度包括度量指标监控维度、运行日志维度、配置信息维度和故障时刻数据维度。
[0085]
一方面,该方法通过建立4层次和4维度的软件健康参数识别体系,提出节点(node)-进程(process)-现场(thread)-函数(function)的4层架构体系和度量指标监控(metrics)-运行日志(logging)-配置信息(config)-故障时刻数据(dump)的4个维度,为软件健康参数识别提供理论指导,例如识别dcs软件的健康参数;
[0086]
另一方面,通过该方法得到的健康参数,能够针对软件自身出现的故障进行故障识别和故障定位,为用户提供了较多的有效信息,进而以便于用户根据该健康参数在软件运行期间出现的故障进行即使修复,避免软件出现宕机等问题,提高了软件的运行效率和可靠性。
[0087]
本技术实施例还提供了一种软件健康参数识别装置,如图5所示,该装置包括:
[0088]
层次获取单元501,用于从不同层次获得软件的运行参数;所述层次包括节点层、进程层、线程层和函数层;
[0089]
维度识别单元502,用于从不同维度,对所述软件的不同层次的运行参数进行识别,得到识别结果;所述识别结果包括所述不同层次对应的影响所述软件正常运行的健康参数;所述维度包括度量指标监控维度、运行日志维度、配置信息维度和故障时刻数据维度。
[0090]
可选的,所述装置还包括:监控单元503和告警单元504;
[0091]
所述监控单元503,用于获取所述软件的健康参数的参数值;
[0092]
所述告警单元504,用于当所述健康参数的参数值与所述健康参数的参考值之差大于预设差值时,生成故障告警。
[0093]
可选的,所述装置还包括:故障定位单元505;
[0094]
所述故障定位单元505,用于获取所述健康参数所对应的目标层次和维度,定位所述故障告警所在的目标子层。
[0095]
可选的,所述装置还包括:显示单元506;
[0096]
所述显示单元506,用于呈现所述目标子层。
[0097]
可选的,所述维度通过所述软件的类型和所述软件的运行参数的特征确定。
[0098]
可选的,所述软件包括物理层软件和数据链路层软件中的至少一种。
[0099]
本技术实施例还提供了一种计算设备,该计算设备包括处理器和存储器;
[0100]
所述处理器用于执行所述存储器中存储的指令,以使得所述计算设备执行上述方法实施例中任一项所述的方法。
[0101]
本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,所述指令指示上述计算设备执行上述方法实施例中任一项所述的方法。
[0102]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0103]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0104]
以上,仅是本技术的较佳实施例而已,并非对本技术作任何形式上的限制。虽然本技术已以较佳实施例揭露如上,然而并非用以限定本技术。任何熟悉本领域的技术人员,在不脱离本技术技术方案范围情况下,都可利用上述揭示的方法和技术内容对本技术技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本技术技术方案的内容,依据本技术的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本技术技术方案保护的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1