System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及文件分析,尤其涉及一种文件分析方法、装置、设备、存储介质以及产品。
技术介绍
1、在当今的软件开发和系统监控领域,线程转储文件作为一种重要的诊断工具,被广泛应用于分析java虚拟机(jvm)中的线程状态。线程转储文件能够提供某一时刻所有线程的堆栈信息,这对于排查性能问题、死锁、资源竞争等故障至关重要。然而,传统的线程转储文件分析方法主要依赖于手动操作,这不仅效率低下,而且容易出错。分析人员需要对java虚拟机有深入的理解,才能准确解读线程转储文件中的复杂信息,这无疑增加了故障定位的门槛。
2、现有的技术在处理线程转储文件时,通常需要分析人员逐一检查每个线程的状态和堆栈信息,这种方法不仅耗时,而且难以全面覆盖所有线程。在面对复杂的故障场景时,手动分析往往难以准确定位问题,导致故障排查的效率和准确性受到严重影响。此外,手动分析过程容易受到分析人员个人经验和技能的限制,这使得分析结果的一致性和可靠性难以保证。
3、上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本申请的主要目的在于提供一种文件分析方法、装置、设备、存储介质以及计算机程序产品,旨在提高线程转储文件分析的效率和准确性。
2、为实现上述目的,本申请提出一种文件分析方法,所述的方法包括:
3、响应于系统告警信息,获取线程转储文件;
4、对所述线程转储文件进行结构化解析,得到线程解析表;
5、基于所述线程解
6、在一实施例中,所述响应于系统告警信息,获取线程转储文件的步骤包括:
7、响应于系统告警信息,触发文件采集进程并生成文件采集触发信号和线程转储命令;
8、根据所述文件采集触发信号,获取目标进程id;
9、根据所述目标进程id,调用线程转储采集器执行所述线程转储命令,得到所述目标进程对应的若干线程转储文件。
10、在一实施例中,所述线程解析表包括线程关键字段信息,所述线程关键字段信息包括线程锁信息,所述基于所述线程解析表对所述线程转储文件进行线程分析,得到告警分析结果的步骤包括:
11、基于所述线程解析表进行线程名称聚类分析,得到线程名称聚类分析结果;
12、基于预设的线程堆栈聚类分析算法和所述线程解析表进行线程堆栈聚类分析,得到线程堆栈聚类分析结果;
13、基于所述线程解析表和线程锁信息进行阻塞线程依赖分析,得到阻塞线程依赖分析结果;
14、基于所述程名称聚类分析结果、线程堆栈聚类分析结果和阻塞线程依赖分析结果生成告警分析结果。
15、在一实施例中,所述基于所述线程解析表进行线程名称聚类分析,得到线程名称聚类分析结果的步骤还包括:
16、遍历所述线程解析表,根据所述线程关键字段信息获取目标线程名称;
17、通过预先设置的正则表达式去除所述目标线程名称的线程序号,得到线程名称前缀;
18、基于所述线程名称前缀进行线程名称前缀关联,得到线程-前缀对应列表,所述线程-前缀对应列表中包含前缀关联线程数量;
19、若所述前缀关联线程数量大于预设第一数量阈值,则将所述前缀关联线程数量对应的线程名称前缀确定为目标线程名称前缀,得到线程名称聚类分析结果。
20、在一实施例中,所述基于预设的线程堆栈聚类分析算法和所述线程解析表进行线程堆栈聚类分析,得到线程堆栈聚类分析结果的步骤包括:
21、提取所述线程解析表中的堆栈信息数组;
22、基于所述堆栈信息数组中预设数量的栈帧进行拼接和标准化处理,得到堆栈字符串;
23、基于所述堆栈字符串对所述线程解析表中的目标线程进行特征排序,得到排序线程列表;
24、遍历所述排序线程列表,通过莱文斯坦距离算法计算相邻堆栈的特征相似度;
25、若所述特征相似度大于预设相似度阈值,则将所述相邻堆栈对应的线程确定为同类聚类线程;
26、若所述同类聚类线程的数量大于预设第二数量阈值,则将所述同类聚类线程确定为目标同类聚类线程,得到线程堆栈聚类分析结果。
27、在一实施例中,所述基于所述线程解析表和线程锁信息进行阻塞线程依赖分析,得到阻塞线程依赖分析结果的步骤包括:
28、将所述线程锁信息中线程锁状态为阻塞或等待的线程,确定为目标阻塞线程;
29、获取所述目标阻塞线程对应的等待锁id;
30、遍历所述线程解析表,将所述线程解析表中持有锁id与所述等待锁id相同的线程,确定为目标依赖线程,得到阻塞线程依赖分析结果。
31、此外,为实现上述目的,本申请还提出一种文件分析装置,所述文件分析装置包括:
32、获取模块,用于响应于系统告警信息,获取线程转储文件;
33、解析模块,用于对所述线程转储文件进行结构化解析,得到线程解析表;
34、分析模块,用于基于所述线程解析表对所述线程转储文件进行线程分析,得到告警分析结果。
35、此外,为实现上述目的,本申请还提出一种文件分析设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的文件分析方法的步骤。
36、此外,为实现上述目的,本申请还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的文件分析方法的步骤。
37、此外,为实现上述目的,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的文件分析方法的步骤。
38、本申请提出的一个或多个技术方案,通过响应于系统告警信息,获取线程转储文件;对所述线程转储文件进行结构化解析,得到线程解析表;基于所述线程解析表对所述线程转储文件进行线程分析,得到告警分析结果,通过上述方案自动对线程转储文件进行结构化解析,得到包含了线程各种关键信息的线程解析表,然后基于线程解析表进行自动线程分析,快速排查线程过多、程序堵塞、资源竞争等问题,降低故障定位门槛,提高了用于故障排查的文件分析的效率和准确性。
本文档来自技高网...【技术保护点】
1.一种文件分析方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述响应于系统告警信息,获取线程转储文件的步骤包括:
3.如权利要求1所述的方法,其特征在于,所述线程解析表包括线程关键字段信息,所述线程关键字段信息包括线程锁信息,所述基于所述线程解析表对所述线程转储文件进行线程分析,得到告警分析结果的步骤包括:
4.如权利要求3所述的方法,其特征在于,所述基于所述线程解析表进行线程名称聚类分析,得到线程名称聚类分析结果的步骤还包括:
5.如权利要求3所述的方法,其特征在于,所述基于预设的线程堆栈聚类分析算法和所述线程解析表进行线程堆栈聚类分析,得到线程堆栈聚类分析结果的步骤包括:
6.如权利要求3所述的方法,其特征在于,所述基于所述线程解析表和线程锁信息进行阻塞线程依赖分析,得到阻塞线程依赖分析结果的步骤包括:
7.一种文件分析装置,其特征在于,所述装置包括:
8.一种文件分析设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机
9.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的文件分析方法的步骤。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的文件分析方法的步骤。
...【技术特征摘要】
1.一种文件分析方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述响应于系统告警信息,获取线程转储文件的步骤包括:
3.如权利要求1所述的方法,其特征在于,所述线程解析表包括线程关键字段信息,所述线程关键字段信息包括线程锁信息,所述基于所述线程解析表对所述线程转储文件进行线程分析,得到告警分析结果的步骤包括:
4.如权利要求3所述的方法,其特征在于,所述基于所述线程解析表进行线程名称聚类分析,得到线程名称聚类分析结果的步骤还包括:
5.如权利要求3所述的方法,其特征在于,所述基于预设的线程堆栈聚类分析算法和所述线程解析表进行线程堆栈聚类分析,得到线程堆栈聚类分析结果的步骤包括:
6.如权利要求3所述的方法,其特征在于,所述...
【专利技术属性】
技术研发人员:伍志强,刘道浩,
申请(专利权)人:招商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。