一种用于linux操作系统的故障分析方法及系统
技术领域
1.本发明涉及计算机领域,尤其涉及一种用于linux操作系统的故障分析方法及系统。
背景技术:2.linux,全称gnu/linux,是一种免费使用和自由传播的类unix操作系统,其内核由林纳斯
·
本纳第克特
·
托瓦兹于1991年10月5日首次发布,它主要受到minix和unix思想的启发,是一个基于posix的多用户、多任务、支持多线程和多cpu的操作系统。它能运行主要的unix工具软件、应用程序和网络协议。它支持32位和64位硬件。linux继承了unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的red hat enterprise linux、suse、oracle linux等。
3.现有的linux操作系统相对比较复杂,产生故障的原因有很多,操作系统信息数量巨大,而且在内核启动时如果有故障发生则不能正常启动,需要技术人员手动查看操作系统信息进行分析,找到相应的故障信息,解决出现的故障问题。因此本发明设计了一种用于linux操作系统的故障分析方法。
技术实现要素:4.本发明提供了一种用于linux操作系统的故障分析方法,包括:配置linux操作系统从内核;启动linux操作系统主内核,从内核监测主内核启动情况;若操作系统从内核监测到主内核出现系统崩溃,则根据从内核存储日志中记录的当前内存数据、调用堆栈信息和寄存器信息,确定系统崩溃类型;操作系统从内核依据系统崩溃类型设置系统故障恢复策略,重启linux操作系统主内核,linux操作系统主内核依据系统故障恢复策略进行主内核启动;操作系统主内核正常启动后,监测应用层面运行情况,若监测到应用层出现应用崩溃,则获取应用数据确定应用故障类型;操作系统主内核依据应用故障类型设置应用故障恢复策略,重启应用,依据应用故障恢复策略进行应用重启。
5.如上所述的一种用于linux操作系统的故障分析方法,其中,开启设备后立即配置操作系统从内核,由从内核进行主内核的启动监控,并且由操作系统从内核进行主内核启动数据的存储。
6.如上所述的一种用于linux操作系统的故障分析方法,其中,操作系统从内核根据从内核存储日志中记录的当前内存数据、调用堆栈信息和寄存器信息,确定系统崩溃类型,具体包括如下子步骤:收集操作系统主内核出现系统崩溃时的故障数据和故障类型,故障数据包括内存
数据、调用堆栈信息和寄存器信息,提取系统崩溃特征,得到特征向量集;对特征向量集中的每个系统崩溃特征进行特征权重计算,得到崩溃特征文本向量集,将崩溃特征文本向量集输入系统崩溃分类模型,训练系统崩溃分类模型得到不同的子分类模型,分别利用各个子分类模型对崩溃特征文本向量集进行分类,通过分类结果估计得到各个子分类模型的权重的集合;寻找权重的集合中的每个权重对应的最优值,通过各个子分类模型和其对应的权重的最优值的组合确定系统崩溃类型。
7.如上所述的一种用于linux操作系统的故障分析方法,其中,系统崩溃类型包括硬件故障和操作系统故障,硬件故障对应设置的故障恢复策略为更换硬件设备,操作系统故障包括文件系统配置不当、非法关机、linux内核崩溃、系统引导程序出现问题,则设置对应的故障恢复策略为linux启动时自动分析和检查系统分区,如果发现文件系统有简单的错误,则自动修复,如果文件系统破坏比较严重,则进入用户模式提示用户手动恢复。
8.如上所述的一种用于linux操作系统的故障分析方法,其中,应用数据包括应用所占cpu信息和内存信息、系统版本、应用版本、应用权限、应用存储数据;获取应用数据确定应用故障类型,具体包括:检查应用所占cpu信息和内存信息,若cpu信息或内存信息过低,则确定发生应用闪退故障;检查系统版本和应用版本,若应用版本低不能兼容系统版本,则确定发生应用版本错误故障;检查应用权限,若应用为限制使用权限,则确定发生应用权限故障;检查应用存储数据,若应用数据被删除,则确定发生应用数据故障。
9.本发明还提供一种用于linux操作系统的故障分析系统,包括:操作系统故障分析子系统,用于配置linux操作系统从内核;启动linux操作系统主内核,从内核监测主内核启动情况;若操作系统从内核监测到主内核出现系统崩溃,则根据从内核存储日志中记录的当前内存数据、调用堆栈信息和寄存器信息,确定系统崩溃类型;操作系统从内核依据系统崩溃类型设置系统故障恢复策略,重启linux操作系统主内核,linux操作系统主内核依据系统故障恢复策略进行主内核启动;应用程序故障分析子系统,用于在操作系统主内核正常启动后,监测应用层面运行情况,若监测到应用层出现应用崩溃,则获取应用数据确定应用故障类型;操作系统主内核依据应用故障类型设置应用故障恢复策略,重启应用,依据应用故障恢复策略进行应用重启。
10.如上所述的一种用于linux操作系统的故障分析系统,其中,开启设备后立即配置操作系统从内核,由从内核进行主内核的启动监控,并且由操作系统从内核进行主内核启动数据的存储。
11.如上所述的一种用于linux操作系统的故障分析系统,其中,操作系统从内核根据从内核存储日志中记录的当前内存数据、调用堆栈信息和寄存器信息,确定系统崩溃类型,具体包括如下子步骤:收集操作系统主内核出现系统崩溃时的故障数据和故障类型,故障数据包括内存数据、调用堆栈信息和寄存器信息,提取系统崩溃特征,得到特征向量集;
对特征向量集中的每个系统崩溃特征进行特征权重计算,得到崩溃特征文本向量集,将崩溃特征文本向量集输入系统崩溃分类模型,训练系统崩溃分类模型得到不同的子分类模型,分别利用各个子分类模型对崩溃特征文本向量集进行分类,通过分类结果估计得到各个子分类模型的权重的集合;寻找权重的集合中的每个权重对应的最优值,通过各个子分类模型和其对应的权重的最优值的组合确定系统崩溃类型。
12.如上所述的一种用于linux操作系统的故障分析系统,其中,系统崩溃类型包括硬件故障和操作系统故障,硬件故障对应设置的故障恢复策略为更换硬件设备,操作系统故障包括文件系统配置不当、非法关机、linux内核崩溃、系统引导程序出现问题,则设置对应的故障恢复策略为linux启动时自动分析和检查系统分区,如果发现文件系统有简单的错误,则自动修复,如果文件系统破坏比较严重,则进入用户模式提示用户手动恢复。
13.如上所述的一种用于linux操作系统的故障分析系统,其中,应用数据包括应用所占cpu信息和内存信息、系统版本、应用版本、应用权限、应用存储数据;获取应用数据确定应用故障类型,具体包括:检查应用所占cpu信息和内存信息,若cpu信息或内存信息过低,则确定发生应用闪退故障;检查系统版本和应用版本,若应用版本低不能兼容系统版本,则确定发生应用版本错误故障;检查应用权限,若应用为限制使用权限,则确定发生应用权限故障;检查应用存储数据,若应用数据被删除,则确定发生应用数据故障。
14.本发明实现的有益效果如下:采用本技术技术方案,在主内核启动前先启动从内核,从内核能够保证在主内核发生故障时只需要监测系统运行的数据即可自动检测出故障原因并自动进行故障修复,使得linux主内核能够自动正常启动,而且由于系统运行数据的数值很多与故障类型并非标准的对应关系(例如并非a数值对应a’故障),所以通过人工智能方式能够精确的估算出故障类型,能够精准进行故障修复,保证linux操作系统的安全运行。
附图说明
15.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
16.图1是本发明实施例一提供的一种用于linux操作系统的故障分析方法流程图。
具体实施方式
[0017] 下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0018]
实施例一如图1所示,本发明实施例一提供一种用于linux操作系统的故障分析方法,包括:步骤110、配置操作系统从内核,启动linux操作系统主内核,从内核监测主内核启动情况;本技术实施例中,为防止linux操作系统在启动过程中崩溃,在开启设备后,立即配置操作系统从内核,由操作系统从内核进行主内核的启动监控,并且由操作系统从内核进行主内核启动数据的存储。
[0019]
步骤120、若操作系统从内核监测到主内核出现系统崩溃,则根据从内核存储日志中记录的当前内存数据、调用堆栈信息和寄存器信息,确定系统崩溃类型;linux操作系统的崩溃包括系统崩溃和应用崩溃,其中,系统崩溃发生在主内核启动之时,由操作系统从内核进行监控处理,应用崩溃发生在主内核启动之后,由操作系统主内核进行监控处理;若操作系统主内核启动失败发生crash事件,从内核监控到主内核出现系统性崩溃,则在下一次上电时根据内核中获取的对应数据能够分析确定上一次主内核启动失败的原因,并作出相应的解决策略;若操作系统主内核启动成功,则由主内核对从内核进行回收。
[0020]
具体地,操作系统从内核根据从内核存储日志中记录的当前内存数据、调用堆栈信息和寄存器信息,确定系统崩溃类型,具体包括如下子步骤:step1、收集操作系统主内核出现系统崩溃时的故障数据和故障类型,故障数据包括内存数据、调用堆栈信息和寄存器信息,提取系统崩溃特征,得到特征向量集;具体地,构建的特征崩溃向量集为:,其中,为操作系统主内核发生崩溃的故障类型,为操作系统主内核发生崩溃时的内存数据,为操作系统主内核发生崩溃时的调用堆栈信息,为操作系统主内核发生崩溃时的寄存器信息,n为收集的故障数据总数。
[0021]
step2、对特征向量集中的每个系统崩溃特征进行特征权重计算,得到崩溃特征文本向量集,将崩溃特征文本向量集输入系统崩溃分类模型,训练系统崩溃分类模型得到不同的子分类模型,分别利用各个子分类模型对特征向量集进行分类,通过分类结果估计得到各个子分类模型的权重的集合;具体地,利用公式进行特征权重计算,得到崩溃特征文本向量集,其中,为内存数据对系统崩溃的影响权重、为条用堆栈信息对系统崩溃的影响权重、为寄存器信息对系统崩溃的影响权重;将崩溃特征文本向量集输入分类模型,利用系统崩溃特征向量集训练子分类模型,例如lda分类模型;再利用子分类模型对崩溃特征文本向量集进行分类,得到分类结果,通过分类结果采用公
式估计子分类模型的权重的集合。
[0022]
step3、寻找权重的集合中的每个权重对应的最优值,通过各个子分类模型和其对应的权重的最优值的组合确定系统崩溃类型;通过粒子群优化算法计算各个子分类模型的权重的集合中,每个权重对应的最优值;通过各个子分类模型和其对应的权重的最优值组合确定故障类型,得到系统崩溃类型。
[0023]
步骤130、操作系统从内核依据系统崩溃类型设置系统故障恢复策略,重启linux操作系统主内核,linux操作系统主内核依据系统故障恢复策略进行主内核启动;在操作系统主内核的历史启动情况中,操作系统从内核存储有不同系统崩溃类型对应的故障恢复策略,在步骤120确定本次系统崩溃类型后,查找对应的故障恢复策略,设置使用该故障恢复策略进行配置,在下次重启linux操作系统主内核依据故障恢复策略进行启动。
[0024]
例如,系统崩溃类型主要包括硬件故障和操作系统故障,硬件故障对应设置的故障恢复策略为更换硬件设备,操作系统故障包括但不限于文件系统配置不当、非法关机、linux内核崩溃、系统引导程序出现问题等,例如文件系统中ex3文件系统(具有日志记录功能的日志文件系统)配置不当的故障导致的系统崩溃,则设置对应的故障恢复策略为linux启动时自动分析和检查系统分区,如果发现文件系统有简单的错误,则自动修复,如果文件系统破坏比较严重,则进入用户模式提示用户手动恢复。
[0025]
步骤140、操作系统主内核正常启动后,监测应用层面运行情况,若监测到应用层出现应用崩溃,则获取应用数据,确定应用故障类型;具体地,在操作系统主内核正常启动后,操作系统从内核功能停止,并被主内核回收利用,此时由操作系统主内核进行应用层面的运行监控。
[0026]
其中,应用数据包括应用所占cpu信息和内存信息、系统版本、应用版本、应用权限、应用存储数据;获取应用数据确定应用故障类型,具体包括:检查应用所占cpu信息和内存信息,若cpu信息或内存信息过低,则确定发生应用闪退故障;检查系统版本和应用版本,若应用版本低不能兼容系统版本,则确定发生应用版本错误故障;检查应用权限,若应用为限制使用权限,则确定发生应用权限故障;检查应用存储数据,若应用数据被删除,则确定发生应用数据故障。
[0027]
步骤150、操作系统主内核依据应用故障类型设置应用故障恢复策略,重启应用,
依据应用故障恢复策略进行应用重启;具体地,根据应用故障类型设置的恢复策略包括:回收内存,为其分配足够的cpu和内存,检查网络情况为其分配适宜网络等。
[0028]
实施例二本发明实施例二提供一种用于linux操作系统的故障分析系统,其特征在于,包括:操作系统故障分析子系统,用于配置linux操作系统从内核;启动linux操作系统主内核,从内核监测主内核启动情况;若操作系统从内核监测到主内核出现系统崩溃,则根据从内核存储日志中记录的当前内存数据、调用堆栈信息和寄存器信息,确定系统崩溃类型;操作系统从内核依据系统崩溃类型设置系统故障恢复策略,重启linux操作系统主内核,linux操作系统主内核依据系统故障恢复策略进行主内核启动;应用程序故障分析子系统,用于在操作系统主内核正常启动后,监测应用层面运行情况,若监测到应用层出现应用崩溃,则获取应用数据确定应用故障类型;操作系统主内核依据应用故障类型设置应用故障恢复策略,重启应用,依据应用故障恢复策略进行应用重启。
[0029]
在linux设备开启并在启动linux操作系统主内核之前,先配置操作系统从内核,由操作系统从内核进行主内核的启动监控,并且由操作系统从内核进行主内核启动数据的存储。
[0030]
操作系统从内核根据从内核存储日志中记录的当前内存数据、调用堆栈信息和寄存器信息,确定系统崩溃类型,具体包括如下子步骤:收集操作系统主内核出现系统崩溃时的故障数据和故障类型,故障数据包括内存数据、调用堆栈信息和寄存器信息,提取系统崩溃特征,得到特征向量集;对特征向量集中的每个系统崩溃特征进行特征权重计算,得到崩溃特征文本向量集,将崩溃特征文本向量集输入系统崩溃分类模型,训练系统崩溃分类模型得到不同的子分类模型,分别利用各个子分类模型对崩溃特征文本向量集进行分类,通过分类结果估计得到各个子分类模型的权重的集合;寻找权重的集合中的每个权重对应的最优值,通过各个子分类模型和其对应的权重的最优值的组合确定系统崩溃类型。
[0031]
系统崩溃类型包括硬件故障和操作系统故障,硬件故障对应设置的故障恢复策略为更换硬件设备,操作系统故障包括文件系统配置不当、非法关机、linux内核崩溃、系统引导程序出现问题,则设置对应的故障恢复策略为linux启动时自动分析和检查系统分区,如果发现文件系统有简单的错误,则自动修复,如果文件系统破坏比较严重,则进入用户模式提示用户手动恢复。
[0032]
应用数据包括应用所占cpu信息和内存信息、系统版本、应用版本、应用权限、应用存储数据;获取应用数据确定应用故障类型,具体包括:检查应用所占cpu信息和内存信息,若cpu信息或内存信息过低,则确定发生应用闪退故障;检查系统版本和应用版本,若应用版本低不能兼容系统版本,则确定发生应用版本错误故障;检查应用权限,若应用为限制使用权限,则确定发生应用权限故障;检查应用存储数据,若应用数据被删除,则确定发生应用数据故障。
[0033]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
技术特征:1.一种用于linux操作系统的故障分析方法,其特征在于,包括:配置linux操作系统从内核;启动linux操作系统主内核,从内核监测主内核启动情况;若操作系统从内核监测到主内核出现系统崩溃,则根据从内核存储日志中记录的当前内存数据、调用堆栈信息和寄存器信息,确定系统崩溃类型;操作系统从内核依据系统崩溃类型设置系统故障恢复策略,重启linux操作系统主内核,linux操作系统主内核依据系统故障恢复策略进行主内核启动;操作系统主内核正常启动后,监测应用层面运行情况,若监测到应用层出现应用崩溃,则获取应用数据确定应用故障类型;操作系统主内核依据应用故障类型设置应用故障恢复策略,重启应用,依据应用故障恢复策略进行应用重启。2.如权利要求1所述的一种用于linux操作系统的故障分析方法,其特征在于,开启设备后立即配置操作系统从内核,由从内核进行主内核的启动监控,并且由从内核进行主内核启动数据的存储。3.如权利要求1所述的一种用于linux操作系统的故障分析方法,其特征在于,操作系统从内核根据从内核存储日志中记录的当前内存数据、调用堆栈信息和寄存器信息,确定系统崩溃类型,具体包括如下子步骤:收集操作系统主内核出现系统崩溃时的故障数据和故障类型,故障数据包括内存数据、调用堆栈信息和寄存器信息,提取系统崩溃特征,得到特征向量集;对特征向量集中的每个系统崩溃特征进行特征权重计算,得到崩溃特征文本向量集,将崩溃特征文本向量集输入系统崩溃分类模型,训练系统崩溃分类模型得到不同的子分类模型,分别利用各个子分类模型对崩溃特征文本向量集进行分类,通过分类结果估计得到各个子分类模型的权重的集合;寻找权重的集合中的每个权重对应的最优值,通过各个子分类模型和其对应的权重的最优值的组合确定系统崩溃类型。4.如权利要求3所述的一种用于linux操作系统的故障分析方法,其特征在于,系统崩溃类型包括硬件故障和操作系统故障,硬件故障对应设置的故障恢复策略为更换硬件设备,操作系统故障包括文件系统配置不当、非法关机、linux内核崩溃、系统引导程序出现问题,操作系统故障对应的故障恢复策略为linux启动时自动分析和检查系统分区,如果发现文件系统有简单的错误,则自动修复,如果文件系统破坏比较严重,则进入用户模式提示用户手动恢复。5.如权利要求1所述的一种用于linux操作系统的故障分析方法,其特征在于,应用数据包括应用所占cpu信息和内存信息、系统版本、应用版本、应用权限、应用存储数据;获取应用数据确定应用故障类型,具体包括:检查应用所占用的cpu信息和内存信息,若cpu信息或内存信息低于阈值,则确定发生应用闪退故障;检查系统版本和应用版本,若应用版本低不能兼容系统版本,则确定发生应用版本错误故障;检查应用权限,若应用为限制使用权限,则确定发生应用权限故障;
检查应用存储数据,若应用存储数据被删除,则确定发生应用存储数据故障。6.一种用于linux操作系统的故障分析系统,其特征在于,包括:操作系统故障分析子系统,用于配置linux操作系统从内核;启动linux操作系统主内核,从内核监测主内核启动情况;若操作系统从内核监测到主内核出现系统崩溃,则根据从内核存储日志中记录的当前内存数据、调用堆栈信息和寄存器信息,确定系统崩溃类型;操作系统从内核依据系统崩溃类型设置系统故障恢复策略,重启linux操作系统主内核,linux操作系统主内核依据系统故障恢复策略进行主内核启动;应用程序故障分析子系统,用于在操作系统主内核正常启动后,监测应用层面运行情况,若监测到应用层出现应用崩溃,则获取应用数据确定应用故障类型;操作系统主内核依据应用故障类型设置应用故障恢复策略,重启应用,依据应用故障恢复策略进行应用重启。7.如权利要求6所述的一种用于linux操作系统的故障分析系统,其特征在于,开启设备后立即配置操作系统从内核,由从内核进行主内核的启动监控,并且由操作系统从内核进行主内核启动数据的存储。8.如权利要求6所述的一种用于linux操作系统的故障分析系统,其特征在于,操作系统从内核根据从内核存储日志中记录的当前内存数据、调用堆栈信息和寄存器信息,确定系统崩溃类型,具体包括如下子步骤:收集操作系统主内核出现系统崩溃时的故障数据和故障类型,故障数据包括内存数据、调用堆栈信息和寄存器信息,提取系统崩溃特征,得到特征向量集;对特征向量集中的每个系统崩溃特征进行特征权重计算,得到崩溃特征文本向量集,将崩溃特征文本向量集输入系统崩溃分类模型,训练系统崩溃分类模型得到不同的子分类模型,分别利用各个子分类模型对崩溃特征文本向量集进行分类,通过分类结果估计得到各个子分类模型的权重的集合;寻找权重的集合中的每个权重对应的最优值,通过各个子分类模型和其对应的权重的最优值的组合确定系统崩溃类型。9.如权利要求8所述的一种用于linux操作系统的故障分析系统,其特征在于,系统崩溃类型包括硬件故障和操作系统故障,硬件故障对应设置的故障恢复策略为更换硬件设备,操作系统故障包括文件系统配置不当、非法关机、linux内核崩溃、系统引导程序出现问题,则设置对应的故障恢复策略为linux启动时自动分析和检查系统分区,如果发现文件系统有简单的错误,则自动修复,如果文件系统破坏比较严重,则进入用户模式提示用户手动恢复。10.如权利要求6所述的一种用于linux操作系统的故障分析系统,其特征在于,应用数据包括应用所占cpu信息和内存信息、系统版本、应用版本、应用权限、应用存储数据;获取应用数据确定应用故障类型,具体包括:检查应用所占cpu信息和内存信息,若cpu信息或内存信息过低,则确定发生应用闪退故障;检查系统版本和应用版本,若应用版本低不能兼容系统版本,则确定发生应用版本错误故障;检查应用权限,若应用为限制使用权限,则确定发生应用权限故障;检查应用存储数据,若应用数据被删除,则确定发生应用数据故障。
技术总结本发明公开一种用于Linux操作系统的故障分析方法及系统。所述方法包括:配置Linux操作系统从内核;启动Linux操作系统主内核,从内核监测主内核启动情况若从内核监测到主内核出现系统崩溃,则根据从内核存储日志确定系统崩溃类型;从内核依据系统崩溃类型设置系统故障恢复策略,重启主内核,主内核依据系统故障恢复策略进行主内核启动;主内核正常启动后,监测应用层面运行情况,若监测到应用层出现应用崩溃,则获取Linux系统运行数据,确定应用故障类型;主内核依据应用故障类型设置应用故障恢复策略,重启应用,依据应用故障恢复策略进行应用重启。采用本申请技术方案,能够准确识别Linux操作系统故障和应用程序故障,保证Linux操作系统的安全运行。操作系统的安全运行。操作系统的安全运行。
技术研发人员:庄小凡 丁文龙 张琳 郑红云
受保护的技术使用者:北京拓林思软件有限公司
技术研发日:2022.05.24
技术公布日:2022/7/5