一种软件健康管理方法、装置、设备及存储介质制造方法及图纸

技术编号:33632173 阅读:9 留言:0更新日期:2022-06-02 01:37
本发明专利技术公开了一种软件健康管理方法、装置、设备及存储介质,涉及软件健康管理技术领域。本发明专利技术包括如下步骤:当检测到系统启动后,启动生命周期管理模块;根据预先设置的配置文件使生命周期管理模块对各个进程逐一进行启动;检测到生命周期管理模块启动后,启动高可用管理进程对;本发明专利技术通过配置文件配置进程的启动顺序、依赖关系、资源分配、和重启策略,通过一个高度可复原的管理进程(镜像对)和健康管理服务建立一套高可用的软件健康管理方法,并且可通过配置文件的方式做到线程级监控并且时间阈值可配置,保证整个系统软件减少停工时间,保持其服务的高度可用性,使得用户基本感受不到软件故障,提高用户体验。提高用户体验。提高用户体验。

【技术实现步骤摘要】
一种软件健康管理方法、装置、设备及存储介质


[0001]本专利技术属于软件健康管理
,特别是涉及一种软件健康管理方法、装置、设备及存储介质。

技术介绍

[0002]现代汽车功能越来越多,软件复杂度越来越高。每个系统中存在众多进程,每一个进程由若干线程组成。功能安全要求汽车软件具备可靠型和高可用性型,那么软件的健康管理至关重要。
[0003]一般情况下,当软件出现问题时的恢复机制是从头开始恢复,或者软件的健康管理只做到进程级的监控,在某个进程crash后只对此单个进程进行复归,但是从头开始恢复的代价很高,仅做进程级监控时也不能很好满足功能安全要求,可能会出现因为死锁等原因导致某个线程不能正常工作,出现这种情况时,系统的正常功能同样会受到影响。并且有些进程与其他进程是有依赖关系的,仅对单个问题进程的复归,可能出现复归后的进程与其他进程的数据及通信不一致情况,导致系统存在异常隐患。
[0004]一个系统中包含众多进程,每个进程中包含众多线程,传统方式通过健康管理进程监控其他进程,当检测到某个进程异常,直接重启或者杀死此进程并重启此进程,而这种方式存在以下问题:
[0005]1.若健康管理进程存在异常,则整个监控失效;
[0006]2.多个进程之间可能存在某种依赖关系,譬如进程2依赖于进程1,那么进程1的启动顺序要早于进程2,若运行中进程1异常,仅杀死并重启进程1的话,进程1与进程2存在依赖关系在进程1重启后某些初始状态或通信数据可能存在不对等,造成系统异常;
[0007]3.只做到了进程级监控,未做到线程级监控。如果线程有问题,一样可能导致系统性的风险,比如如果HMI(人机交互应用)中负责接收消息的线程出了问题,那么整个HMI都会停止更新,因此线程的监控也至关重要;4.未通过配置文件方式做到可配置。

技术实现思路

