CN101162437A - 基于关系模型分析系统性能采样数据的方法、设备和系统 - Google Patents

基于关系模型分析系统性能采样数据的方法、设备和系统 Download PDF

Info

Publication number
CN101162437A
CN101162437A CNA2006101423579A CN200610142357A CN101162437A CN 101162437 A CN101162437 A CN 101162437A CN A2006101423579 A CNA2006101423579 A CN A2006101423579A CN 200610142357 A CN200610142357 A CN 200610142357A CN 101162437 A CN101162437 A CN 101162437A
Authority
CN
China
Prior art keywords
system performance
tree structure
row
hierarchical tree
node
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.)
Granted
Application number
CNA2006101423579A
Other languages
English (en)
Other versions
CN100507869C (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CNB2006101423579A priority Critical patent/CN100507869C/zh
Priority to US11/869,959 priority patent/US8290985B2/en
Publication of CN101162437A publication Critical patent/CN101162437A/zh
Application granted granted Critical
Publication of CN100507869C publication Critical patent/CN100507869C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Abstract

本发明提供了一种用于根据预定的关系模型、对计算机系统的性能采样数据重新构造目标分级树结构,从而获得某一选定节点的系统性能采样信息的方法、设备和系统。所述预定关系模型是根据所述系统性能采样数据的分级树结构预先定义的,并且存储在一个外部存储系统中。通过利用本发明,可以根据需要构造动态的分级树结构,从而减少了存储器的占用量,并且便于用户随意查看系统性能采样数据。

Description

基于关系模型分析系统性能采样数据的方法、设备和系统
技术领域
本发明总体上涉及计算机系统性能分析和优化领域,并且尤其涉及在计算机系统中对系统性能采样数据进行分析的技术领域。
背景技术
随着信息技术以及计算机技术的迅猛发展,计算机用户对计算机系统的性能要求越来越高。因此,为了避免计算机系统中出现性能瓶颈(包括硬件瓶颈和软件瓶颈),需要对计算机系统进行性能评估和分析,以便提供相应的性能优化方案,对系统的硬件和软件进行升级和/或改进系统体系结构,从而达到合理的硬件和软件配置,使系统资源的使用达到平衡。
通常情况下,为了评估计算机系统的性能,需要执行系统性能采样(profiling)处理,以便收集诸如系统的进程状态、以及不同的处理、模块和线程分别使用多少CPU资源之类的信息。这种信息可以被合称为系统性能采样数据(profiling data)。在计算机系统的用户、系统管理员、或者系统性能分析员利用现有性能分析工具对系统性能采样数据进行分析之后,能够对计算机系统中某些重要的组件、例如可共享的运行时间库(runtime library)或者编译器进行改进。取决于系统性能采样的持续时间以及系统中当前正在运行的处理、线程等的数目,系统性能采样所得到的数据文件的大小可能在从几兆字节到几百兆字节的大小范围内变化。
由于系统性能分析往往基于经过汇总的采样数据,所以需要对系统性能采样数据进行读取、计算、组织、或者甚至对其进行转换。在现有的计算机系统性能分析技术中,为了满足上述要求,依照传统的方式,分析工具需要预先读取系统性能采样数据的全部内容,然后才能够根据需要在存储器中创建目标数据模型用于后续分析。
然而,这样做将会导致很多问题。例如,由于需要将系统性能采样数据文件转变成数据模型存放在存储器中,因此,随着系统性能采样数据文件的大小增加,存储器的占用量也极大地增加了。而且,对于某些非常大的系统性能采样数据文件来说,由于受到存储器容量的限制,要全部打开这些文件、读取其全部内容并且进而在存储器中创建目标数据模型几乎是不可能实现的。
此外,计算机系统的系统性能采样数据文件在多数情况下采用“进程/线程/模块(Process/Thread/Module)”的分级结构来组织系统性能采样数据,该分级结构反映了系统运行时环境下的结构,并且在大多数情况下也都是十分有用的。但是,除了最有用的、大家所熟知的“进程/线程/模块”的分级结构之外,在实际的系统性能分析过程中,用户往往也需要构造其它的分级树结构(也可以将其称之为透视图)从其它不同的角度来分析数据,例如,用户可能需要在“模块/进程”的分级结构中查看一个模块在不同进程中的被使用情况。这时,就需要有另外的、用于在对全部系统性能采样数据进行重新计算之后对系统性能采样数据进行重新组织的数据模型。因此,为了表示多个分级树结构,需要定义多个分级结构,产生不同的目标数据模型,因而需要占用更多的存储器空间。
因此,需要这样一种技术,其能够根据计算机系统中的系统性能采样数据的采样对象和数据种类建立预定的关系模型,并且基于该预定关系模型,根据不同的分级结构对所述计算机系统性能采样数据进行重新组织,从而生成不同的分级树结构,以便使用户和系统性能分析员能够根据实际需要自由地查看目标分级树结构,并获得在该目标分级树结构下的相应采样对象的系统性能采样信息。
发明内容
在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图描述本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
为了解决现有技术中的上述问题,本发明的一个目的是,提供一种能够根据计算机系统中的系统性能采样数据的采样对象和数据种类建立预定关系模型,并且基于该预定关系模型,根据不同的分级结构,将所述系统性能采样数据重新组织为目标分级树结构的技术。
本发明的另一个目的是提供一种用于根据预定的关系模型、为计算机系统的系统性能采样数据动态构造分级树结构的一部分,从而方便用户随意查看整个分级树结构或者其一部分的方法、设备和系统。
本发明的再一个目的是提供一种包含用于实现上述方法的处理步骤的计算机程序代码的计算机可读存储介质和计算机程序产品。
为了实现上述目的,根据本发明的一个方面,提供了一种用于根据预定的关系模型、对计算机系统的系统性能采样数据动态构造目标分级树结构,从而获得其中某一选定节点的系统性能采样信息的方法,其中,所述预定关系模型是根据所述系统性能采样数据的采样对象定义的,并且其中包括该分级树结构中各节点的系统性能采样信息,所述方法包括以下步骤:(a)根据所述预定关系模型和所述目标分级树结构的定义,确定所述目标分级树结构中从根节点到所述选定节点的路径上的各级实体,以便获得实体阵列;(b)根据所述实体阵列,获得所述目标分级树结构中从根节点到选定节点的各条路径上的所有节点、包括所述选定节点的标识信息,以便获得一个或多个相应的标识阵列;(c)根据所述获得的实体阵列和标识阵列,从所述预定关系模型中选择所有的、在表示相应实体的各列中具有上述标识阵列的相应值的行,以便确定行集合;(d)对于所述行集合中的所有行,根据所述目标分级树结构中所述选定节点的下一级节点的实体类型,将所述预定关系模型中、在表示所述下一级节点的实体的列中具有相同标识信息的行分为一组,从而将所述行集合分为一个或多个分组;(e)对于所述预定关系模型中的上述每一分组中的所有行,对各行中所包含的系统性能采样信息进行汇总,以便获得各个分组的汇总的系统性能采样信息;以及(f)对所获得的各个分组的汇总的系统性能采样信息进行处理,以便获得所述目标分级树结构中所述节点的系统性能采样信息。
根据本发明的另一个方面,还提供了一种用于根据预定的关系模型、对计算机系统的性能采样数据重新构造目标分级树结构,从而获得某一选定节点的系统性能采样信息的设备,其中,所述预定关系模型是根据所述系统性能采样数据的分级树结构定义的,并且其中包括该分级树结构中各节点的系统性能采样信息,所述设备包括:(a)实体阵列获取装置,用于根据所述预定关系模型和所述目标分级树结构的定义,确定所述目标分级树结构中从根节点到所述选定节点的路径上的各级实体,以便获得实体阵列;(b)标识阵列获取装置,用于根据所述实体阵列,获得所述目标分级树结构中从根节点到选定节点的各条路径上的所有节点、包括所述选定节点的标识信息,以便获得一个或多个相应的标识阵列;(c)行集合确定装置,用于根据所述获得的实体阵列和标识阵列,从所述预定关系模型中选择所有的、在表示相应实体的各列中具有上述标识阵列的相应值的行,以便确定行集合;(d)分组装置,用于针对所述行集合中的所有行,根据所述目标分级树结构中所述选定节点的下一级节点的实体类型,将所述预定关系模型中、在表示所述下一级节点的实体的列中具有相同标识信息的行分为一组,从而将所述行集合分为一个或多个分组;(e)系统性能采样信息汇总装置,用于针对所述预定关系模型中的上述每一分组中的所有行,对各行中所包含的系统性能采样信息进行汇总,以便获得各个分组的汇总的系统性能采样信息;以及(f)系统性能采样信息获得装置,用于对所获得的各个分组的汇总的系统性能采样信息进行处理,以获得所述目标分级树结构中所述节点的系统性能采样信息。
根据本发明的另一个方面,还提供了一种用于根据预定的关系模型、对计算机系统的性能采样数据重新构造目标分级树结构,从而获得某一选定节点的系统性能采样信息的系统,包括:关系模型建立装置,用于根据所述系统性能采样数据的分级树结构,建立预定关系模型;存储系统,用于存储所述预定关系模型;以及上述用于根据预定的关系模型、对计算机系统的性能采样数据重新构造目标分级树结构,从而获得某一选定节点的系统性能采样信息的设备。
依据本发明的其它方面,还提供了相应的计算机可读存储介质和计算机程序产品。
通过利用本发明的上述方法、设备和系统,可以在一个外部存储系统中建立和存储关系模型来表示系统性能采样数据,并且可以允许用户根据实际需要基于所述关系模型为系统性能采样数据动态地构造不同的分级树结构,以方便用户对大量系统性能采样数据的查看。
此外,本发明的另一优点在于,可以将关系模型存储在一个外部存储系统,而且通过动态构造分级树,以避免在计算机系统内部存储整个的分级树,从而显著地改善了存储器的使用效率,大大降低了对分析大规模系统性能采样数据的硬件要求,提高了对大规模系统进行性能采样分析的能力。
通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优点将更加明显。
附图说明
本发明可以通过参考下文中结合附图所进行的描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本发明的优选实施例和解释本发明的原理和优点。在附图中:
图1示出了根据本发明一个实施例的系统性能采样数据的分级树结构和关系模型(也可以被称为分级表)之间的映射关系;
图2示出了系统性能采样数据的一个例子,它本身是按照运行时环境下采样对象的层次结构组织的;
图3示出了与图2所示的系统性能采样数据示例相对应的分级树结构;
图4示出了将图2所示的系统性能采样数据经过映射(或者转换)而得到的关系模型;
图5示出了在图3所示的系统性能采样数据的分级树结构中的一条路径与图4所示的关系模型中的一行之间的映射关系;
图6示出了图4所示的关系模型可根据其定义的三个分级结构生成三个不同的分级树;
图7的流程图示出了如何根据预定的关系模型动态地构造新的分级树结构(即,目标树结构)中第r级上的选定节点A的子节点、并且获得其系统性能采样信息的方法的处理过程;以及
图8示出了用户针对图2所示的系统性能采样数据示例希望获得的目标分级树结构。
本领域技术人员应当理解,附图中的单元或元件仅仅是为了简单和清楚起见而示出的,而且不一定是按比例绘制的。例如,附图中某些元件的尺寸可能相对于其他元件被放大了,以便有助于提高对本发明实施例的理解。
具体实施方式
以下将结合附图进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如符合那些与系统及业务相关的限制条件,其中这些限制条件会随着实施方式的不同而改变。此外,还应该了解,虽然开发工作有可能非常复杂和费时,但对得益于本申请公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
在此,需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
系统性能采样数据在通常情况下可以被生成作为多个原始跟踪事件。包含原始跟踪事件的文件通常也可以被称为“跟踪文件(trace file)”。表示跟踪事件的另一种方式是将原始跟踪事件重新组织为静态的、用于表示被采样系统的快照的分级树结构。因此,不管生成的系统性能采样数据的方式和文件格式如何,系统性能采样数据都可以用一个正确地表示了被采样系统的快照的分级树结构来表示。
图1示出了根据本发明一个实施例的系统性能采样数据和关系模型(也可以将其称之为分级表)之间的映射关系。
假定系统性能采样系统包含n级系统性能采样对象(也可以将其称之为进行系统性能采样的实体),为了简单起见,将它们分别用Level1、Level2、...、Leveln来表示,或者也可以将它们分别称之为实体1(Entity1)、实体2(Entity2)、...、实体n(Entityn)。该系统生成的采样数据按照某种分级层次关系、例如采样对象运行时的分级层次关系进行组织,其性能采样数据的分级树结构如图1的左半部分所示,其中ID1、ID2、...、IDn表示每一级中的节点的标识信息,例如,ID2表示第2级中的节点的标识信息。
为了将上述分级树结构映射为一个关系模型,假定将上述树结构中从根节点(Root)起至每个叶节点的每条完整路径存储为关系模型中的一行,并且其中的每一列用属于与该列相对应的那一级上的节点的标识信息来填充,如图1的右半部分所示,从而构成了关系模型的前n列、即L1、L2、...、Ln列。
此外,在关系模型中,如图1的右半部分所示,除了上述分级树结构中的每条路径信息之外,还可以根据需要在关系模型的第n列之后的各列中存储各种系统性能采样信息,例如,不同的CPU性能计数器值等,从而构成了关系模型的C1、C2、...、Cm列。
下面以一个系统性能采样数据为例进行说明。
为了简单起见,假定该系统性能采样数据的一个示例如图2所示。如图2所示,该系统性能采样数据结构是用“进程/线程/模块(Process/Thread/Module)”的分级结构来组织的,该分级结构与运行时环境下的结构是相同的。
在图2所示的分级结构示例中,一个计算机系统中可能同时运行多个进程,在每个进程下包含一个或多个线程,在线程下包含一个或多个模块,而模块下可能进而包括一个或多个符号。此外,该分级结构的每一级中都包含一个由性能计数器计数得到的值、例如Ticks(Ticks在此表示计算机系统中使用的处理器时间)。在该分级结构示例中,进程(Process)、线程(Thread)、模块(Module)等均为可进行系统性能采样的实体(或者对象),也可以将其称之为实体1(Entity1)、实体2(Entity2)、...、实体n(Entityn),它们至少包含诸如Ticks之类的系统性能采样信息C1,并且彼此之间具有分级关系。
与图2所示的系统性能采样数据示例相对应的分级树结构如图3所示,其中进程(Process)、线程(Thread)、模块(Module)分别与图1中的系统性能采样数据树结构中的Level1、Level2、...、Leveln相对应。
需要说明的是,为了简单起见,在图2中仅示出了进程、线程、模块、符号共四种系统性能采样对象,但是显然根据需要可以有更多或更少的系统性能采样对象。
根据图1所示的系统性能采样数据和关系模型之间的映射关系,可以将图2所示的系统性能采样数据映射(或者转换)成一个关系模型,其如图4所示,并且可以将其用关系代数语言R(PROCESS,THREAD,MODULE,SYMBOL,TICKS)来表示。
在该关系模型中的每一行表示系统性能采样数据的分级树结构中从根节点到叶节点的一条路径。例如,图5示出了该关系模型中的第一行与图3所示的分级树结构中的路径Process1/Thread1/Module1/Symbol1之间的映射关系。
为了减少计算机系统中对存储器的占用量,可以将上述关系模型存储在计算机系统的一个外部存储系统中。这种外部存储系统通常在列上建立了索引,并且提供有诸如分组、选择、投影、汇总等之类的关系操作。这类外部存储系统的实现方式可以是多种多样的。关系数据库是其中最便利的一种实现方式。显然,提供有索引的其它存储系统也是可能的,例如,提供有索引的基于文件的数据存储系统也是其中的一个例子。
在实际的应用中,用户或者系统性能分析员可能而且经常需要构造与图3所示的分级树结构不同的树结构,即,需要动态地构造系统性能采样数据的分级树结构。例如,对于如图2所示的系统性能采样数据,可能希望获得由各个模块在计算机系统中运行的各种进程或所有进程下的系统性能采样信息、或者是各个线程在所运行的各种进程或所有进程下的系统性能采样信息等。这时,根据需要,可以定义不同的分级结构、基于上述定义的关系模型来构造不同的分级树结构,并计算在不同分级树结构下各个节点的系统性能采样信息,例如Ticks值等。
例如,如图6所示,对于图2所示的系统性能采样数据示例,用户或者系统性能分析员可以根据需要定义以下三个分级结构来分析这些经过系统性能采样所得到的数据:“进程/线程/模块”,“模块/进程”,以及“线程/模块”。当然,也可以定义其它的分级结构。
以下,描述根据本发明的实施例、如何构造新的分级树结构(目标树结构)的方法的处理流程。
在此,假定用户希望构造的新的分级树结构用一个矢量D=(Lp1,Lp2,...,Lpn)表示,其中(p1,p2,...,pn)是n级系统性能采样对象的数1到n的排列。
图7的流程图示出了根据本发明的一个实施例、如何根据预定的关系模型动态地构造新的分级树结构(即,目标树结构)中第r级上的选定节点A的子节点并获得其系统性能采样信息的方法100的处理过程。
所述方法100在步骤S110中开始。然后,在步骤S120中,对于第r级上的所述选定节点A,根据该目标树结构的定义,确定从根节点到该选定节点A的各级节点(即从第1级节点到第r级节点的各级节点)的实体类型,从而获得一个实体阵列(Lp1,Lp2,...,Lpr)。
例如,以图6的下半部分所示的三种分级结构为例。对于模块级上的某一节点Module1而言,其实体阵列分别为:(Process,Thread,Module);(Module);和(Thread,Module)。显然,根据需要也可以定义其它的分级树结构,从而可以确定出不同的实体阵列。
随后,在步骤130中,根据上述获得的实体阵列,获得上述目标树结构中与上述实体阵列相对应的相应标识信息,即,获得在上述目标树结构中从根节点到这个所选节点A的所有路径上的所有节点(包括选定节点A在内)的标识信息,从而获得一个标识阵列(IDp1,IDp2,...,IDpr)。该标识阵列和上面得到的实体阵列可以唯一确定节点A。
例如,仍以图6的下半部分所示的三种分级结构1、2、和3为例。对于其中的选定节点Module1而言,可以获得的标识阵列分别为:(1)(Process1,Thread1,Module1);(2)(Module1);和(3)(Thread1,Module1)。而对于其中的模块Module2而言,可以获得的标识阵列分别为:(1)(Process1,Thread1,Module2)或(Process1,Thread2,Module2)(取决于用户选择哪个Module2);(2)(Module2);以及(3)(Thread1,Module2)或(Thread2,Module2)(取决于用户选择哪个Module2)。
在步骤S140中,从所述预定关系模型(即分级表)中选择所有满足以下约束的行:
V(Lp1)=IDp1,V(Lp2)=IDp2,...,以及V(Lpr)=IDpr
其中,V(Li)表示预定关系模型中的代表Li的列中的ID值,并且将所选择的这些行标记为行集合S。
也就是说,在该步骤中,根据所获得的实体阵列和标识阵列,从预定的关系模型(例如,如图4所示的关系模型)中,选择所有在表示相应实体的各列中具有上述标识阵列的各相应值的行,从而确定行集合S。
接下来,在步骤S150中,对于所获得的行集合S,将其中在所述目标分级树结构中第Lp(r+1)级中具有相同标识的行分为一组,从而可以将所述行集合S分组为一个和多个分组,其可以用(G1,G2...,Go)来表示。应当注意的是,在目标分级树结构中节点A有几个子节点,就可以有几个相应分组。
随后,在步骤S160中,对于上述步骤S150中所确定的每一组,将该分组中每一行的系统性能采样信息、例如Ticks值进行求和,从而计算出各组的系统性能采样信息(也可以将其称之为汇总信息)。经过上述计算后所得到的各个汇总信息即为在所期望的目标树结构中所述选定节点A的各个子节点的系统性能采样信息。
然后,方法100的处理流程进行到步骤S170,其中将计算得到的各组的汇总系统性能采样信息相加,从而获得节点A的系统性能采样汇总信息。
然后,方法100在步骤S180中结束。
通过使用上述方法100从目标分级树结构中的根节点起进行迭代,就可以根据任意的分级树结构定义构造出相应的树节点,由此可以构造出所期望的目标分级树。
下面通过一个具体的示例来对上述方法的处理流程进行进一步的具体说明。
例如,假定预定的关系模型如图4所示,并且用户或者系统性能分析员希望知晓(或获得)当前计算机系统中模块Module2在Process1中(包括Process1下的所有线程中)所使用的处理器时间(即Ticks)的值。
此时,可以确定用户或系统性能分析员希望获得的分级结构为:“模块/进程/线程(Module/Process/Thread)”,即,所期望的目标树结构如图8所示,并且选定节点A如图中所示。
根据上述图7所示的方法的处理,对于其中的节点A,依据图8所示的树结构,确定其中从根节点到所选节点A的路径,从而获得节点A的实体阵列为(Module,Process),其相应的标识阵列为(Module2,Process1)。
然后,在预定关系模型(如图4所示)中选择所有在与实体阵列相对应的各列中具有上述标识阵列的相应值的行,即选择其中所有满足以下约束的行:在Entity1列(即,Process列)中具有ID=Process1,在Entity3(即,Module列)中具有ID=Module2。即,选择图4所示的关系模型中的第3、4和5行,从而构成了一个行集合S。
对于该行集合S中的所有行,由于在图8所示的目标树结构中节点A的下一级节点为线程(Thread)级,因此,根据图4所示的关系模型中的Thread列中的ID值,将Thread列中具有相同ID值的一行或多行分为一组。即,将图4所示的关系模型中的第3行确定为第一组(G1),其在Thread列中的ID值为Thread1,并且将上述关系模型中的第4和5行确定为第二组(G2),其Thread列中的ID值均为Thread2。
随后,对于上述所确定的每一组中的所有行,将图4所示的关系模型中的C1列(即Ticks列)的值进行求和,以便计算出每组的相应汇总信息。即,对于分组G1,计算后所得到的Ticks值“c”即为在图8中所示的树结构中节点B的Ticks值,其表示在当前计算机系统中由Module2在Process1和Thread1中所使用的处理器时间。而对于分组G2,将图4的关系模型中第4和5行的Ticks值求和而得到的值“d+e”,是图8所示的树结构中节点C的Ticks值,其表示在当前计算机系统中由Module2在Process1和Thread2中所使用的处理器时间。
然后,将上述两组中所计算的Ticks值、即节点B和C的Ticks值相加,就可以得到节点A的Ticks值、即“c+d+e”,其表示在当前计算机系统中由Module2在Process1中所使用的处理器时间。
从上述的示例中可以看出,使用图7所示的方法100,不需要构造整个目标树结构。无论用户何时希望查看目标树结构中的哪一个或者哪些节点,都可以根据需要利用存储在外部存储系统中的预定关系模型,构造用户希望查看的那一部分树结构以及其相应树节点,即构造动态分级树结构的所需的那一部分,从而方便用户随意地查看有关系统性能采样数据。而且,也没有必要再像现有技术中那样在计算机系统的存储器中保存和计算所有的系统性能采样数据以及多种树结构的数据模型,从而显著地减少了存储器的占用量,加快树结构的显示时间。因此,从理论上来说,不管原始的系统性能采样数据文件有多大,都可以将存储器的占用量保持为一个相对固定的值。
在此需要说明的是,在以上结合图2-8所述的实施例中,为了简单和清楚起见,以如图2所示的系统性能采样数据为例进行了说明,并且仅仅描述了该系统性能采样数据的四个采样对象,即进程(Process)、线程(Thread)、模块(Module)和符号(Symbol),而且也仅仅以Ticks为例说明了分级树结构中每一级节点所包含的系统性能采样信息。但是,显然应当理解,根据实际应用的不同,系统性能采样数据可以具有不同的采样对象类型、不同的关系模型、不同的分级结构以及不同的系统性能采样信息,而且可以根据需要构造出不同的目标分级树结构,以获得不同目标分级树结构下不同节点的系统性能采样信息。因此,根据本发明实施例的方法可以向用户(或者系统性能分析员)提供通过构造动态分级树结构自由地查看系统性能采样数据的能力。
根据本发明的其它实施例,还提供了用于执行结合图7所述的方法的处理步骤的设备和系统。
在此,为了说明书的简洁起见,未结合附图对所述设备和系统进行具体描述,而仅仅给出了下述文字描述。但是,显然本领域技术人员根据下述描述可以很容易绘制出相应的结构框图。
根据本发明,提供了一种用于根据预定的关系模型、对计算机系统的性能采样数据重新构造目标分级树结构,从而获得某一选定节点的系统性能采样信息的设备,其中,所述预定关系模型是根据所述系统性能采样数据的分级树结构定义的,并且其中包括该分级树结构中各节点的系统性能采样信息,所述设备包括:(a)实体阵列获取装置,用于根据所述预定关系模型和所述目标分级树结构的定义,确定所述目标分级树结构中从根节点到所述选定节点的路径上的各级实体,以便获得实体阵列;(b)标识阵列获取装置,用于根据所述实体阵列,获得所述目标分级树结构中从根节点到选定节点的各条路径上的所有节点、包括所述选定节点的标识信息,以便获得一个或多个相应的标识阵列;(c)行集合确定装置,用于根据所述获得的实体阵列和标识阵列,从所述预定关系模型中选择所有的、在表示相应实体的各列中具有上述标识阵列的相应值的行,以便确定行集合;(d)分组装置,用于针对所述行集合中的所有行,根据所述目标分级树结构中所述选定节点的下一级节点的实体类型,将所述预定关系模型中、在表示所述下一级节点的实体的列中具有相同标识信息的行分为一组,从而将所述行集合分为一个或多个分组;(e)系统性能采样信息汇总装置,用于针对所述预定关系模型中的上述每一分组中的所有行,对各行中所包含的系统性能采样信息进行汇总,以便获得各个分组的汇总的系统性能采样信息;以及(f)系统性能采样信息获得装置,用于对所获得的各个分组的汇总的系统性能采样信息进行处理,以获得所述目标分级树结构中所述节点的系统性能采样信息。
在所述设备中,所述系统性能采样数据的分级树结构中从根节点到每一个叶节点的一条路径被表示为所述预定关系模型中的一行,并且所述预定关系模型中的每一行中还包括所述系统性能采样数据的分级树结构中相应叶节点的系统性能采样信息。
其中,所述系统性能采样信息至少包括计算机系统中所使用的处理器时间信息。
在所述设备中,所述系统性能采样信息汇总装置将所述预定关系模型中所确定的每一分组中的各行中所包含的处理器使用时间相加,以获得各组的总的处理器使用时间信息。
在所述设备中,通过对所述目标分级树结构中从根节点起的所有节点进行迭代,获得所述目标分级树结构中所有节点的系统性能采样信息。
其中,所述预定关系模型可以是从一个关系数据库中读取的。或者,所述预定关系模型可以是从计算机系统的外部存储系统中读取的。此外,作为选择,所述预定关系模型可以是从任何可实现关系模型的存储系统中读取的。
此外,根据本发明的实施例,还提供了一种用于根据预定的关系模型、对计算机系统的性能采样数据重新构造目标分级树结构,从而获得某一选定节点的系统性能采样信息的系统,包括:关系模型建立装置,用于根据所述系统性能采样数据的分级树结构,建立预定关系模型;存储系统,用于存储所述预定关系模型;以及上述用于根据预定的关系模型、对计算机系统的性能采样数据重新构造目标分级树结构,从而获得某一选定节点的系统性能采样信息的设备。
在所述系统中,所述关系模型建立装置将所述系统性能采样数据的分级树结构中从根节点到每一个叶节点的一条路径表示为所述预定关系模型中的一行,并且在每一行中还包含相应叶节点的系统性能采样信息。
在所述系统中,所述系统性能采样信息至少包括计算机系统中所使用的处理器时间信息。
根据本发明实施例的设备和系统也可以向用户(或者系统管理员)提供通过构造动态分级树结构自由地查看系统性能采样数据的能力,从而大大地提高对大规模系统进行性能采样和分析的能力。
此外,显然,根据本发明的上述方法的各个操作过程也可以以存储在各种机器可读的存储介质中的计算机可执行程序的方式实现。
而且,本发明的目的也可以通过下述方式实现:将存储有上述可执行程序代码的存储介质直接或者间接地提供给系统或设备,并且该系统或设备中的计算机或者中央处理单元(CPU)读出并执行上述程序代码。
此时,只要该系统或者设备具有执行程序的功能,则实施的方式不局限于程序,并且该程序也可以是任意的形式,例如,目标程序、解释器执行的程序或者提供给操作系统的脚本程序等。
上述这些机器可读存储介质包括但不限于:各种存储器和存储单元,半导体设备,磁盘单元例如光、磁和磁光盘,以及其它适于存储信息的介质等。
另外,客户计算机通过连接到因特网上的相应网站,并且将依据本发明的计算机程序代码下载和安装到计算机中、然后执行该程序代码,也可以实现本发明。
最后,还需要说明的是,在本文中,诸如左和右、第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上虽然结合附图详细描述了本发明的实施例,但是应当明白,上面所描述的实施方式只是用于说明本发明,而并不构成对本发明的限制。对于本领域的技术人员来说,可以对上述实施方式做出各种修改和变更而没有背离本发明的实质和范围。因此,本发明的范围仅由所附权利要求及其等效含义来限定。

Claims (16)

1.一种用于根据预定的关系模型、对计算机系统的系统性能采样数据动态构造目标分级树结构,从而获得其中某一选定节点的系统性能采样信息的方法,其中,所述预定关系模型是根据所述系统性能采样数据的采样对象定义的,并且其中包括该分级树结构中各节点的系统性能采样信息,所述方法包括以下步骤:
(a)根据所述预定关系模型和所述目标分级树结构的定义,确定所述目标分级树结构中从根节点到所述选定节点的路径上的各级实体,以便获得实体阵列;
(b)根据所述实体阵列,获得所述目标分级树结构中从根节点到选定节点的各条路径上的所有节点、包括所述选定节点的标识信息,以便获得一个或多个相应的标识阵列;
(c)根据所述获得的实体阵列和标识阵列,从所述预定关系模型中选择所有的、在表示相应实体的各列中具有上述标识阵列的相应值的行,以便确定行集合;
(d)对于所述行集合中的所有行,根据所述目标分级树结构中所述选定节点的下一级节点的实体类型,将所述预定关系模型中、在表示所述下一级节点的实体的列中具有相同标识信息的行分为一组,从而将所述行集合分为一个或多个分组;
(e)对于所述预定关系模型中的上述每一分组中的所有行,对各行中所包含的系统性能采样信息进行汇总,以便获得各个分组的汇总的系统性能采样信息;以及
(f)对所获得的各个分组的汇总的系统性能采样信息进行处理,以便获得所述目标分级树结构中所述节点的系统性能采样信息。
2.根据权利要求1所述的方法,其中,所述系统性能采样数据的分级树结构中从根节点到每一个叶节点的一条路径被表示为所述预定关系模型中的一行,并且所述预定关系模型中的每一行中还包括所述系统性能采样数据的分级树结构中相应叶节点的系统性能采样信息。
3.根据权利要求2所述的方法,其中,所述系统性能采样信息至少包括计算机系统中所使用的处理器时间信息。
4.根据权利要求3所述的方法,其中,所述步骤(e)进一步包括步骤:将所述预定关系模型中所确定的每一分组中的各行中所包含的处理器使用时间相加,以获得各组的总的处理器使用时间信息。
5.根据权利要求1至4中任何一项权利要求所述的方法,进一步包括步骤:
对于所述目标分级树结构中从根节点起的所有节点,重复执行所述(a)-(f)步骤,以便获得所述目标分级树结构中所有节点的系统性能采样信息。
6.根据权利要求1至4中任何一项权利要求所述的方法,其中,所述预定关系模型存储在任何可实现关系模型的存储系统中。
6.根据权利要求1至4中任何一项权利要求所述的方法,其中,所述预定关系模型存储在关系数据库中。
7.根据权利要求1至4中任何一项权利要求所述的方法,其中,所述预定关系模型存储在计算机系统的外部存储系统中。
8.一种用于根据预定的关系模型、对计算机系统的性能采样数据重新构造目标分级树结构,从而获得某一选定节点的系统性能采样信息的设备,其中,所述预定关系模型是根据所述系统性能采样数据的分级树结构定义的,并且其中包括该分级树结构中各节点的系统性能采样信息,所述设备包括:
(a)实体阵列获取装置,用于根据所述预定关系模型和所述目标分级树结构的定义,确定所述目标分级树结构中从根节点到所述选定节点的路径上的各级实体,以便获得实体阵列;
(b)标识阵列获取装置,用于根据所述实体阵列,获得所述目标分级树结构中从根节点到选定节点的各条路径上的所有节点、包括所述选定节点的标识信息,以便获得一个或多个相应的标识阵列;
(c)行集合确定装置,用于根据所述获得的实体阵列和标识阵列,从所述预定关系模型中选择所有的、在表示相应实体的各列中具有上述标识阵列的相应值的行,以便确定行集合;
(d)分组装置,用于针对所述行集合中的所有行,根据所述目标分级树结构中所述选定节点的下一级节点的实体类型,将所述预定关系模型中、在表示所述下一级节点的实体的列中具有相同标识信息的行分为一组,从而将所述行集合分为一个或多个分组;
(e)系统性能采样信息汇总装置,用于针对所述预定关系模型中的上述每一分组中的所有行,对各行中所包含的系统性能采样信息进行汇总,以便获得各个分组的汇总的系统性能采样信息;以及
(f)系统性能采样信息获得装置,用于对所获得的各个分组的汇总的系统性能采样信息进行处理,以获得所述目标分级树结构中所述节点的系统性能采样信息。
9.根据权利要求9所述的设备,其中,所述系统性能采样数据的分级树结构中从根节点到每一个叶节点的一条路径被表示为所述预定关系模型中的一行,并且所述预定关系模型中的每一行中还包括所述系统性能采样数据的分级树结构中相应叶节点的系统性能采样信息。
10.根据权利要求10所述的设备,其中,所述系统性能采样信息至少包括计算机系统中所使用的处理器时间信息。
11.根据权利要求11所述的设备,其中,所述系统性能采样信息汇总装置将所述预定关系模型中所确定的每一分组中的各行中所包含的处理器使用时间相加,以获得各组的总的处理器使用时间信息。
12.根据权利要求9至12中任何一项权利要求所述的设备,其中,所述设备通过对所述目标分级树结构中从根节点起的所有节点进行迭代,获得所述目标分级树结构中所有节点的系统性能采样信息。
13.根据权利要求9至12中任何一项权利要求所述的设备,其中,所述预定关系模型是从一个关系数据库中读取的。
14.根据权利要求9至12中任何一项权利要求所述的设备,其中,所述预定关系模型是从计算机系统的外部存储系统中读取的。
15.根据权利要求9至12中任何一项权利要求所述的设备,其中,所述预定关系模型是从任何可实现关系模型的存储系统中读取的。
16.一种计算机程序产品,其上编码有计算机程序代码,该计算机程序代码在计算设备上执行时,用于使所述计算设备执行根据权利要求1至8中任何一项所述的方法步骤。
CNB2006101423579A 2006-10-10 2006-10-10 基于关系模型分析系统性能采样数据的方法和设备 Expired - Fee Related CN100507869C (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CNB2006101423579A CN100507869C (zh) 2006-10-10 2006-10-10 基于关系模型分析系统性能采样数据的方法和设备
US11/869,959 US8290985B2 (en) 2006-10-10 2007-10-10 Analyzing profiling data based on a rational model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101423579A CN100507869C (zh) 2006-10-10 2006-10-10 基于关系模型分析系统性能采样数据的方法和设备

Publications (2)

Publication Number Publication Date
CN101162437A true CN101162437A (zh) 2008-04-16
CN100507869C CN100507869C (zh) 2009-07-01

Family

ID=39297364

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101423579A Expired - Fee Related CN100507869C (zh) 2006-10-10 2006-10-10 基于关系模型分析系统性能采样数据的方法和设备

Country Status (2)

Country Link
US (1) US8290985B2 (zh)
CN (1) CN100507869C (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609351A (zh) * 2012-01-11 2012-07-25 华为技术有限公司 用于分析系统的性能的方法、设备和系统
CN102646060A (zh) * 2012-02-23 2012-08-22 中国人民解放军国防科学技术大学 高性能计算机系统中不满足计算精度要求的结点检测方法
CN103646670A (zh) * 2013-12-05 2014-03-19 华为技术有限公司 一种评估存储系统性能的方法和设备
CN105283851A (zh) * 2013-02-12 2016-01-27 肯赛里克斯公司 用于选择跟踪目标的成本分析
CN107209707A (zh) * 2015-01-30 2017-09-26 微软技术许可有限责任公司 基于云的分级系统保存
CN107729412A (zh) * 2017-09-26 2018-02-23 郑州云海信息技术有限公司 一种基于外带通信的历史性能统计的方法及系统
CN108509485A (zh) * 2018-02-07 2018-09-07 深圳壹账通智能科技有限公司 数据的预处理方法、装置、计算机设备和存储介质
CN110730106A (zh) * 2019-12-18 2020-01-24 数字广东网络建设有限公司 基于树状结构的电子公文交换方法、装置和计算机设备

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527532B2 (en) * 2012-01-31 2013-09-03 Adobe Systems Incorporated Transforming function calls for interaction with hierarchical data structures
US9063916B2 (en) * 2013-02-27 2015-06-23 Oracle International Corporation Compact encoding of node locations
CN104461824A (zh) * 2014-12-01 2015-03-25 北京同有飞骥科技股份有限公司 一种磁盘健康信息优化管理方法和装置
CN111782658A (zh) * 2020-07-08 2020-10-16 支付宝(杭州)信息技术有限公司 交叉表处理方法、装置、电子设备及存储介质
CN115391564B (zh) * 2022-09-01 2024-03-26 企查查科技股份有限公司 一种基于webworker构建关系图谱的方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379422A (en) * 1992-01-16 1995-01-03 Digital Equipment Corporation Simple random sampling on pseudo-ranked hierarchical data structures in a data processing system
US5784554A (en) * 1993-05-28 1998-07-21 Apple Computer, Inc. Dynamic sampling profiler
US6128759A (en) * 1998-03-20 2000-10-03 Teradyne, Inc. Flexible test environment for automatic test equipment
US20030105771A1 (en) * 2001-12-01 2003-06-05 Tiefenbrun Natan E. Attribute driven dynamic tree structure
US6938049B2 (en) * 2002-06-11 2005-08-30 The Regents Of The University Of California Creating ensembles of decision trees through sampling
US20040267548A1 (en) * 2003-06-25 2004-12-30 Jones James O. Workload profiling in computers
CN1294516C (zh) * 2004-04-12 2007-01-10 南京大学 实时数据库建模、存储和访问方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609351A (zh) * 2012-01-11 2012-07-25 华为技术有限公司 用于分析系统的性能的方法、设备和系统
CN102609351B (zh) * 2012-01-11 2015-12-02 华为技术有限公司 用于分析系统的性能的方法、设备和系统
CN102646060A (zh) * 2012-02-23 2012-08-22 中国人民解放军国防科学技术大学 高性能计算机系统中不满足计算精度要求的结点检测方法
CN105283851A (zh) * 2013-02-12 2016-01-27 肯赛里克斯公司 用于选择跟踪目标的成本分析
CN105283851B (zh) * 2013-02-12 2018-01-16 微软技术许可有限责任公司 用于选择跟踪目标的成本分析
CN103646670A (zh) * 2013-12-05 2014-03-19 华为技术有限公司 一种评估存储系统性能的方法和设备
CN103646670B (zh) * 2013-12-05 2016-09-07 华为技术有限公司 一种评估存储系统性能的方法和设备
CN107209707A (zh) * 2015-01-30 2017-09-26 微软技术许可有限责任公司 基于云的分级系统保存
CN107209707B (zh) * 2015-01-30 2021-03-09 微软技术许可有限责任公司 基于云的分级系统保存
CN107729412A (zh) * 2017-09-26 2018-02-23 郑州云海信息技术有限公司 一种基于外带通信的历史性能统计的方法及系统
CN108509485A (zh) * 2018-02-07 2018-09-07 深圳壹账通智能科技有限公司 数据的预处理方法、装置、计算机设备和存储介质
CN110730106A (zh) * 2019-12-18 2020-01-24 数字广东网络建设有限公司 基于树状结构的电子公文交换方法、装置和计算机设备

Also Published As

Publication number Publication date
CN100507869C (zh) 2009-07-01
US8290985B2 (en) 2012-10-16
US20080288529A1 (en) 2008-11-20

Similar Documents

Publication Publication Date Title
CN100507869C (zh) 基于关系模型分析系统性能采样数据的方法和设备
US10445657B2 (en) General framework for cross-validation of machine learning algorithms using SQL on distributed systems
Katoen et al. The ins and outs of the probabilistic model checker MRMC
US9195730B2 (en) Verifying correctness of a database system via extended access paths
CN114365095A (zh) 用于评估软件开发者的代码贡献的系统和方法
US20210319045A1 (en) Efficient factor analysis on large datasets using categorical variables
US9324041B2 (en) Function stream based analysis
Ibrahim et al. Automatic prefetching by traversal profiling in object persistence architectures
Samoaa et al. Tep-gnn: Accurate execution time prediction of functional tests using graph neural networks
US7870123B2 (en) Database optimizer plan validation and characterizations
Marques et al. Algorithm 880: A testing infrastructure for symmetric tridiagonal eigensolvers
Han et al. PROV-IO $^+ $: A Cross-Platform Provenance Framework for Scientific Data on HPC Systems
Lenhard et al. Portability of executable service-oriented processes: metrics and validation
US20110231360A1 (en) Persistent flow method to define transformation of metrics packages into a data store suitable for analysis by visualization
Tiwari et al. Identification of critical parameters for MapReduce energy efficiency using statistical Design of Experiments
Kitzes et al. macroeco: reproducible ecological pattern analysis in Python
Zhang et al. An optimization algorithm applied to the class integration and test order problem
Gabrijelčič Mastering Delphi Programming: A Complete Reference Guide: Learn all about building fast, scalable, and high performing applications with Delphi
US9477927B2 (en) Automatic test generation for decision table based rules
Das Principles of data structures using C and C++
CN109710538B (zh) 一种用于大规模系统中状态相关缺陷的静态检测方法
Pandey et al. Data modeling and performance analysis approach of big data
US11386087B2 (en) Benchmark framework for cost-model calibration
Robert et al. Tools for quantum computing based on decision diagrams
Shetty X-MAP: A Performance Prediction Tool for Porting Algorithms and Applications to Accelerators

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090701

Termination date: 20201010