CN106326022B - 转储的自动分配方法和设备 - Google Patents

转储的自动分配方法和设备 Download PDF

Info

Publication number
CN106326022B
CN106326022B CN201510364956.4A CN201510364956A CN106326022B CN 106326022 B CN106326022 B CN 106326022B CN 201510364956 A CN201510364956 A CN 201510364956A CN 106326022 B CN106326022 B CN 106326022B
Authority
CN
China
Prior art keywords
dump
score
storehouse
allocated
feature
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.)
Active
Application number
CN201510364956.4A
Other languages
English (en)
Other versions
CN106326022A (zh
Inventor
肖会兵
高健
韩耕
董继炳
康剑斌
高宏坡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Priority to CN201510364956.4A priority Critical patent/CN106326022B/zh
Priority to US15/200,269 priority patent/US20170147442A1/en
Publication of CN106326022A publication Critical patent/CN106326022A/zh
Application granted granted Critical
Publication of CN106326022B publication Critical patent/CN106326022B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

本公开的实施例涉及转储的自动分配方法和设备,该方法包括:计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分,并且将堆栈相似性得分大于堆栈相似性得分阈值的所有已分配的转储确定为相关的已分配的转储;响应于确定相关的已分配的转储,计算相关的已分配的转储中的每个转储的其它特征的得分,该其它特征包括与转储相关联的转储的新近度、转储的状态、转储的发行号、转储的版本号以及转储的重复值中的至少一项;根据堆栈相似性得分和其它特征的得分来计算总相似性得分,以及基于总相似性得分来对未分配的转储进行自动分配。本公开的实施例通过计算转储的堆栈相似性和其他特征的得分,能够快速、准确地对转储进行自动分配。

Description

转储的自动分配方法和设备
技术领域
本公开的实施例总体上涉及计算机领域,更具体地涉及转储的自动分配方法和设备。
背景技术
崩溃转储(crash dump)是计算机系统或进程崩溃时的状态快照。崩溃转储在系统发生崩溃或异常时保存故障信息或者环境信息,以供相关人员进行排错分析使用。在具有多个功能组件区域的大型系统中,在开发、测试和部署期间可能产生许多崩溃转储。在获得转储之后,通常需要确定大型系统中的具体哪个功能区域应当负责转储分析。
通常,可以根据转储的原因、理由或者签名将崩溃转储分类或分配到相应的功能区域。签名可以是堆栈信息或者转储中的其它内部状态。例如,崩溃转储中的堆栈信息是最常使用的信息,并且它是将产生的转储映射到某些功能区域的最有价值的签名。然而,现有技术中通过人工的对崩溃转储进行分配,不仅耗费大量时间精力,而且受分析人员知识的限制,导致转储分配的准确性较低。此外,不同的功能区域可以引起具有相似的甚至相同的堆栈转储,因此,仅仅依靠转储堆栈中的信息进行分类不够准确。
因此,在不断地产生崩溃转储时,如何在没有了解转储的具体内容的情况下,快速、准确地对转储进行自动分类,成为一个亟待解决的问题。
发明内容
有鉴于此,本公开的各实施例提出了一种转储的自动分配方法和设备。
根据本公开的一个方面,提供了一种转储的自动分配方法,该方法包括:计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分,并且将堆栈相似性得分大于堆栈相似性得分阈值的所有已分配的转储确定为相关的已分配的转储;响应于确定相关的已分配的转储,计算相关的已分配的转储中的每个转储的其它特征的得分,其它特征包括与转储相关联的转储的新近度、转储的状态、转储的发行号、转储的版本号以及转储的重复值中的至少一项;根据堆栈相似性得分和其它特征的得分来计算总相似性得分;以及基于总相似性得分来对未分配的转储进行自动分配。
根据本公开的一个实施例,该方法进一步包括:从转储获得与堆栈有关的信息,以及从转储、系统日志或系统数据库获得与其它特征有关的信息。
根据本公开的另一个实施例,其中计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分包括:选择转储中直接导致转储发生的一个堆栈来计算堆栈相似性得分,或者选择转储中的多个堆栈来计算堆栈相似性得分。
根据本公开的又一个实施例,其中计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分包括:通过从上到下逐行地比较堆栈中的行,来计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分。
根据本公开的一个实施例,其中计算相关的已分配的转储中的每个转储的其它特征的得分包括:分别计算其它特征中的每个特征的得分,并根据其它特征中的每个特征的权重来计算其它特征的得分。
根据本公开的另一个实施例,其中分别计算其它特征中的每个特征的得分包括:通过比较转储的时间戳信息来计算转储的新近度得分;和/或通过确定已分配的转储的当前状态来计算转储的状态得分;和/或通过比较转储的发行号信息来计算转储的发行号得分;和/或通过比较转储的版本号信息来计算转储的版本号得分;和/或通过确定已分配转储的副本数量来计算转储的重复值得分。
根据本公开的又一个实施例,其中通过比较转储的时间戳信息、发行号信息或者版本号信息来计算转储的新近度得分、发行号得分或者版本号得分包括:将所有的转储按照时间戳信息、发行号信息或者版本号信息的进行排序,并且根据转储之间的排序间隔来计算新近度得分、发行号得分或者版本号得分。
根据本公开的一个实施例,其中通过确定已分配的转储的当前状态来计算转储的状态得分包括:根据转储的当前状态在转储的所有状态中所处的顺序,来计算转储的状态得分。
根据本公开的另一个实施例,其中通过确定已分配转储的副本数量来计算转储的重复值得分包括:根据特定已分配的转储在所有已分配的转储中的累计副本数量,来计算转储的重复值得分。
根据本公开的又一个实施例,其中基于总相似性得分来对未分配的转储进行自动分配包括:选择总相似性得分排名前K名的相关的已分配的转储的分配区域作为候选分配区域,对前K名的相关的已分配的转储的分配区域进行统计,并且选择统计结果最高的分配区域作为最终分配区域,其中K≥3。
根据本公开的另一个方面,提供了一种转储的自动分配设备,该设备包括:堆栈相似性计算装置,用于计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分,并且将堆栈相似性得分大于堆栈相似性得分阈值的所有已分配的转储确定为相关的已分配的转储;其它特征得分计算装置,用于响应于确定相关的已分配的转储,计算相关的已分配的转储中的每个转储的其它特征的得分,其它特征包括与转储相关联的转储的新近度、转储的状态、转储的发行号、转储的版本号以及转储的重复值中的至少一项;总相似性计算装置,用于根据堆栈相似性得分和其它特征的得分来计算总相似性得分;以及转储自动分配装置,用于基于总相似性得分来对未分配的转储进行自动分配。
根据本公开的一个实施例,该设备进一步包括信息获得装置,信息获得装置用于从转储获得与堆栈有关的信息,以及从转储、系统日志或系统数据库获得与其它特征有关的信息。
根据本公开的另一个实施例,其中堆栈相似性计算装置进一步用于:选择转储中直接导致转储发生的一个堆栈来计算堆栈相似性得分,或者选择转储中的多个堆栈来计算堆栈相似性得分。
根据本公开的又一个实施例,其中堆栈相似性计算装置进一步用于:通过从上到下逐行地比较堆栈中的行,来计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分。
根据本公开的一个实施例,其中其它特征得分计算装置进一步用于:分别计算其它特征中的每个特征的得分,并根据其它特征中的每个特征的权重来计算其它特征的得分。
根据本公开的另一个实施例,其中其它特征得分计算装置进一步用于:通过比较转储的时间戳信息来计算转储的新近度得分;和/或通过确定已分配的转储的当前状态来计算转储的状态得分;和/或通过比较转储的发行号信息来计算转储的发行号得分;和/或通过比较转储的版本号信息来计算转储的版本号得分;和/或通过确定已分配转储的副本数量来计算转储的重复值得分。
根据本公开的又一个实施例,其中通过比较转储的时间戳信息、发行号信息或者版本号信息来计算转储的新近度得分、发行号得分或者版本号得分包括:将所有的转储按照时间戳信息、发行号信息或者版本号信息的进行排序,并且根据转储之间的排序间隔来计算新近度得分、发行号得分或者版本号得分。
根据本公开的一个实施例,通过确定已分配的转储的当前状态来计算转储的状态得分包括:根据转储的当前状态在转储的所有状态中所处的顺序,来计算转储的状态得分。
根据本公开的另一个实施例,通过确定已分配转储的副本数量来计算转储的重复值得分包括:根据特定已分配的转储在所有已分配的转储中的累计副本数量,来计算转储的重复值得分。
根据本公开的又一个实施例,其中转储自动分配装置进一步用于:选择总相似性得分排名前K名的相关的已分配的转储的分配区域作为候选分配区域,对前K名的相关的已分配的转储的分配区域进行统计,并且选择统计结果最高的分配区域作为最终分配区域,其中K≥3。
根据本公开的又一个方面,提供了一种计算机程序产品,该计算机程序产品包括具体化于其中的计算机可读程序指令,计算机可读程序指令在由处理器执行时,引起处理器执行根据本公开的实施例的转储的自动分配方法。
本公开的示例性实施例提供的示例性解决方案可以带来以下技术效果中的至少一种:基于历史已分配的转储信息,通过计算未分配的转储与已分配的转储之间的堆栈相似性和已分配的转储的其它特征的得分,能够确定与未分配的转储最相关的已分配的转储的分配区域,从而在没有了解具体知识领域的情况下,快速、准确地对转储进行自动分配。
附图说明
结合附图并参考以下详细说明,本公开的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实施例。在附图中:
图1图示了根据本公开的实施例的转储的自动分配方法100的流程图;
图2图示了根据本公开的另一个实施例的转储的自动分配方法200的流程图;
图3图示了根据本公开的实施例的转储的自动分配设备300的框图;
图4图示了可以在其中实现根据本公开的实施例的计算机设备的系统400的框图。
具体实施方式
以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
本文所使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出
应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制发明的范围。
图1图示了根据本公开的实施例的转储的自动分配方法100的流程图。参考图1,在步骤102处,计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分,并且将堆栈相似性得分大于堆栈相似性得分阈值的所有已分配的转储确定为相关的已分配的转储。
根据本公开的实施例,可以从转储获得与堆栈有关的信息,以及从转储、系统日志或系统数据库获得与其它特征有关的信息。例如,从转储文件收集关键信息,对于无法从转储文件本身获得的其它特征信息,可以从实况系统、可靠日志或者其它资源等进行收集。对于与转储有关的信息的收集可以实时地获得,也可以构建数据库,提前存储与转储有关的信息。这些信息很大程度上能够表示储之间的关联或者相关程度,包括但不限于转储文件中的堆栈、转储的时间戳信息、转储的状态(即,转储目前的处理状态)、转储的发行号(release)、转储的版本号(version)、转储的重复值(即,该转储被重复出现的次数)。在收集信息之后,可以对信息进行抽取或者处理以供后续计算使用。
堆栈相似性得分
一般来说,转储文件具有一个或者多个堆栈,堆栈信息可以从转储文件中获得。由于直接导致转储发生的一个堆栈是转储的直接代码路径和原因,因此,可以仅选择直接导致崩溃转储发生的堆栈(也被称为“panic stack”)来计算相似性得分。可选地,也可以选择转储中的多个堆栈来分别计算相似性得分,并将多个转储的得分进行加权组合形成堆栈相似性的总得分。可选地,也可以选择转储中的所有堆栈来分别计算堆栈相似性得分。
根据本公开的实施例,通过从上到下逐行地比较堆栈中的行,来计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分。例如,以下是直接导致转储发生的一个示例堆栈A,该堆栈A具有21行的深度。
libc.so.6!raise
libc.so.6!abort
libAAA.so!proc_do_abort
libAAA.so!rt_assert_int_take_user_space_panic_action
libBBB.so!rt_assert_fail_hard_assert_with_info
libBBB.so!rt_ux_spl_destroy
libBBB.so!rt_sked_spl_destroy
libBBB.so!p_raw_spl_destroy_nid
CCC.so!p_dsh_sched_spinlock_destroy_nid
DDD.so!p_dsh_Spinlock_unconstructed_t::destroy
DDD.so!p_dsh_Sthread_MutexSpl_unconstructed_t::destroy
DDD.so!Sthread_MutexSpl::~Sthread_MutexSpl
DDD.so!SelectStream::~SelectStream
DDD.so!smb_browserInitial::recvDgram
DDD.so!smb_browserInitial::start
DDD.so!Sthread_RootFunction
libBBB.so!csx_p_int_dsh_sched_thread_create_root
libBBB.so!csx_p_int_thread_wrapper
libBBB.so!csx_rt_sked_thread_wrapper
libpthread.so.0!start_thread
libc.so.6!clone
通过逐行地比较该示例堆栈A与每个已分配的转储的堆栈来计算堆栈相似性。该示例堆栈A与每个已分配的转储的堆栈之间的堆栈相似性或者匹配度可以通过公式(1)来计算。
其中,S表示堆栈相似性得分,D表示该示例堆栈A的总行数(深度),d表示与已分配的转储的堆栈的最大匹配的行数(深度)。在计算堆栈相似性时,从上到下逐行地进行比较,将连续匹配的行数确定为最大匹配的行数。例如,假设已分配的转储中包括如下堆栈B。
libc.so.6!raise
libc.so.6!abort
libAAA.so!proc_do_abort
libAAA.so!rt_assert_int_take_user_space_panic_action
libBBB.so!rt_assert_fail_hard_assert_with_info
libEEE.so!myassert
libpthread.so.0!start_thread
libc.so.6!clone
由于堆栈A的前五行与堆栈B的前五行相同,并且从第一行(libc.so.6!raise)开始顺序也相同,因此堆栈B与堆栈A的最大匹配行为五行。因此,通过公式(1)可以计算出堆栈A与堆栈B之间的堆栈相似性S为0.24(即,S=d/D,其中d=5,D=21)。
如果未分配的堆栈与某个已分配的堆栈具有相同的行数,并且每一行的内容完全相同,则这两个堆栈之间的相似性得分是1,否则,这两个堆栈之间的相似性得分在0-1之间。
根据本公开的另一个实施例,可以选择一些其它堆栈(例如,在转储时积极的不在等待的堆栈,或者对于描述堆栈状态有用的特定堆栈)来计算堆栈的总相似性得分,可以通过上述堆栈相似性得分计算方法来计算其它堆栈中的每个堆栈相似性得分,并且给出另一个备选相似性得分Sa,然后通过以下公式(2)来计算堆栈的总相似性得分。
S=f(Sa0,Sa1,Sa2,…) (2)
其中,S表示堆栈的总相似性得分,Sa0表示直接导致崩溃转储发生的堆栈(例如,panic stack)的相似性得分,Sa1~SaN表示其它堆栈的相似性得分。
接下来,在计算出堆栈相似性得分之后,将堆栈相似性得分大于堆栈相似性得分阈值的所有已分配的转储确定为相关的已分配的转储。堆栈的相似性是转储是否相似的最重要的因素之一,也就是说,如果堆栈之间的相似性低,则转储之间的相似程度也低。因此,在计算出堆栈相似性得分之和,对于小于等于堆栈相似性得分阈值的转储,认为其与未分配的堆栈的相关程度不高,因此不予考虑,所以,选择堆栈相似性得分大于堆栈相似性得分阈值的所有已分配的转储作为相关的已分配的转储,以供后续处理使用。
继续参考图1,在步骤104处,响应于已确定的相关的已分配的转储,计算相关的已分配的转储中的每个转储的其它特征的得分,其它特征包括与转储相关联的转储的新近度、转储的状态、转储的发行号、转储的版本号以及转储的重复值中的至少一项。虽然堆栈相似性是转储之间是否相关的重要因素,但是如果仅仅考虑堆栈之间的相似性,则这种自动分配方法还不够非常准确。因此,除了堆栈相似性之外,还计算与转储相关联的其它特征(例如,转储的新近度、转储的状态、转储的发行号、转储的版本号以及转储的重复值)的得分。可选地,可以计算其它特征中的一个或者多个特征的得分。
根据本公开的实施例,分别计算其它特征中的每个特征的得分。例如,分别的计算转储的新近度得分、状态得分、发行号得分、版本号得分以及重复值得分中的一个或者多个得分。
新近度得分
新近度(recency)被定义为转储之间的时间紧密程度。在获得转储的时间戳信息之后,根据转储的时间戳信息对所有转储进行排序,每个转储可以被分配作为时间戳顺序#的唯一的T#。因此,T#是从0到N的唯一编号,以标记转储发生的时间线,其中N表示所有可用的转储的总数。通过以下公式(3)来计算已分配的转储与未分配的转储之间的新近度得分。
其中,R表示已分配的转储与未分配的转储之间的新近度得分,公式(3)已经进行了R值的归一化处理,因此R的值在0-1之间,Tu表示未分配的转储的时间戳顺序T#,Ta表示已分配的转储的时间戳顺序T#,L表示在最近的转储上的加权的带宽(band width)参数,其指示前L名或者第L名前后的转储需要被重点考虑,根据一个实施例,将L的默认值设置为10000。然而,公式(3)只是一种示例性计算方式,可选地,还可以通过计算转储之间的时间间隔等方式确定新近度得分。
状态得分
转储从产生到最终被解决一共会经历多个状态,转储的状态表示着转储由指定区域处理的处理进展情况。例如,某个转储具有以下五种处理状态,当转储首先被产生时,其状态是WAITING_ASSIGN,然后它被分配到相应的所有者进行处理,其状态是“IN_PROGESS”,如果所有者得到转储发生的根本原因,则他将会将转储的状态其设置为“ROOT_CAUSE_KNOWN”;然后进行相应的修正处理,即进入状态“FIX_IN_PROGRESS”,最终在完成转储的修正处理之后,状态变为已修正状态“FIXED”。因此,针对上述转储的示例分析状态的顺序如下:
WAITING_ASSIGN(0)->IN_PROGRESS(1)->ROOT_CAUSE_KNOWN(2)->FIX_IN_PROGRESS(3)->FIXED(4)
如以上顺序所指示的,如果转储的状态指示转储是较新的,则对该转储打更高的分。一般来说,新产生的转储更可能与未分配的转储相关,而那些已经修正的转储,则较少可能与未分配的转储相关。因此,对于具有M个状态的转储而言,可以通过以下公式(4)来计算已分配的转储的状态得分。
其中,Sv表示转储的状态得分,它的值在0-1之间,Os表示转储的当前状态在所有状态中所处的顺序,例如,“IN_PROGRESS”状态的顺序是1,N表示被选择为归一化状态得分的值,其中N≥M。例如,将N选择为10,从而计算出当前状态为“IN_PROGRESS”的转储的状态得分是0.9,而当前状态为“FIXED”的转储的状态得分是0.6,这也说明了正在被处理的那些转储的热度得分反而更高。然而,上述状态顺序和公式(4)只是一种示例,可以包括其他状态顺序,并且根据转储的当前状态计算出转储的状态得分。
发行号得分
在工程组织中,针对相同的产品可以开发许多不同的发行号(release)。一般来说,与具有不同发行号的两个转储相比,具有相同发行号的两个转储之间的关联性更大。发行号信息一般可以从产生转储的系统中被获得。在一个实施例中,如果未分配的转储与已分配的转储的发行号相同,则发行号得分被确定为1,如果不相同,则发行号得分被确定为0。在另一个实施例中,如果发行号可以按照发行的先后时间或者顺序进行排序,则通过以下公式(5)根据转储之间的发行号排序间隔来计算转储的发行号得分。
其中,Rv表示转储的发行号得分,Smax表示可用的发行号的最大顺序编号,s表示特定已分配的转储的发行号顺序编号,S表示未分配的转储的发行号顺序编号。由公式(5)可见,转储之间的发行号越接近,发行号得分越高。根据本公开的另一个实施例,如果在特定的发行号上转储发生更为频繁,则也可以对该发行号设置更高的发行号得分。
版本号得分
在工程组织中,针对相同的产品可以开发许多不同的版本号(version)。一般来说,与具有不同版本号的两个转储相比,具有相同版本号的两个转储之间的关联性更大。版本号信息一般可以从产生转储的系统中被获得。在一个实施例中,如果未分配的转储与已分配的转储的版本号相同,则版本号得分被确定为1,如果不相同,则版本号得分被确定为0。在另一个实施例中,如果版本号可以按照版本的先后时间或者顺序进行排序,则通过以下公式(6)根据转储之间的版本号排序间隔来计算转储的版本号得分。
其中,V表示转储的版本号得分,Smax表示可用的版本号的最大顺序编号,s表示特定已分配的转储的版本号顺序编号,S表示未分配的转储的版本号顺序编号。由公式(5)可见,转储之间的版本号越接近,版本号得分越高。根据本公开的另一个实施例,如果在特定的版本号上转储发生更为频繁,则也可以对该版本号设置更高的版本号得分。
重复值得分
一般来说,在历史已分配的转储的分析或者调试期间,会标识相同的转储,这些转储重复信息会被存储在数据库中,可选地,也可以在转储的状态分析过程中记录转储的重复次数。通常,转储重复的次数越多,说明该转储出现的可能性越大,转储的关注度和流行性也越大,因此未分配的转储与其相关的可能性也越大。根据特定已分配的转储在所有已分配的转储中的累计副本数量,来计算转储的重复值得分。例如,可以通过以下公式(7)来计算转储的重复值得分。
其中,Dv表示转储的重复得分,它的值在0-1之间,Cd表示转储被重复的次数,D表示所有转储中的转储的最高重复次数,如果D的值是0,则默认将其设置为1。
在分别计算其它特征中的每个特征的得分(例如,R、Sv、Rv、V、Dv)之后,根据其它特征中的每个特征的权重来计算其它特征的得分。根据本公开的一个实施例,其它特征之间可以设置为相同的权重(例如,1:1),则其它特征的得分等于每个特征得分(例如,R、Sv、Rv、V、Dv)之和。根据本公开的另一个实施例,其它特征之间的权重可以设置为不相同,则根据各自的权重来计算综合的其它特征的得分。例如,其它特征的得分=a1×R+a2×Sv+a3×Rv+a4×V+a5×Dv,其中a1-a5分别表示各个特征的权重。
继续参考图1,在步骤106处,根据堆栈相似性得分和其它特征的得分来计算总相似性得分。根据本公开的一个实施例,总相似得分等于堆栈相似性得分和其它特征的得分的和。例如,考虑到堆栈相似的更重要性,可以将堆栈相似性设置较高的权重、将其它特征的得分设置较低的权重,从而根据堆栈和其它特征的不同权重来计算出转储之间的总相似得分。
在步骤108处,基于总相似性得分来对未分配的转储进行自动分配。根据总相似得分,选择最相关的转储的分配区域作为未分配的转储的推荐分配区域。根据本公开的一个实施例,可以将得分最高的已分配的转储确定为最相关的转储,然后将未分配的转储分配到该最相关的转储的分配区域。
根据本公开的另一个实施例,选择总相似性得分排名前K名的相关的已分配的转储的分配区域作为候选分配区域,对前K名的相关的已分配的转储的分配区域进行统计或者投票,并且选择统计结果最高的分配区域作为最终分配区域,其中K≥3。如果一个区域和另一个区域的统计出的次数相同,则选择对应于这两个区域的转储中得分排名最高的转储对应的区域作为最终分配区域。本公开的实施例中所使用的统计或者投票算法的原理可以参考现有技术的K-近邻算法的处理方法。
举例来说,以下是针对具有事件#680629命名为safe_dump_spb_FNM00124800443_2014-10-23_15_27_50_29160_safe的给定转储的示例分类,在该示例中,选择前9个匹配的已分配的转储的进行区域统计。根据统计结果,前9名中,出现次数最多的区域是“PlatformCore:Platform”,共3次,因此,事件#68062的转储自动分配的区域是“Platform Core:Platform”。
表1:总相似性得分排名前9的转储的得分
由此可见,本公开的实施例的方案能够快速地、自动地对转储进行自动分类,并且其转储分类的准确率超过60%,而现有的人工转储分类的准确率一般都只有50%左右,因此,本公开的实施例的方案能够更准确地对转储进行分类。
图2图示了根据本公开的另一个实施例的转储的自动分配方法200的流程图。在步骤202处,获得与转储有关的信息,例如获得转储的堆栈信息、新近度信息、状态信息、发行号信息、版本号信息或者重复值信息中的至少两项。在步骤204处,对获得的信息进行数据抽取和准备,使得信息被转换成可以被计算的标准化格式。在步骤206处,进行特征转换和归一化处理,计算出相应的特征得分(例如,以上所描述的S、R、Sv、Rv、V、Dv中的至少两项),并对每个特征得分进行归一化处理,使得每个特征得分的值在0-1之间。在步骤208处,根据每个特征得分计算总得分(例如,根据每个特征的加权值进行加权计算,或者直接将每个特征得分相加来得到总得分),并且按得分对相关的未分配的转储进行排名,并且选择前K名(例如,K=10)的转储对应的区域进行统计(例如,前10名中,AAA区域出现5次,BBB区域出现3次),根据统计结果选择最相关的区域(例如,AAA区域)进行分配。
图3图示了根据本公开的实施例的转储的自动分配设备300的框图,该设备包括:堆栈相似性计算装置302,用于计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分,并且将堆栈相似性得分大于堆栈相似性得分阈值的所有已分配的转储确定为相关的已分配的转储;其它特征得分计算装置304,用于响应于确定相关的已分配的转储,计算相关的已分配的转储中的每个转储的其它特征的得分,其它特征包括与转储相关联的转储的新近度、转储的状态、转储的发行号、转储的版本号以及转储的重复值中的至少一项;总相似性计算装置306,用于根据堆栈相似性得分和其它特征的得分来计算总相似性得分;以及转储自动分配装置308,转储自动分配装置用于基于总相似性得分来对未分配的转储进行自动分配。
应当理解,设备300可以利用各种方式来实现。例如,在某些实施例中,设备300可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本公开的实施例的设备和装置不仅可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合来实现。
在下文中,将参考图4来描述可以在其中实现本公开的实施例的计算机设备。图4图示了可以在其中实现根据本公开的实施例的计算机设备的系统400的框图。
图4中所示的计算机系统包括CPU(中央处理单元)401、RAM(随机访问存储器)402、ROM(只读存储器)403、系统总线404、硬盘控制器405、键盘控制器406、串行接口控制器407、并行接口控制器408、显示器控制器409、硬盘410、键盘411、串行外部设备412、并行外部设备413和显示器414。在这些部件中,与系统总线404相连的有CPU 401、RAM 402、ROM 403、硬盘控制器405、键盘控制器406、串行接口控制器407、并行接口控制器408和显示器控制器409。硬盘410与硬盘控制器405相连,键盘411与键盘控制器406相连,串行外部设备412与串行接口控制器407相连,并行外部设备413与并行接口控制器408相连,以及显示器414与显示器控制器409相连。需要说明的是,图4所述的结构框图仅仅为了示例的目的而示出的,并非是对本公开的限制。在一些情况下,可以根据需要添加或者减少其中的一些设备。
本公开的实施方式可以作为计算机程序代码存储在上计算机的例如硬盘410的存储设备中,在被载入诸如内存中运行时,将使得CPU 401执行根据本公开的转储的自动分配方法。
应当注意,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的实施例可选实施例,并不用于限制本公开的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本公开的实施例,但是应该理解,本公开的实施例并不限于所公开的具体实施例。本公开的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

Claims (21)

1.一种转储的自动分配方法,包括:
计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分,并且将所述堆栈相似性得分大于堆栈相似性得分阈值的所有已分配的转储确定为相关的已分配的转储;
响应于确定所述相关的已分配的转储,计算所述相关的已分配的转储中的每个转储的其它特征的得分,所述其它特征包括与转储相关联的转储的新近度、转储的状态、转储的发行号、转储的版本号以及转储的重复值中的至少一项,所述新近度表示转储之间的时间紧密程度;
根据所述堆栈相似性得分和所述其它特征的得分来计算总相似性得分;以及
基于所述总相似性得分来对所述未分配的转储进行自动分配。
2.根据权利要求1所述的方法,进一步包括:从所述转储获得与堆栈有关的信息,以及从所述转储、系统日志或系统数据库获得与其它特征有关的信息。
3.根据权利要求1所述的方法,其中计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分包括:选择转储中直接导致转储发生的一个堆栈来计算堆栈相似性得分,或者选择转储中的多个堆栈来计算堆栈相似性得分。
4.根据权利要求1或3所述的方法,其中计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分包括:通过从上到下逐行地比较堆栈中的行,来计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分。
5.根据权利要求1所述的方法,其中计算所述相关的已分配的转储中的每个转储的其它特征的得分包括:分别计算其它特征中的每个特征的得分,并根据所述其它特征中的每个特征的权重来计算其它特征的得分。
6.根据权利要求5所述的方法,其中分别计算其它特征中的每个特征的得分包括:
通过比较转储的时间戳信息来计算转储的新近度得分;和/或
通过确定已分配的转储的当前状态来计算转储的状态得分;和/或
通过比较转储的发行号信息来计算转储的发行号得分;和/或
通过比较转储的版本号信息来计算转储的版本号得分;和/或
通过确定已分配转储的副本数量来计算转储的重复值得分。
7.根据权利要求6所述的方法,其中通过比较转储的时间戳信息、发行号信息或者版本号信息来计算转储的新近度得分、发行号得分或者版本号得分包括:将所有的转储按照时间戳信息、发行号信息或者版本号信息的进行排序,并且根据转储之间的排序间隔来计算新近度得分、发行号得分或者版本号得分。
8.根据权利要求6所述的方法,其中通过确定已分配的转储的当前状态来计算转储的状态得分包括:根据转储的当前状态在转储的所有状态中所处的顺序,来计算转储的状态得分。
9.根据权利要求6所述的方法,其中通过确定已分配转储的副本数量来计算转储的重复值得分包括:根据特定已分配的转储在所有已分配的转储中的累计副本数量,来计算转储的重复值得分。
10.根据权利要求1所述的方法,其中基于所述总相似性得分来对未分配的转储进行自动分配包括:
选择总相似性得分排名前K名的相关的已分配的转储的分配区域作为候选分配区域,对所述前K名的相关的已分配的转储的分配区域进行统计,并且选择统计结果最高的分配区域作为最终分配区域,其中K≥3。
11.一种转储的自动分配设备,包括:
堆栈相似性计算装置,所述堆栈相似性计算装置用于计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分,并且将所述堆栈相似性得分大于堆栈相似性得分阈值的所有已分配的转储确定为相关的已分配的转储;
其它特征得分计算装置,所述其它特征得分计算装置用于响应于确定所述相关的已分配的转储,计算所述相关的已分配的转储中的每个转储的其它特征的得分,所述其它特征包括与转储相关联的转储的新近度、转储的状态、转储的发行号、转储的版本号以及转储的重复值中的至少一项,所述新近度表示转储之间的时间紧密程度;
总相似性计算装置,所述总相似性计算装置用于根据所述堆栈相似性得分和所述其它特征的得分来计算总相似性得分;以及
转储自动分配装置,所述转储自动分配装置用于基于所述总相似性得分来对所述未分配的转储进行自动分配。
12.根据权利要求11所述的设备,进一步包括信息获得装置,所述信息获得装置用于从所述转储获得与堆栈有关的信息,以及从所述转储、系统日志或系统数据库获得与其它特征有关的信息。
13.根据权利要求11所述的设备,其中所述堆栈相似性计算装置进一步用于:选择转储中直接导致转储发生的一个堆栈来计算堆栈相似性得分,或者选择转储中的多个堆栈来计算堆栈相似性得分。
14.根据权利要求11或13所述的设备,其中所述堆栈相似性计算装置进一步用于:通过从上到下逐行地比较堆栈中的行,来计算未分配的转储与已分配的转储中的每个转储之间的堆栈相似性得分。
15.根据权利要求11所述的设备,其中所述其它特征得分计算装置进一步用于:分别计算其它特征中的每个特征的得分,并根据所述其它特征中的每个特征的权重来计算其它特征的得分。
16.根据权利要求15所述的设备,其中所述其它特征得分计算装置进一步用于:
通过比较转储的时间戳信息来计算转储的新近度得分;和/或
通过确定已分配的转储的当前状态来计算转储的状态得分;和/或
通过比较转储的发行号信息来计算转储的发行号得分;和/或
通过比较转储的版本号信息来计算转储的版本号得分;和/或
通过确定已分配转储的副本数量来计算转储的重复值得分。
17.根据权利要求16所述的设备,其中通过比较转储的时间戳信息、发行号信息或者版本号信息来计算转储的新近度得分、发行号得分或者版本号得分包括:将所有的转储按照时间戳信息、发行号信息或者版本号信息的进行排序,并且根据转储之间的排序间隔来计算新近度得分、发行号得分或者版本号得分。
18.根据权利要求16所述的设备,其中通过确定已分配的转储的当前状态来计算转储的状态得分包括:根据转储的当前状态在转储的所有状态中所处的顺序,来计算转储的状态得分。
19.根据权利要求16所述的设备,其中通过确定已分配转储的副本数量来计算转储的重复值得分包括:根据特定已分配的转储在所有已分配的转储中的累计副本数量,来计算转储的重复值得分。
20.根据权利要求11所述的设备,其中所述转储自动分配装置进一步用于:
选择总相似性得分排名前K名的相关的已分配的转储的分配区域作为候选分配区域,对所述前K名的相关的已分配的转储的分配区域进行统计,并且选择统计结果最高的分配区域作为最终分配区域,其中K≥3。
21.一种计算机存储介质,其存储有计算机可读程序指令,所述计算机可读程序指令在由处理器执行时,引起所述处理器执行根据权利要求1至10中任一项所述的方法。
CN201510364956.4A 2015-06-26 2015-06-26 转储的自动分配方法和设备 Active CN106326022B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510364956.4A CN106326022B (zh) 2015-06-26 2015-06-26 转储的自动分配方法和设备
US15/200,269 US20170147442A1 (en) 2015-06-26 2016-07-01 Automatic assignment of dump

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510364956.4A CN106326022B (zh) 2015-06-26 2015-06-26 转储的自动分配方法和设备

Publications (2)

Publication Number Publication Date
CN106326022A CN106326022A (zh) 2017-01-11
CN106326022B true CN106326022B (zh) 2019-05-10

Family

ID=57723194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510364956.4A Active CN106326022B (zh) 2015-06-26 2015-06-26 转储的自动分配方法和设备

Country Status (2)

Country Link
US (1) US20170147442A1 (zh)
CN (1) CN106326022B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080125B1 (en) * 2020-03-19 2021-08-03 Oracle International Corporation Identifying and clustering call stacks across multiple memory dumps with out-of-memory errors

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295268A (zh) * 2007-04-27 2008-10-29 国际商业机器公司 面向软件系统的分区存储器转储方法和装置
CN102999406A (zh) * 2011-09-07 2013-03-27 国际商业机器公司 从硬件故障模式的增强转储数据收集的方法和系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840946B2 (en) * 2006-06-02 2010-11-23 International Business Machines Corporation System and method for matching a plurality of ordered sequences with applications to call stack analysis to identify known software problems
US8453027B2 (en) * 2009-09-17 2013-05-28 Microsoft Corporation Similarity detection for error reports
US8645763B2 (en) * 2011-09-12 2014-02-04 Microsoft Corporation Memory dump with expanded data and user privacy protection
US9852041B2 (en) * 2013-09-27 2017-12-26 Microsoft Technology Licensing, Llc Systems and methods for categorizing exceptions and logs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295268A (zh) * 2007-04-27 2008-10-29 国际商业机器公司 面向软件系统的分区存储器转储方法和装置
CN102999406A (zh) * 2011-09-07 2013-03-27 国际商业机器公司 从硬件故障模式的增强转储数据收集的方法和系统

Also Published As

Publication number Publication date
US20170147442A1 (en) 2017-05-25
CN106326022A (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
CN105045831B (zh) 一种消息推送方法及装置
KR101879416B1 (ko) 이상 금융거래 탐지 방법 및 그 전자 장치
EP2854053A1 (en) Defect prediction method and device
CN107203450A (zh) 故障的分类方法和设备
US10943181B2 (en) Just in time classifier training
CN108388509B (zh) 一种软件测试方法、计算机可读存储介质及终端设备
JP2015026188A (ja) データベース分析装置及び方法
CN108073611A (zh) 一种告警信息的过滤方法及装置
CN106878038A (zh) 一种通信网络中故障定位方法及装置
CN109819128A (zh) 一种电话录音的质检方法和装置
CN106326022B (zh) 转储的自动分配方法和设备
CN110415044A (zh) 作弊检测方法、装置、设备及存储介质
CN110414591A (zh) 一种数据处理方法以及设备
Mokdad et al. Determination of an optimal feature selection method based on maximum shapley value
CN108255704B (zh) 一种脚本调用事件的异常响应方法及其终端
CN115439928A (zh) 一种操作行为识别方法及装置
US20140114900A1 (en) Computer-readable recording medium, extracting device, and extracting method
CN115169705A (zh) 配送时长预测方法、装置、存储介质及计算机设备
CN105656858B (zh) 一种数据更新方法及装置
CN113268419A (zh) 测试用例优化信息的生成方法、装置、设备和存储介质
Wang et al. A benchmark dataset for evaluating process similarity search methods
CN110298690A (zh) 对象类目的周期判断方法、装置、服务器及可读存储介质
Tiwari et al. A hybrid approach for feature selection
CN111382874A (zh) 实现线上机器学习模型的更新迭代的方法和装置
CN109871215B (zh) 软件发布的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200420

Address after: Massachusetts, USA

Patentee after: EMC IP Holding Company LLC

Address before: Massachusetts, USA

Patentee before: EMC Corp.