[0008]本专利技术的目的在于提供一种软件健康管理方法、装置、设备及存储介质,解决了现有的软件健康监控系统其监控方式可能造成软件系统异常的技术问题。
[0009]为达上述目的,本专利技术是通过以下技术方案实现的:
[0010]一种软件健康管理方法,所述方法包括:
[0011]当检测到系统启动后,启动生命周期管理模块;
[0012]根据预先设置的配置文件使生命周期管理模块对各个进程逐一进行启动;
[0013]检测到生命周期管理模块启动后,启动高可用管理进程对;
[0014]所述高可用管理进程对中的守护进程及镜像守护进程均处于启动状态,同时守护进程实时监控健康管理server进程;
[0015]当守护进程故障终止时,镜像守护进程获取守护进程故障前正确的相同的状态,
并接替守护进程成为新的守护进程;
[0016]新的守护进程创建一个新的镜像守护进程,且该新的镜像守护进程也处于启动状态。
[0017]高可用管理进程对具体的为:它是一对进程,进程A与其镜像守护进程同时存在,系统中运行进程A负责监控健康管理server进程,一个镜像守护进程也在运行,且永远准备好等待接管进程A的角色,镜像进程可以获取进程A故障前正确的相同的状态,当进程A本身被终止,那么其镜像守护进程将接管进程A的角色,并再为自己创建一个镜像守护进程,以此类推。因此此设计是高可用的,可极大减少软件停工时间。高可用管理进程对负责监控健康管理server进程,如发现异常会杀掉健康管理server进程,并由生命周期管理模块重新拉起。
[0018]可选的,所述守护进程实时监控健康管理server进程包括;
[0019]监控健康管理server进程是否异常;
[0020]当健康管理server进程出现异常时,终止健康管理server进程;
[0021]当健康管理server进程被终止时,通知生命周期管理模块重启健康管理server进程。
[0022]可选的,健康管理server进程用于监控其它线程包括:
[0023]被监控线程通过健康管理模块提供的client接口,通过进程间通信方式完成与server的连接,并定周期向server端发送心跳;
[0024]Server端接收并更新各线程的心跳时间;
[0025]Server端循环检测需要监控的线程心跳信息,并对心跳异常线程的进程相应处理(记录log、杀掉相关进程);
[0026]问题线程所在进程被杀掉,生命周期管理模块根据该进程的Crash恢复策略判断是否重启进程。
[0027]可选的,配置文件还包括:
[0028]配置文件中配置了进程间的依赖关系,如进程2依赖于进程1,如果进程1因为某些情况crash了,生命周期管理模块会同样将进程2杀死,然后再按照依赖关系依次启动进程1、进程2,此操作保证了系统各进程间的信息同步;
[0029]配置文件中配置了进程间的依赖关系,如进程2依赖于进程1,如果进程1因为某些情况crash了,生命周期管理模块会同样将进程2杀死,然后再按照依赖关系依次启动进程1、进程2,此操作保证了系统各进程间的信息同步;
[0030]配置文件中配置有需要监控的进程和线程的名单及时间阈值;
[0031]不同线程监控根据时间阈值的不同做不同的处理,时间阈值可以设为2档(2秒、5秒),根据被监控线程心跳丢失的时间阈值档位做不同处理;
[0032]有Client请求连接健康管理Server进程,如果Client在配置文件中的列表里,服务器端则添加Client并开始监测其状态;
[0033]如果Client名不在配置文件中列表里,则忽略该Client的连接请求,并记录错误log。
[0034]可选的,时间阈值的2档位具体包括:
[0035]当监控线程心跳丢失时间达到2秒即第一档位时,仅记录log处理,当丢失时间达
到5秒即第二档位时,需要杀掉线程所在进程。若问题线程所在进程被杀掉,生命周期管理模块根据该进程的Crash恢复策略判断是否重启进程。
[0036]可选的,生命周期管理模块的重启策略为:
[0037]通过配置文件配置进程1为自动重启策略,当进程1因为某些情况crash了,生命周期管理模块会重新启动进程1;
[0038]将系统中的服务和应用进程设置为自动重启。以保证其crash后可以重启,一般情况下可以都设为自动重启,但并不绝对,可根据设计需求自行配置。
[0039]可选的,健康管理server进程被Crash后的策略为:
[0040]健康管理server进程Crash之后,生命周期管理模块会重新启动它;
[0041]健康管理server进程被Crash的时间段内,因通信Server节点不存在了,Client会发送心跳失败;
[0042]Client发送心跳失败,会重新连接服务器,且包括以下两种情况:
[0043]1).连接成功,则再次发送心跳;
[0044]2).连接失败,会有retry连接本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件健康管理方法,其特征在于,所述方法包括:当检测到系统启动后,启动生命周期管理模块;根据预先设置的配置文件使生命周期管理模块对各个进程逐一进行启动;检测到生命周期管理模块启动后,启动高可用管理进程对;所述高可用管理进程对中的守护进程及镜像守护进程均处于启动状态,同时守护进程实时监控健康管理server进程;当守护进程故障终止时,镜像守护进程获取守护进程故障前正确的相同的状态,并接替守护进程成为新的守护进程;新的守护进程创建一个新的镜像守护进程,且该新的镜像守护进程也处于启动状态。2.如权利要求1所述的一种软件健康管理方法,其特征在于,所述守护进程实时监控健康管理server进程包括;监控健康管理server进程是否异常;当健康管理server进程出现异常时,终止健康管理server进程;当健康管理server进程被终止时,生命周期管理模块重启健康管理server进程。3.如权利要求1所述的一种软件健康管理方法,其特征在于,健康管理server进程用于监控其它线程包括:被监控线程通过健康管理模块提供的client接口,通过进程间通信方式完成与server的连接,并定周期向server端发送心跳;Server端接收并更新各线程的心跳时间;Server端循环检测需要监控的线程心跳信息,并对心跳异常线程的进程相应处理;问题线程所在进程被杀掉,生命周期管理模块根据该进程的Crash恢复策略判断是否重启进程。4.如权利要求1所述的一种软件健康管理方法,其特征在于,配置文件还包括:配置文件中配置了进程间的依赖关系,如进程2依赖于进程1,如果进程1因为某些情况crash了,生命周期管理模块会同样将进程2杀死,然后再按照依赖关系依次启动进程1、进程2;配置文件中还配置有需要监控的进程和线程的名单及时间阈值;不同线程监控根据时间阈值的不同做不同的处理,时间阈值可以设为2档,根据被监控线程心跳丢失的时间阈值档位做不同处理;有Client请求连接健康管理Server进程,如果Client在配置文件中的列表里,服务器端则添加Client并开始监测其状态;如果Client名不在配置文件中列表里,则忽略该Client的连接请求,并记录错误log。5.如权利要求4所述的一种软件健康管理方法,其特征在于,时间阈值的2档位具体包括:当监控线程心跳丢失时间达到...

【专利技术属性】
技术研发人员:刘昕郑红丽刘朝阳蔡旭
申请(专利权)人:中国第一汽车股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1