CN116126732A - 一种计算机故障定位方法和计算机 - Google Patents
一种计算机故障定位方法和计算机 Download PDFInfo
- Publication number
- CN116126732A CN116126732A CN202310253592.7A CN202310253592A CN116126732A CN 116126732 A CN116126732 A CN 116126732A CN 202310253592 A CN202310253592 A CN 202310253592A CN 116126732 A CN116126732 A CN 116126732A
- Authority
- CN
- China
- Prior art keywords
- computer
- algorithm
- module
- function
- instrumentation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 102
- 230000005856 abnormality Effects 0.000 claims abstract description 58
- 238000001514 detection method Methods 0.000 claims abstract description 51
- 230000002159 abnormal effect Effects 0.000 claims abstract description 16
- 238000012544 monitoring process Methods 0.000 claims abstract description 12
- 230000006870 function Effects 0.000 claims description 123
- 230000015654 memory Effects 0.000 claims description 23
- 238000005070 sampling Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000006467 substitution reaction Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000003780 insertion Methods 0.000 claims description 6
- 230000037431 insertion Effects 0.000 claims description 6
- 239000000523 sample Substances 0.000 description 20
- 238000005457 optimization Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007787 long-term memory Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013450 outlier detection Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种计算机故障定位方法和计算机,用于降低计算机故障定位的开销,包括:使用预设算法在目标代码中确定插桩点,在插桩点设置插桩程序;监控计算机功能模块,获得并存储采集数据;使用异常检测算法对采集数据进行分析,若存在异常则生成异常告警;若生成异常告警,则运行插桩程序,以定位目标代码中的漏洞bug。针对函数级异常,在目标代码中确定插桩点,设置插桩程序。在生成异常告警后,运行插桩程序,对目标代码的运行进行监控,以快速定位目标代码中的漏洞。只在发生异常时运行插桩程序,相比于插桩程序随主程序运行的现有技术,可以减小运行插桩程序带来的开销。
Description
技术领域
本申请实施例涉及计算机领域,具体涉及一种计算机故障定位方法和计算机。
背景技术
随着数字化、信息化、智能化的快速发展,大量功能和特性上云,以及数据的爆炸式增长,为了服务各种各样的应用以及管理和存储超大规模的数据,现有的软件系统(如云计算系统,大数据系统等)整个系统变得越来越庞大和复杂。如此复杂而庞大的系统使得故障很常见,但定位故障也变得极其困难。现有的计算机故障定位方法存在故障定位能力弱或开销大的问题,因此研究一种定位能力强,而且开销小的通用计算机故障定位方法显得十分必要。
发明内容
本申请实施例提供了一种计算机故障定位方法和计算机,用于降低计算机故障定位的开销。
本申请实施例第一方面提供了一种计算机故障定位方法,其特征在于,包括:
使用预设算法在目标代码中确定插桩点,在插桩点设置插桩程序;
监控计算机功能模块,获得并存储采集数据;
使用异常检测算法对采集数据进行分析,若存在异常则生成异常告警;
若生成异常告警,则运行插桩程序,以定位目标代码中的漏洞bug。
基于本申请实施例第一方面,本申请实施例第一方面的第一种实现方式中,生成异常告警后,所述方法还包括:
若生成异常告警,则根据异常告警,从计算机功能模块确定存在异常的目标功能模块;
对目标功能模块进行监控,以查找目标功能模块的异常。
基于本申请实施例第一方面或第一方面的第一种实现方式,本申请实施例第一方面的第二种实现方式中,使用预设算法在目标代码中确定插桩点,具体包括:
采用抽象语法树AST分析目标代码,识别脆弱函数/操作,确定插桩点。
基于本申请实施例第一方面、第一方面的第一种实现方式和第二种实现方式任一种,本申请实施例第一方面的第三种实现方式中,使用预设算法在目标代码中确定插桩点,具体包括:
根据预存有脆弱函数/操作的函数库,在目标代码中识别脆弱函数/操作,确定插桩点。
基于本申请实施例第一方面、第一方面的第一种实现方式至第三种实现方式任一种,本申请实施例第一方面的第四种实现方式中,脆弱函数/操作包括与资源相关、与输入输出IO端口相关、与网络相关、与同步相关、与参数输入相关和/或与事件相关的函数/操作。
基于本申请实施例第一方面、第一方面的第一种实现方式至第四种实现方式任一种,本申请实施例第一方面的第五种实现方式中,脆弱函数/操作包括for循环和/或while循环。
基于本申请实施例第一方面、第一方面的第一种实现方式至第五种实现方式任一种,本申请实施例第一方面的第六种实现方式中,使用预设算法在目标代码中确定插桩点,具体包括:
根据预存有预定函数的函数库,在目标代码中识别预定函数,确定插桩点,预定函数允许自定义设置。
基于本申请实施例第一方面、第一方面的第一种实现方式至第六种实现方式任一种,本申请实施例第一方面的第七种实现方式中,运行插桩程序,具体包括:
使用扩展的伯克利数据包过滤器eBPF技术运行插桩程序。
基于本申请实施例第一方面、第一方面的第一种实现方式至第七种实现方式任一种,本申请实施例第一方面的第八种实现方式中,使用异常检测算法对采集数据进行分析,具体包括:
使用邻近算法KNN算法、局部异常因子LOF算法或长短期记忆网络LSTM算法对采集数据进行分析。
基于本申请实施例第一方面、第一方面的第一种实现方式至第八种实现方式任一种,本申请实施例第一方面的第九种实现方式中,使用异常检测算法对采集数据进行分析,具体包括:
使用压缩感知算法对采集数据进行分析。
基于本申请实施例第一方面、第一方面的第一种实现方式至第九种实现方式任一种,本申请实施例第一方面的第十种实现方式中,所述压缩感知算法中,采用带替换的抽样算法。
基于本申请实施例第一方面、第一方面的第一种实现方式至第十种实现方式任一种,本申请实施例第一方面的第十一种实现方式中,所述压缩感知算法中,采用查找表LUT进行样本相似度计算。
基于本申请实施例第一方面、第一方面的第一种实现方式至第十一种实现方式任一种,本申请实施例第一方面的第十二种实现方式中,所述压缩感知算法中,在采样时在第一阈值的基础上去除第一样本并增加第二样本,计算得到第二阈值,第一阈值是根据第一样本得到的。
基于本申请实施例第一方面、第一方面的第一种实现方式至第十二种实现方式任一种,本申请实施例第一方面的第十三种实现方式中,计算机功能模块包括中央处理单元CPU、内存、网络模块和/或系统调用模块。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请中,针对函数级异常,在目标代码中确定插桩点,设置插桩程序。在生成异常告警后,运行插桩程序,对目标代码的运行进行监控,以快速定位目标代码中的漏洞。只在发生异常时运行插桩程序,相比于插桩程序随主程序运行的现有技术,可以减小运行插桩程序带来的开销。
本申请实施例第二方面提供了一种计算机,其特征在于,包括:故障定位模块、数据采集模块和异常检测模块;
故障定位模块使用预设算法在目标代码中确定插桩点,在插桩点设置插桩程序;
数据采集模块监控计算机功能模块,获得并存储采集数据;
异常检测模块使用异常检测算法对采集数据进行分析,若存在异常则生成异常告警;
若异常检测模块生成异常告警,则故障定位模块运行插桩程序,以定位目标代码中的漏洞bug。
基于本申请实施例第二方面,本申请实施例第二方面的第一种实现方式中,异常检测模块生成异常告警后,所述方法还包括:
若异常检测模块生成异常告警,则故障定位模块根据异常告警,从计算机功能模块确定存在异常的目标功能模块;
故障定位模块对目标功能模块进行监控,以查找目标功能模块的异常。
基于本申请实施例第二方面或第二方面的第一种实现方式,本申请实施例第二方面的第二种实现方式中,故障定位模块使用预设算法在目标代码中确定插桩点,具体包括:
故障定位模块采用抽象语法树AST分析目标代码,识别脆弱函数/操作,确定插桩点。
基于本申请实施例第二方面、第二方面的第一种实现方式和第二种实现方式任一种,本申请实施例第二方面的第三种实现方式中,故障定位模块使用预设算法在目标代码中确定插桩点,具体包括:
故障定位模块根据预存有脆弱函数/操作的函数库,在目标代码中识别脆弱函数/操作,确定插桩点。
基于本申请实施例第二方面、第二方面的第一种实现方式至第三种实现方式任一种,本申请实施例第二方面的第四种实现方式中,脆弱函数/操作包括与资源相关、与输入输出IO端口相关、与网络相关、与同步相关、与参数输入相关和/或与事件相关的函数/操作。
基于本申请实施例第二方面、第二方面的第一种实现方式至第四种实现方式任一种,本申请实施例第二方面的第五种实现方式中,脆弱函数/操作包括for循环和/或while循环。
基于本申请实施例第二方面、第二方面的第一种实现方式至第五种实现方式任一种,本申请实施例第二方面的第六种实现方式中,故障定位模块使用预设算法在目标代码中确定插桩点,具体包括:
故障定位模块根据预存有预定函数的函数库,在目标代码中识别预定函数,确定插桩点,预定函数允许自定义设置。
基于本申请实施例第二方面、第二方面的第一种实现方式至第六种实现方式任一种,本申请实施例第二方面的第七种实现方式中,故障定位模块运行插桩程序,具体包括:
故障定位模块使用扩展的伯克利数据包过滤器eBPF技术运行插桩程序。
基于本申请实施例第二方面、第二方面的第一种实现方式至第七种实现方式任一种,本申请实施例第二方面的第八种实现方式中,异常检测模块使用异常检测算法对采集数据进行分析,具体包括:
异常检测模块使用邻近算法KNN算法、局部异常因子LOF算法或长短期记忆网络LSTM算法对采集数据进行分析。
基于本申请实施例第二方面、第二方面的第一种实现方式至第八种实现方式任一种,本申请实施例第二方面的第九种实现方式中,异常检测模块使用异常检测算法对采集数据进行分析,具体包括:
异常检测模块使用压缩感知算法对采集数据进行分析。
基于本申请实施例第二方面、第二方面的第一种实现方式至第九种实现方式任一种,本申请实施例第二方面的第十种实现方式中,所述压缩感知算法中,采用带替换的抽样算法。
基于本申请实施例第二方面、第二方面的第一种实现方式至第十种实现方式任一种,本申请实施例第二方面的第十一种实现方式中,所述压缩感知算法中,采用查找表LUT进行样本相似度计算。
基于本申请实施例第二方面、第二方面的第一种实现方式至第十一种实现方式任一种,本申请实施例第二方面的第十二种实现方式中,所述压缩感知算法中,在采样时在第一阈值的基础上去除第一样本并增加第二样本,计算得到第二阈值,第一阈值是根据第一样本得到的。
基于本申请实施例第二方面、第二方面的第一种实现方式至第十二种实现方式任一种,本申请实施例第二方面的第十三种实现方式中,计算机功能模块包括中央处理单元CPU、内存、网络模块和/或系统调用模块。
本申请实施例第三方面提供了一种计算机设备,包括:
中央处理器,存储器,输入输出接口,有线或无线网络接口以及电源;
存储器为短暂存储存储器或持久存储存储器;
中央处理器配置为与存储器通信,并执行存储器中的指令操作以执行第一方面的方法。
本申请实施例的第四方面提供了一种计算机可读存储介质,计算机可读存储介质包括指令,当指令在计算机上运行时,使得计算机执行第一方面的方法。
本申请实施例的第五方面提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行第一方面的方法。
本申请实施例的第六方面提供了一种芯片系统,芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行第一方面的方法。
附图说明
图1至图2是本申请实施例计算机故障定位方法的多种流程图;
图3至图4是本申请实施例计算机的功能结构示意图;
图5是本申请实施例计算机的架构示意图。
具体实施方式
如图1所示,本申请实施例提供了一种计算机故障定位方法,包括:
101使用预设算法在目标代码中确定插桩点,在插桩点设置插桩程序;
使用预设算法对目标代码进行分析,将其中有较大概率出现漏洞bug的位置确定为插桩点。插桩程序可以是探针(probe),在插桩点插入探针,以在需要的时候对目标代码进行监控。监控时还可以对迹(trace)进行存储。目标代码可以是程序源代码或主程序代码。
102监控计算机功能模块,获得并存储采集数据;
计算机功能模块用于运行目标代码。采集计算机功能模块运行目标代码产生的数据,得到采集数据。
103使用异常检测算法对采集数据进行分析,若存在异常则生成异常告警;
使用异常检测算法对采集数据进行实时分析,以及时发现异常。但发现异常时,生成异常告警,以进一步排查和解决异常。
104若生成异常告警,则运行插桩程序,以定位目标代码中的漏洞bug。
如果生成了异常告警,则运行插桩程序对目标代码进行监控,以查找目标代码中导致异常的漏洞。通过插桩来监控特定的位置和区域,这些采集到的信息会存储起来,等待被使用。存储数据可以使用CSV存储方法。
如果没有生成异常告警,则不运行插桩程序。如此,只在发生异常时运行插桩程序,相比于插桩程序随主程序运行的现有技术,可以减小运行插桩程序带来的开销。
本申请中,针对函数级异常,在目标代码中确定插桩点,设置插桩程序。在生成异常告警后,运行插桩程序,对目标代码的运行进行监控,以快速定位目标代码中的漏洞。只在发生异常时运行插桩程序,相比于插桩程序随主程序运行的现有技术,可以减小运行插桩程序带来的开销。
如图2所示,本申请实施例的一种实现方式中,生成异常告警后,所述方法还包括:
201若生成异常告警,则根据异常告警,从计算机功能模块确定存在异常的目标功能模块;
故障定位分为两层,第一层是进程级故障定位;第二层是函数级故障定位,函数级故障定位比较复杂。
在生成了异常告警后,根据异常告警将存在异常的计算机功能模块确定为目标功能模块。
202对目标功能模块进行监控,以查找目标功能模块的异常。
对存在异常的目标功能模块进行单独监控,以查找出目标功能模块异常之处。
本申请实施例的一种实现方式中,计算机功能模块包括中央处理单元CPU、内存、网络模块和/或系统调用模块。
针对进程的各种信息(CPU,内存、网络和系统调用)进行单独监控。在检测到异常后,直接接提取异常对应的进程来实现进程级故障定位。
在实现进程级故障定位或函数级故障定位后,可以生成漏洞bug检测定位告警,并将漏洞bug检测定位告警发送给计算机的管理员、维护员。漏洞bug检测定位告警也可以称为真实bug检测定位告警。
本申请实施例的一种实现方式中,使用预设算法在目标代码中确定插桩点,具体包括:
根据预存有脆弱函数/操作的函数库,在目标代码中识别脆弱函数/操作,确定插桩点。
函数库预存脆弱函数/操作的全文、部分或关键字。将目标代码与函数库中的函数进行对比,识别出脆弱函数/操作,将脆弱函数/操作所在的位置确定为插桩点。
脆弱函数也可以称为敏感函数、关键函数。
本申请实施例的一种实现方式中,脆弱函数/操作包括与资源相关、与输入输出IO端口相关、与网络相关、与同步相关、与参数输入相关和/或与事件相关的函数/操作。
脆弱函数/操作是有较大概率出现漏洞bug的函数/操作,以及出现漏洞会导致较为严重后果的函数/操作。启发式地,脆弱函数/操作包括与资源相关、与输入输出IO端口相关(是指磁盘、内存读写IO)、与网络相关、与同步相关、与参数输入相关和/或与事件相关的函数/操作。
本申请实施例的一种实现方式中,脆弱函数/操作包括for循环和/或while循环。
脆弱函数/操作包括for循环和/或while循环,以及其他需要长时间运行的函数/操作。
本申请实施例的一种实现方式中,使用预设算法在目标代码中确定插桩点,具体包括:
采用抽象语法树(abstract syntax tree,AST)分析目标代码,识别脆弱函数/操作,确定插桩点。采用抽象语法树可以使用编译器Clang进行编译。编译器Clang是一个C语言、C++、Objective-C语言的轻量级编译器.
利用抽象语法树对目标代码进行分析,寻找目标代码中隐含的循环结构等脆弱函数/操作,将其确定为插桩点。
本申请实施例的一种实现方式中,使用预设算法在目标代码中确定插桩点,具体包括:
根据预存有预定函数的函数库,在目标代码中识别预定函数,确定插桩点,预定函数允许自定义设置。预定函数也可以称为自定义函数。
在函数库中自定义设置预定函数,将目标代码与函数库中的函数进行对比,识别出预定函数,将预定函数所在的位置确定为插桩点。预定函数主要是根据专家经验,或者系统长期运行的历史故障信息来自定义,这样可以提供良好的可扩展性。
综合来看,函数级故障定位首先需要分析程序源代码,通过采用AST分析、函数库脆弱函数/操作识别、函数库预定函数来得到细粒度的插桩点,然后再进行插桩。脆弱函数/操作主要是那些可能引入异常/故障的函数/操作,如卡住、死锁、CPU或内存峰值等。预定函数也可以称为自定义特定函数,
本申请实施例的一种实现方式中,运行插桩程序,具体包括:
使用扩展的伯克利数据包过滤器(Extended Berkeley Packet Filter,eBPF)技术运行插桩程序。
本申请实施例进行插桩需要动态执行,所以需要采用动态插桩技术,如eBPF技术、Linux动态跟踪工具BCC技术。Linux动态跟踪工具BCC是一个用于跟踪内核和操作程序的工具集。这样就可以在插桩点收集对应的(CPU,内存、网络和系统调用),然后进行分析识别,从而能定位故障所在的函数,甚至代码位置。
现有技术基于实时插桩,在系统运行的关键路径和主路径上插桩,插桩程序随主程序无条件运行,因而有较大的性能影响。而本申请实施例在细粒度插桩的基础上,只在出现异常时才运行插桩程序,因此可以大大的降低平常的性能影响。
本申请实施例的一种实现方式中,使用异常检测算法对采集数据进行分析,具体包括:
使用邻近算法(K-NearestNeighbor,KNN)算法、局部异常因子(Local outlierfactor,LOF)算法或长短期记忆网络(Long Short-Term Memory,LSTM)算法对采集数据进行分析。
本申请实施例的一种实现方式中,使用异常检测算法对采集数据进行分析,具体包括:
使用压缩感知算法对采集数据进行分析。
实时根据采集到的数据,使用异常检测算法来检测异常。常用的异常检测算法有KNN、LOF,LSTM,压缩感知算法等。采用的框架可以是基于深度学习框架Torch的Python机器学习库PyTorch,以及Python工具箱PyOD(Python Outlier Detection),还可以基于推理框架ONNXRuntime等。通过训练、聚类、推理等来实现高准确率的异常检测。异常检测算法会输出两种结果,一种是正常,另一种是异常。检测到异常后会从生成异常告警,触发故障定位模块工作。
此外为了提高异常检测算法的实时性,本申请实施例进行了如下几个优化。
不采用基于机器学习的方案,而采用基于压缩感知算法的方案。这样可以避免学习的成本,以及系统变化带来的需要不断学习和准确率下降的问题。此优化可以称为基于压缩的异常检测。
本申请实施例的一种实现方式中,所述压缩感知算法中,采用带替换的抽样算法。此优化可以称为带替换的并行抽样算法。带替换的抽样算法也可以称为带替换的并行抽样算法。
在基于压缩感知算法的方案上,采用带替换的抽样算法来替代无替换采样,从而实现并行,加快异常检测速度。
本申请实施例的一种实现方式中,所述压缩感知算法中,采用查找表(Look-Up-Table,LUT)进行样本相似度计算。此优化可以称为基于查找表的样本相似度计算方法。
采用查找表LUT来进行样本相似度计算,从而降低了压缩方案的计算成本。
本申请实施例的一种实现方式中,所述压缩感知算法中,在采样时在第一阈值的基础上去除第一样本并增加第二样本,计算得到第二阈值,第一阈值是根据第一样本得到的。此优化可以称为阈值计算优化。
在压缩感知算法中优化阈值计算,在当前最后一个阈值的基础上增加新的样本并去除旧的样本,避免了在较大窗口上的减少。优化阈值计算后的算法保持了与原算法相同的语义,同时需要比原算法更少的计算。
通过这一系列优化,大大提升了异常检测算法的实时性和通用性。
如图3至图4所示,本申请实施例还提供了一种计算机,包括:故障定位模块、数据采集模块和异常检测模块;
故障定位模块使用预设算法在目标代码中确定插桩点,在插桩点设置插桩程序;
数据采集模块监控计算机功能模块,获得并存储采集数据;
异常检测模块使用异常检测算法对采集数据进行分析,若存在异常则生成异常告警;
若异常检测模块生成异常告警,则故障定位模块运行插桩程序,以定位目标代码中的漏洞bug。
本申请实施例的一种实现方式中,异常检测模块生成异常告警后,所述方法还包括:
若异常检测模块生成异常告警,则故障定位模块根据异常告警,从计算机功能模块确定存在异常的目标功能模块;
故障定位模块对目标功能模块进行监控,以查找目标功能模块的异常。
本申请实施例的一种实现方式中,故障定位模块使用预设算法在目标代码中确定插桩点,具体包括:
故障定位模块采用抽象语法树AST分析目标代码,识别脆弱函数/操作,确定插桩点。
本申请实施例的一种实现方式中,故障定位模块使用预设算法在目标代码中确定插桩点,具体包括:
故障定位模块根据预存有脆弱函数/操作的函数库,在目标代码中识别脆弱函数/操作,确定插桩点。
本申请实施例的一种实现方式中,脆弱函数/操作包括与资源相关、与输入输出IO端口相关、与网络相关、与同步相关、与参数输入相关和/或与事件相关的函数/操作。
本申请实施例的一种实现方式中,脆弱函数/操作包括for循环和/或while循环。
本申请实施例的一种实现方式中,故障定位模块使用预设算法在目标代码中确定插桩点,具体包括:
故障定位模块根据预存有预定函数的函数库,在目标代码中识别预定函数,确定插桩点,预定函数允许自定义设置。
本申请实施例的一种实现方式中,故障定位模块运行插桩程序,具体包括:
故障定位模块使用扩展的伯克利数据包过滤器eBPF技术运行插桩程序。
本申请实施例的一种实现方式中,异常检测模块使用异常检测算法对采集数据进行分析,具体包括:
异常检测模块使用邻近算法KNN算法、局部异常因子LOF算法或长短期记忆网络LSTM算法对采集数据进行分析。
本申请实施例的一种实现方式中,异常检测模块使用异常检测算法对采集数据进行分析,具体包括:
异常检测模块使用压缩感知算法对采集数据进行分析。
本申请实施例的一种实现方式中,所述压缩感知算法中,采用带替换的抽样算法。
本申请实施例的一种实现方式中,所述压缩感知算法中,采用查找表LUT进行样本相似度计算。
本申请实施例的一种实现方式中,所述压缩感知算法中,在采样时在第一阈值的基础上去除第一样本并增加第二样本,计算得到第二阈值,第一阈值是根据第一样本得到的。
本申请实施例的一种实现方式中,计算机功能模块包括中央处理单元CPU、内存、网络模块和/或系统调用模块。
如图5所示,本申请实施例还提供了一种计算机设备500,包括:
中央处理器501,存储器505,输入输出接口504,有线或无线网络接口503以及电源502;
存储器505为短暂存储存储器或持久存储存储器;
中央处理器501配置为与存储器505通信,并执行存储器505中的指令操作以执行如图1至图4所示实施例中的方法。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质包括指令,当指令在计算机上运行时,使得计算机执行如图1至图4所示实施例中的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如图1至图4所示实施例中的方法。
本申请实施例还提供了一种芯片系统,芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行如图1至图4所示实施例中的方法。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (15)
1.一种计算机故障定位方法,其特征在于,包括:
使用预设算法在目标代码中确定插桩点,在插桩点设置插桩程序;
监控计算机功能模块,获得并存储采集数据;
使用异常检测算法对采集数据进行分析,若存在异常则生成异常告警;
若生成异常告警,则运行插桩程序,以定位目标代码中的漏洞bug。
2.根据权利要求1所述的计算机故障定位方法,其特征在于,生成异常告警后,所述方法还包括:
若生成异常告警,则根据异常告警,从计算机功能模块确定存在异常的目标功能模块;
对目标功能模块进行监控,以查找目标功能模块的异常。
3.根据权利要求1所述的计算机故障定位方法,其特征在于,使用预设算法在目标代码中确定插桩点,具体包括:
采用抽象语法树AST分析目标代码,识别脆弱函数/操作,确定插桩点。
4.根据权利要求1所述的计算机故障定位方法,其特征在于,使用预设算法在目标代码中确定插桩点,具体包括:
根据预存有脆弱函数/操作的函数库,在目标代码中识别脆弱函数/操作,确定插桩点。
5.根据权利要求3或4所述的计算机故障定位方法,其特征在于,脆弱函数/操作包括与资源相关、与输入输出IO端口相关、与网络相关、与同步相关、与参数输入相关和/或与事件相关的函数/操作。
6.根据权利要求3或4所述的计算机故障定位方法,其特征在于,脆弱函数/操作包括for循环和/或while循环。
7.根据权利要求1所述的计算机故障定位方法,其特征在于,使用预设算法在目标代码中确定插桩点,具体包括:
根据预存有预定函数的函数库,在目标代码中识别预定函数,确定插桩点,预定函数允许自定义设置。
8.根据权利要求1所述的计算机故障定位方法,其特征在于,运行插桩程序,具体包括:
使用扩展的伯克利数据包过滤器eBPF技术运行插桩程序。
9.根据权利要求1所述的计算机故障定位方法,其特征在于,使用异常检测算法对采集数据进行分析,具体包括:
使用邻近算法KNN算法、局部异常因子LOF算法或长短期记忆网络LSTM算法对采集数据进行分析。
10.根据权利要求1所述的计算机故障定位方法,其特征在于,使用异常检测算法对采集数据进行分析,具体包括:
使用压缩感知算法对采集数据进行分析。
11.根据权利要求10所述的计算机故障定位方法,其特征在于,所述压缩感知算法中,采用带替换的抽样算法。
12.根据权利要求10所述的计算机故障定位方法,其特征在于,所述压缩感知算法中,采用查找表LUT进行样本相似度计算。
13.根据权利要求10所述的计算机故障定位方法,其特征在于,所述压缩感知算法中,在采样时在第一阈值的基础上去除第一样本并增加第二样本,计算得到第二阈值,第一阈值是根据第一样本得到的。
14.根据权利要求1所述的计算机故障定位方法,其特征在于,计算机功能模块包括中央处理单元CPU、内存、网络模块和/或系统调用模块。
15.一种计算机,其特征在于,包括:故障定位模块、数据采集模块和异常检测模块;
故障定位模块使用预设算法在目标代码中确定插桩点,在插桩点设置插桩程序;
数据采集模块监控计算机功能模块,获得并存储采集数据;
异常检测模块使用异常检测算法对采集数据进行分析,若存在异常则生成异常告警;
若异常检测模块生成异常告警,则故障定位模块运行插桩程序,以定位目标代码中的漏洞bug。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310253592.7A CN116126732A (zh) | 2023-03-08 | 2023-03-08 | 一种计算机故障定位方法和计算机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310253592.7A CN116126732A (zh) | 2023-03-08 | 2023-03-08 | 一种计算机故障定位方法和计算机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116126732A true CN116126732A (zh) | 2023-05-16 |
Family
ID=86301171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310253592.7A Pending CN116126732A (zh) | 2023-03-08 | 2023-03-08 | 一种计算机故障定位方法和计算机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126732A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103199919A (zh) * | 2013-04-19 | 2013-07-10 | 重庆邮电大学 | 一种多参数感知的高精度网络故障筛选定位系统及方法 |
CN106547668A (zh) * | 2015-09-21 | 2017-03-29 | 龙芯中科技术有限公司 | 计算机系统故障告警方法、装置及系统 |
CN109032927A (zh) * | 2018-06-26 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种漏洞挖掘方法及装置 |
CN109639450A (zh) * | 2018-10-23 | 2019-04-16 | 平安壹钱包电子商务有限公司 | 基于神经网络的故障告警方法、计算机设备及存储介质 |
CN110058999A (zh) * | 2019-03-13 | 2019-07-26 | 平安普惠企业管理有限公司 | 电子装置、应用程序异常定位方法及存储介质 |
CN111967519A (zh) * | 2020-08-18 | 2020-11-20 | 河南工业大学 | 基于多源压缩感知的故障诊断方法 |
CN114670898A (zh) * | 2022-04-19 | 2022-06-28 | 北京运达华开科技有限公司 | 一种多功能轨道检测系统 |
CN114691753A (zh) * | 2022-03-18 | 2022-07-01 | 长沙理工大学 | 一种基于矩阵填充的快速多元时序异常检测方法 |
US20220296169A1 (en) * | 2021-03-17 | 2022-09-22 | Lakehead University | System and methods for collecting and processing data on one or more physiological parameters of monitored subject |
CN115146262A (zh) * | 2022-09-01 | 2022-10-04 | 杭州美创科技有限公司 | 基于eBPF技术的Linux系统内核漏洞补丁缓解方法及其系统 |
-
2023
- 2023-03-08 CN CN202310253592.7A patent/CN116126732A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103199919A (zh) * | 2013-04-19 | 2013-07-10 | 重庆邮电大学 | 一种多参数感知的高精度网络故障筛选定位系统及方法 |
CN106547668A (zh) * | 2015-09-21 | 2017-03-29 | 龙芯中科技术有限公司 | 计算机系统故障告警方法、装置及系统 |
CN109032927A (zh) * | 2018-06-26 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种漏洞挖掘方法及装置 |
CN109639450A (zh) * | 2018-10-23 | 2019-04-16 | 平安壹钱包电子商务有限公司 | 基于神经网络的故障告警方法、计算机设备及存储介质 |
CN110058999A (zh) * | 2019-03-13 | 2019-07-26 | 平安普惠企业管理有限公司 | 电子装置、应用程序异常定位方法及存储介质 |
CN111967519A (zh) * | 2020-08-18 | 2020-11-20 | 河南工业大学 | 基于多源压缩感知的故障诊断方法 |
US20220296169A1 (en) * | 2021-03-17 | 2022-09-22 | Lakehead University | System and methods for collecting and processing data on one or more physiological parameters of monitored subject |
CN114691753A (zh) * | 2022-03-18 | 2022-07-01 | 长沙理工大学 | 一种基于矩阵填充的快速多元时序异常检测方法 |
CN114670898A (zh) * | 2022-04-19 | 2022-06-28 | 北京运达华开科技有限公司 | 一种多功能轨道检测系统 |
CN115146262A (zh) * | 2022-09-01 | 2022-10-04 | 杭州美创科技有限公司 | 基于eBPF技术的Linux系统内核漏洞补丁缓解方法及其系统 |
Non-Patent Citations (5)
Title |
---|
HAOLIANG TAN ET AL.: "Exploring the Potential of Fast Delta Encoding: Marching to a Higher Compression Ratio", 2020 IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING (CLUSTER) * |
YASSINE HIMEUR ET AL.: "Artificial intelligence based anomaly detection of energy consumption in buildings: A review, current trends and new perspectives", SCIENCEDIRECT, vol. 287 * |
宫云战: "《软件测试教程 第3版》", 机械工业出版社 * |
尹政: "基于链路质量评估的能量感知型机会路由协议研究", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 02 * |
黄钊: "嵌入式SoC中硬件木马检测与安全设计防御关键技术研究", 《中国优秀博士学位论文全文数据库信息科技辑》, no. 08 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10373065B2 (en) | Generating database cluster health alerts using machine learning | |
US9921937B2 (en) | Behavior clustering analysis and alerting system for computer applications | |
KR101904911B1 (ko) | 하이브리드 퍼징 기반 보안 취약점 자동 탐색 방법 및 그 장치 | |
CN112436968B (zh) | 一种网络流量的监测方法、装置、设备及存储介质 | |
US10540358B2 (en) | Telemetry data contextualized across datasets | |
US20150205691A1 (en) | Event prediction using historical time series observations of a computer application | |
US8423493B2 (en) | Condition monitoring with automatically generated error templates from log messages and sensor trends based on time semi-intervals | |
US20150347268A1 (en) | Bottleneck Detector Application Programming Interface | |
CN102713862B (zh) | 故障原因提取装置、故障原因提取方法和程序记录介质 | |
US9870294B2 (en) | Visualization of behavior clustering of computer applications | |
JP7101272B2 (ja) | データ来歴を介した自動脅威アラートトリアージ | |
US20150205690A1 (en) | Computer performance prediction using search technologies | |
Jiang et al. | Efficient fault detection and diagnosis in complex software systems with information-theoretic monitoring | |
US20160259510A1 (en) | Preemptive trouble shooting using dialog manager | |
EP3097494A1 (en) | Computer performance prediction using search technologies | |
Song et al. | Design of anomaly detection and visualization tool for IoT blockchain | |
CN111858352B (zh) | 自动化测试监控的方法、装置、设备及存储介质 | |
Zhang et al. | Anomaly Detection of ICS based on EB-OCSVM | |
CN116126732A (zh) | 一种计算机故障定位方法和计算机 | |
Yu et al. | An approach to failure prediction in cluster by self-updating cause-and-effect graph | |
JP2019016194A (ja) | 状態識別方法、状態識別装置及び状態識別プログラム | |
Hu et al. | CARE: Enabling hardware performance counter based malware detection resilient to system resource competition | |
Zhou et al. | VarLog: Mining Invariants with Variables for Log Anomaly Detection | |
CN115470925B (zh) | 量子计算机 | |
CN111290870B (zh) | 一种检测异常的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |