CN102231130B - 计算机系统性能分析方法和装置 - Google Patents
计算机系统性能分析方法和装置 Download PDFInfo
- Publication number
- CN102231130B CN102231130B CN201010002096.7A CN201010002096A CN102231130B CN 102231130 B CN102231130 B CN 102231130B CN 201010002096 A CN201010002096 A CN 201010002096A CN 102231130 B CN102231130 B CN 102231130B
- Authority
- CN
- China
- Prior art keywords
- gap
- beat
- cluster
- code
- instruction
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 39
- 238000004458 analytical method Methods 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 16
- 238000001914 filtration Methods 0.000 claims description 11
- 238000013459 approach Methods 0.000 claims description 10
- 238000005457 optimization Methods 0.000 claims description 6
- 238000005259 measurement Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 12
- 230000008034 disappearance Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 235000019580 granularity Nutrition 0.000 description 9
- 241000238876 Acari Species 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000013011 mating Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Abstract
本发明涉及一种计算机系统性能分析方法和装置。本发明采用自上而下的处理步骤根据显著的偏移间隙将所有指令划分成若干聚类。可以自动生成指令聚类的注释,或者手动编辑注释。可以在用户间共享注释,实现可移植。可以根据预定的量度识别如热点的重要聚类。
Description
技术领域
本发明涉及计算机系统性能分析,具体涉及计算机系统性能分析的方法和装置。
背景技术
对于系统设计者、软件开发者、用户或数据中心运营者而言,以低成本利用硬件采样数据来分析系统(例如硬件、软件和服务)性能的不足并加以改进是有价值的。
作为系统性能分析工具,有Oprofile,Intel Vtune,IBM VPA等。这些工具根据例如性能计数器提供的采样数据,利用表格或图形提供可视化的系统性能分析结果。
如本领域所知的,一般地,在系统运行时,硬件性能计数器等会监控系统的运行情况,并将相关事件记录在例如系统日志文件中。通常,能够监控并记录近百个事件,包括节拍(tick)、指令缓存缺失(i-cache miss)、数据缓存缺失(d-cache miss)、分支缺失(branchmiss)等。性能计数器会持续对这些事件进行计数。例如,假定性能计数器每隔1ms就对系统进行监控,看哪条指令在执行,并记录下该指令的地址。每监控到一条指令在执行,就对该指令的节拍计数一次。在预定的时间间隔内(例如1小时)重复上述监控,并对同一指令在执行的事件计数累加,形成总的节拍。类似地,对其它事件也进行计数,并记录相应的地址。基于系统日志文件中关于上述事件的记录,系统性能分析工具可以形成分类列表。通过对分类表数据的进一步分析,可以找出系统的性能不足或瓶颈。例如,根据分类列表中对指令节拍的排序,可以找出热点(hotspot),即相对地被频繁执行的指令、相应的函数、模块等。进而,可以对相应的热点代码区域进行调整,以优化系统性能。
但是,如上所述,既有的性能分析工具只能提供基于指令、函数或模块的性能统计的分类列表,而不能提供基于指令块(指令聚类)的性能统计的分类列表。并且,只能提供基于指令、函数或模块等固定粒度的热点。
发明内容
鉴于现有技术中存在的上述问题,本发明的一个目的是提供一种新的系统性能分析方法和装置,其至少部分地解决了现有技术的上述问题。此外,本发明的另一目的是为系统性能分析结果提供可移植的注释。
为了实现上述目的,根据本发明的一个方面,提供一种计算机系统性能分析方法,包括以下步骤:接收计算机系统性能日志文件;对所述计算机系统性能日志文件所涉及的指令进行灵活粒度的指令聚类处理,获得代码聚类;以及输出基于所述代码聚类的系统性能分析结果。
根据本发明的另一方面,提供一种计算机系统性能分析装置,包括:性能日志文件接收器,用于接收计算机系统性能日志文件;聚类处理器,用于对计算机系统性能日志文件所涉及的指令进行灵活粒度的指令聚类处理,获得代码聚类;以及性能查看器,用于输出基于代码聚类的系统性能分析结果。
本发明提供了生成基于相关联的指令块(指令聚类)的性能统计的分类列表的方法和装置。此外,还可以为上述方法和装置提供对指令聚类附加含义的可移植注释机制。
其中,可以采用自上而下(Top-Down)的处理步骤根据显著的偏移间隙(offset gap)将所有指令划分成若干聚类。还可以使用中值滤波处理步骤去除数据中的噪声。
可以自动生成指令聚类的注释,或者手动编辑注释。可以在用户间共享注释,实现可移植。
可以根据预定的量度,例如节拍百分比、密度等识别如热点的重要聚类。
与现有技术相比,本发明对热点的识别更为智能化,提高了热点的识别率和准确性。
当结合以下说明和附图考虑时,将更好地获知和理解本发明的这些和其它方面以及实施例。
附图说明
图1为示出根据本发明第一实施例的计算机系统性能分析方法的示意性流程图。
图2为示出根据本发明第二实施例的计算机系统性能分析方法的示意性流程图。
图3为示出根据本发明实施例的聚类处理的示意性流程图。
图4为示出图3的聚类处理中确定显著间隙的实例的示意性流程图。
图5为示出根据本发明的第二实施例的变型的中值滤波处理和二值化处理的示意性流程图。
图6为示出根据本发明实施例的聚类处理的确定显著间隙的实例的示意图。
图7为示出在图5的中值滤波处理后的结果实例的示意图。
图8为根据本发明第三实施例的计算机系统性能分析装置的示意性框图。
图9和图10为根据本发明实施例的从性能分析结果识别热点的实例的示意图。
图11为根据本发明实施例的从性能分析结果大温和区域的实例的示意图。
具体实施方式
本发明人发现,对于许多由大量函数组成的应用程序而言,热点可能不是指令、函数或模块级的,而是例如比一个指令大且比一个函数/模块小的指令块(指令聚类)。另外,除热点之外,还可能存在大段密集执行的、但每条代码指令的执行时间并不是很高的代码区域。这样的代码区域中不含热点且覆盖显著长的地址范围,其同样也是具有性能改进的潜力的。在本说明书中,将这样的代码区域称为大温和区域(large warm area)。虽然大温和区域也是有优化空间的,但容易被按指令排序的现有的性能分析工具忽略。既有的分析工具提供的基于指令、函数或模块的性能统计的分类列表不能标记出上述大温和区域。并且,除热点和大温和区域之外,还可能存在代码重排潜力区域(code-reordering potential area)。所述代码重排潜力区域可以是指令缓存缺失(i-cache miss)显著且地址范围小于1个缓存线(cacheline)的代码区域。既有的分析工具也不能识别代码重排潜力区域。因此,既有的工具不能准确地识别热点,不能识别大温和区域、代码重排潜力区域等,在应用上有很大的局限性。
以下参照附图说明本发明的实施例。
第一实施例
图1为示出根据本发明第一实施例的计算机系统性能分析方法的示意性流程图。
在步骤100,接收计算机系统性能日志文件。计算机系统性能日志文件在计算机系统运行时产生。例如,硬件性能计数器(未示出)对系统运行中的事件(诸如节拍、指令缓存缺失、数据缓存缺失等)进行监控,并通过性能日志产生器(未示出)将相关信号转换成计算机系统性能日志文件。
在步骤110,对计算机系统性能日志文件所涉及的指令进行灵活粒度的指令聚类处理,以获得代码聚类。该代码聚类可以包括连续的被硬件性能计数器采样到的被执行代码。即该代码聚类中所采样到的被执行代码在编号上是连续的。所述代码聚类具有灵活粒度。所谓“灵活粒度”指的是所产生的聚类是根据实际系统运行情况灵活确定的,而不是传统的固定的指令级、函数级或模块级等。换言之,本实施例中的聚类可以是大于一条指令且小于函数或符号(symbol)的级别。在某些情况下,所产生的聚类也可能是指令、函数或模块,但是这是根据实际情况而定的,而非预先设定的。可以采用二维聚类处理,即以节拍和指令偏移地址这两个维度进行聚类。
在步骤120,输出基于在步骤110中产生的代码聚类的系统性能分析结果。例如,该系统性能分析结果可以列表、图形等可视化形式呈现,供用户查看和使用。系统性能分析结果的列表中的项可以包括聚类编号(ClusterNo)、所属模块(module)、所属符号(symbol)、起始地址(startoffset)、结束地址(endoffset)、指令地址范围(span)、聚类中心(centeriod)、节拍(ticks)、节拍百分比(tPerent)、节拍密度(tDensity)、指令缓存缺失总数(ICDMirMs total)、数据缓存缺失总数(DCDMirMs total)、指令缓存缺失密度(ICDMirMs density)、数据缓存缺失密度(DCDMirMs density)等。其中,节拍是由硬件性能计数器对相应代码聚类的执行次数所进行的计数。节拍百分比是相应的代码聚类的节拍与总的节拍之比。节拍密度是相应的代码聚类的节拍与指令地址范围之比。类似地,指令缓存缺失密度是指令缓存缺失总数与指令地址范围之比,数据缓存缺失密度是数据缓存缺失总数与指令地址范围之比。聚类中心是相应聚类中的节拍与偏移地址乘积的总和与节拍的总和之比。
第二实施例
图2为示出根据本发明第二实施例的计算机系统性能分析方法的示意性流程图。在本实施例,采用相同的附图标记表示与图1相同的步骤,并省略其详细描述。
根据本实施例的计算机系统性能分析方法与实施例的一个不同之处在于可以进一步从系统性能分析结果中识别重要代码聚类,例如热点、大温和区域、代码重排潜力区域等。在下文中将详细描述识别热点、大温和区域、代码重排潜力区域的实例。
在本实施例的方法中,在进行与第一实施例相同的步骤100-120之后,在步骤130,根据预定量度从系统性能分析结果中识别重要代码聚类。例如,预定量度可以是节拍百分比或节拍密度,重要代码聚类可以是热点。节拍百分比是相应的代码聚类的节拍与总的节拍之比。节拍是由硬件性能计数器对相应代码聚类的执行次数所进行的计数。节拍密度是相应的代码聚类的节拍与地址范围之比。
例如,可以按照例如节拍百分比的排序,将节拍百分比较高的代码聚类识别为热点,作为重要代码聚类。或者,可以按照地址范围的排序,将覆盖显著长(大于预定阈值)的地址范围但是不包含热点的代码聚类识别为大温和区域,作为重要代码聚类。或者,可以按照指令缓存缺失总数或指令缓存缺失密度排序,将上述数值相对预定阈值显著大且地址范围小于1个缓存线的代码聚类识别为代码重排潜力区域。
可选地,本实施例的计算机系统性能分析方法还可以包括为代码聚类附加关于代码聚类的含义的注释的处理。
例如,在步骤140,为代码聚类附加关于代码聚类的含义的注释。例如,可以将代码聚类与先前的系统性能分析结果进行匹配(比较)以获得相对应的代码描述,将所述代码描述作为相应代码聚类的注释。所述代码描述可以是表示相应代码聚类是热点、大温和区域、代码重排潜力区域、或者其它与系统性能分析结果中的项目相关联的描述。或者,可以计算每个所述代码聚类与相邻代码聚类的距离,并将所述距离作为所述注释。
在步骤150,可以手动编辑注释。例如,用户可以手动输入关于某个或某些指令聚类的注释,以表明它们的功能、所属的过程等。步骤150可以与步骤140并行处理。在先前的系统性能分析结果中没有与相应的代码聚类匹配的注释的情况下,可以手动编辑注释。或者,在希望对所匹配出的注释进行修改的情况下,也可以手动编辑注释。
在步骤160,可以输入/输出所产生的注释。例如,可以将在步骤140和150中产生的注释作为注释文件输出。通过模糊匹配,其它用户在运行另一工作负载时,可以输入对于相应指令聚类的注释,从而实现可移植的注释。作为一个示例性的实例,例如,可以使用聚类中心(centeroid)作为模糊匹配的参数。其中,聚类中心可以通过下式计算
centeroid=sum(ticks*offset)/sum(ticks) (1)
其中,centeroid表示聚类中心,ticks表示节拍,offset表示地址偏移。
即,聚类中心等于相应聚类中的节拍与偏移地址乘积的总和除以节拍的总和。聚类中心基本不会随工作负载而改变。因此,只要聚类中心一致,就表明所对应的聚类的地址范围匹配,从而可以在不同的工作负载中使用相同的注释。
然后,例如,在步骤170,可以根据系统性能分析结果的分类列表,将所识别的热点对应到相应的代码段。并且,调整相关联的或代码段或系统参数,以便优化系统性能。
以下进一步描述以上实施例中的二维聚类处理的细节。
图3为示出根据本发明实施例的聚类处理的示意性流程图。
首先,在步骤210,对所有的间隙进行递降排序。其中间隙是当前指令与相邻的下一指令之间的地址差距。将最大间隙的序号设为最小值,其它间隙的序号依次递增。间隙是用于识别逻辑上相关的指令的最有效的信号之一。
在步骤220,确定显著间隙,即间隙中的相对于其它间隙明显较大的间隙。由显著间隙分隔的指令可以被放置在不同的聚类中。
图4为示出确定显著间隙的实例的示意性流程图。
例如,在步骤310,按照下式确定每个间隙的斜率
S=gapi/(N-i) (2)
其中S是斜率,gapi是当前间隙的值,i是当前间隙的序号,N是间隙的总数。
然后,在步骤320,确定斜率显著增加的第一显著间隙。确定当前间隙的斜率与下一间隙的斜率的比值大于显著间隙阈值的间隙,将该间隙标识为第一显著间隙。显著间隙阈值可以适当选择,以使得聚类处理的结果较为合理,既不会因为划分的粒度过于粗糙而将差距较远的指令放置在相同的聚类中,也不会因此划分的粒度过于细致而变成传统的指令级。
接着,在步骤330,将大于等于第一显著间隙的所有间隙均标识为显著间隙。
图6示出确定显著间隙的一个实例。如图所示,将间隙按递减的顺序进行排序。最大间隙的序号为0,其它间隙的序号依次增加。利用上述式1确定间隙的斜率。可以将显著间隙阈值设定为例如1.5。进而确定显著增加的第一显著间隙。并将大于第一显著间隙的所有间隙均确定为显著间隙。
然后,返回图3,在步骤230,对与显著间隙相对应的指令进行标识,用于划分所述代码聚类。即,以与显著间隙相对应的指令为边界,将上述计算机系统性能日志文件所涉及的指令划分到相应的代码聚类中。从而根据所确定的显著间隙将指令划分成若干代码聚类。
此外,还可以包括利用标准的机器学习方式根据用户的使用情况来自动调整显著间隙阈值的步骤(未示出)。例如,用户所选择使用的阈值会被记忆,通过投票的方式每次使用时选取最近被肯定次数最多的阈值。由此,可以灵活地调整显著间隙阈值,使之符合要求。
第二实施例的变型例
在某些情况下,采用第二实施例的按显著间隙进行聚类的处理所获得的代码聚类中可能会包含指令地址范围(span,通常是相应代码聚类的结束地址与起始地址之差)较大、且节拍的方差较大的代码聚类。节拍的方差较大意味着相应的代码聚类中指令的节拍的波动较大,节拍数值高低相差较多,因而存在将相应的代码聚类进一步划分的可能和需要。
作为第二实施例的一个改进的变型例,可以在按照第二实施例进行聚类处理获得代码聚类之后,对于达到了节拍的方差阈值和指令地址范围阈值的代码聚类进行中值滤波处理、二值化处理等,以更为有效地进行聚类处理。
替代地,也可以对按照第二实施例进行聚类处理所获得的全部代码聚类进行中值滤波处理、二值化处理,从而对指令地址范围较大、且节拍的方差较大的代码聚类进一步划分,而对其余的代码聚类不作进一步划分。即,对能够二值化(二值化处理后能产生2个值)的代码聚类作进一步划分,而对不能二值化(二值化处理后只能产生1个值)的代码聚类保持不变。
图5为示出根据本变型例的中值滤波处理和二值化处理的示意性流程图。
首先,在步骤410,对节拍的数值采用中值滤波处理以去除噪声。所谓中值滤波处理,即采用当前点和前后各k个点,共2k+1个点,取中值作为当前点的替代值,从而获得更平滑的曲线。
然后,在步骤420,利用节拍的平均值作为阈值将节拍的数值二值化。即,高于阈值的数值取值1,低于阈值的数值取值0。
接着,在步骤430,利用二值化的节拍的数值来进一步划分代码聚类。
图7为示出在图5的中值滤波处理后的结果实例的示意图。
如图7所示,例如,在起始偏移地址(startoffset)为844和结束偏移地址(endOffset)1288的范围内,生成3个子聚类。这3个子聚类分别对应于844-1140、1140-1226、1226-1288的地址范围。
应该理解,在以上描述的各个实施例的方法中,各步骤及其顺序仅是为了描述方便,而非限制性的。本领域技术人员明白,可以根据需要合并或分解各个步骤,或者调整步骤的顺序。例如,输出系统性能分析结果的步骤可以在识别重要代码聚类的步骤之后执行,或者在执行输出注释的步骤之后执行,等等。
第三实施例
图8为根据本发明第三实施例的计算机系统性能分析装置800的示意性框图。
如图8所示,根据本实施的计算机系统性能分析装置800包括:聚类处理器810和性能查看器820。
计算机系统性能分析装置800还包括性能日志文件接收器(未示出),用于接收计算机系统性能日志文件。例如,性能计数器(未示出)对系统运行中的事件(诸如节拍、指令缓存缺失、数据缓存缺失等)进行监控,并通过性能日志产生器(未示出)将相关信号转换成计算机系统性能日志文件。
聚类处理器810对该性能日志文件所涉及的指令进行灵活粒度的指令聚类处理,获得代码聚类。可以采用二维聚类处理,即以节拍和指令偏移地址这两个维度进行聚类。
性能查看器820与聚类处理器810耦接,用于输出基于代码聚类的系统性能分析结果。例如,该系统性能分析结果可以列表、图形等可视化形式呈现,供用户查看和使用。
聚类处理器810可以包括热点生成器802。热点生成器802可以用于根据预定量度从上述系统性能分析结果中识别热点,并生成热点的分类列表。例如,预定量度可以是节拍百分比或节拍密度,重要代码聚类可以是热点。节拍百分比是相应的代码聚类的节拍与总的节拍之比。节拍是由计数器对相应代码聚类的执行次数所进行的计数。节拍密度是相应的代码聚类的节拍与地址范围之比。例如,可以按照例如节拍百分比的排序,将节拍百分比较高的代码聚类识别为热点,作为重要代码聚类。
上述热点仅是一个实例,聚类处理器810还可以从系统性能分析结果中识别出诸如大温和区域、代码重排潜力区域等的其它重要代码聚类。
具体地,聚类处理器810进行如下聚类处理:对所有的间隙进行递降排序,将最大间隙的序号设为最小值,其它间隙的序号依次递增,其中间隙是当前指令与相邻的下一指令之间的地址差距;确定显著间隙,即间隙中的相对于其它间隙明显较大的间隙;对与显著间隙相对应的指令进行标识,用于划分所述代码聚类。即,以与显著间隙相对应的指令为边界,将上述计算机系统性能日志文件所涉及的指令划分到相应的代码聚类中。从而根据所确定的显著间隙将指令划分成若干代码聚类。
其中,聚类处理器810可以按照如下的方式确定显著间隙。首先,按照下式确定每个间隙的斜率
S=gapi/(N-i) (2)
其中S是斜率,gapi是当前间隙的值,i是当前间隙的序号,N是间隙的总数。
然后,确定斜率显著增加的第一显著间隙。确定当前间隙的斜率与下一间隙的斜率的比值大于显著间隙阈值的间隙,将该间隙标识为第一显著间隙。
接着,将大于等于第一显著间隙的所有间隙均标识为显著间隙。
可选地,聚类处理器810可以进一步包括阈值调整器804。阈值调整器804利用标准的机器学习方式根据用户的使用情况来自动调整所述显著间隙阈值,以使其不断优化。
此外,聚类处理器810也可以包括用于进行与第二实施例的变型例类似的中值滤波处理和二值化处理等的组件(未示出),以更为有效地进行聚类处理。
可选地,计算机系统性能分析装置800可以进一步包括注释生成器830,用于为代码聚类附加关于代码聚类的含义的注释。例如,注释生成器830可以将代码聚类与先前的系统性能分析结果进行匹配以获得相对应的代码描述,并将所述代码描述作为注释。或者,注释生成器830可以计算每个代码聚类与相邻代码聚类的距离,并将所述距离作为注释。
可选地,计算机系统性能分析装置800可以进一步包括注释编辑器840,允许手动编辑注释。例如,用户可以手动输入关于某个或某些指令聚类的注释,以表明它们的功能、所属的过程等。
可选地,计算机系统性能分析装置800可以进一步包括注释输入器850和注释输出器860。通过注释输出器860将产生的注释作为注释文件输出。通过模糊匹配,在其它用户运行另一工作负载时,可以由注释输入器850输入对于相应指令聚类的注释,从而实现可移植的注释。作为一个示例性的实例,例如,可以使用聚类中心(centeroid)作为模糊匹配的参数。其中,聚类中心可以通过下式计算
centeroid=sum(ticks*offset)/sum(ticks) (1)
其中,centeroid表示聚类中心,ticks表示节拍,offset表示地址偏移。
即,聚类中心等于节拍与偏移地址乘积的总和除以节拍的总和。聚类中心基本不会随工作负载而改变。因此,只要聚类中心一致,就表明所对应的聚类的地址范围匹配,从而可以在不同的工作负载中使用相同的注释。
可选地,注释生成器830可以进一步包括建议生成器832,用于根据例如热点的统计数据生成关于性能优化的建议。
可选地,性能查看器820可以包括注释查看器825,用于查看所述注释。或者,注释查看器825可以作为与性能查看器不同的组件实现。
以下描述以上描述的本发明的应用实例。
实例1
本发明实施例的一个重要应用是识别热点以优化系统性能。图9和图10为根据本发明实施例的从性能分析结果识别热点的实例的示意图。
图9为一个性能分析结果的实例的列表显示的一部分。如图9所示,聚类号(clusterNo)为13的聚类的节拍密度(tDensity)显著高于其它聚类。因此,聚类号为13的聚类被识别为热点。并且,在如图10所示的可视化的图表中,通过所示的环将该热点突出显示出来。
实例2
图11为根据本发明实施例的从性能分析结果大温和区域的实例的示意图。大温和区域指一大段密集执行的代码区域,但每条代码指令的执行时间并不是很高。大温和区域也是有优化空间。
如图11所示,将与聚类号为0和1的聚类识别为大温和区,并通过所示的环突出显示该区域。
实例3
本发明还可以识别代码重排潜力区域。例如,可以从系统性能分析结果中找到属于同一个符号、地址范围较小、且指令缓存缺失密度较大的两个或更多聚类,作为代码重排潜力区域。指令缓存缺失密度可以通过相应聚类的指令缓存缺失的计数与地址范围的比值来计算。
在本发明人所作一个实例中,通过重新排序,将找到的两个上述代码重排潜力区域放置在相邻区域中,从而减少了热点,获得了大约5%的增益。
本发明还可以实现为例如计算机程序产品,其可以包含有用于实现根据本发明的计算机系统性能分析方法和装置的部分或全部的代码。在使用之前,可以把代码存储在其它计算机系统的存储器中,例如,存储在硬盘或诸如光盘或软盘的可移动的存储器中,或者经由因特网或其它计算机网络进行下载。
所公开的本发明的方法和装置可以在软件、硬件、或软件和硬件的结合中实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器、个人计算机(PC)或大型机来执行。或者,所公开的本发明的方法和装置还可以作为服务为用户远程提供。
以上描述了本发明的优选实施例。具体实施例的以上描述完整地展现了本发明的一般特性,其它方面可通过应用当前知识在不脱离一般原理的情况下容易地修改和/或适应这些具体实施例的各个应用。因此这些应用和修改应该并且意欲被理解为在所公开实施例的含义和等同范围内。
应该理解,这里采用的措辞和术语是说明的目的,而不是限制。因此,虽然根据实施例已经描述了本发明,但是本领域普通技术人员将认识到,在所附权利要求的范围内可以通过修改来实现本发明。
Claims (22)
1.一种计算机系统性能分析方法,包括以下步骤:
接收计算机系统性能日志文件;
对所述计算机系统性能日志文件所涉及的指令进行灵活粒度的指令聚类处理,获得代码聚类,其中灵活粒度指的是所产生的聚类是根据实际系统运行情况灵活确定的,其中所属代码聚类包括热点、大温和区域、代码重排潜力区域中的至少一个;以及
输出基于所述代码聚类的系统性能分析结果,
其中所述进行灵活粒度的指令聚类处理包括根据所确定的显著间隙将所述显著间隙分隔的指令放置在不同的聚类中,其中间隙是指令之间的地址差距。
2.根据权利要求1所述的方法,还包括以下步骤:
根据预定量度从所述系统性能分析结果中识别重要代码聚类。
3.根据权利要求2所述的方法,其中所述预定量度是节拍百分比,所述重要代码聚类是热点,
所述节拍百分比是相应的代码聚类的节拍与总的节拍之比,所述节拍是由计数器对相应代码聚类的执行次数所进行的计数。
4.根据权利要求2所述的方法,其中所述预定量度是节拍密度,所述重要代码聚类是热点,
所述节拍密度是相应的代码聚类的所述节拍与地址范围之比,所述节拍是由计数器对相应代码聚类的执行次数所进行的计数。
5.根据权利要求1所述的方法,其中对所述计算机系统性能日志文件进行灵活粒度的指令聚类处理的步骤包括以下步骤:
对所有的间隙进行递降排序,将最大间隙的序号设为最小值,其它间隙的序号依次递增,其中所述间隙是当前指令与相邻的下一指令之间的地址差距;
确定所述间隙中的相对于其它间隙明显较大的显著间隙;
对与所述显著间隙相对应的指令进行标识,用于划分所述代码聚类。
6.根据权利要求5所述的方法,其中确定显著间隙的步骤包括:
按照下式确定每个间隙的斜率
S=gapi/(N-i);
其中S是所述斜率,gapi是当前间隙的值,i是当前间隙的序号,N是所述间隙的总数;
确定当前间隙的斜率与下一间隙的斜率的比值大于显著间隙阈值的间隙,将该间隙标识为第一显著间隙并将大于等于其的所有间隙均标识为显著间隙。
7.根据权利要求5所述的方法,进一步包括以下步骤:
对节拍的数值采用中值滤波处理以去除噪声;
利用所述节拍的平均值作为阈值将所述节拍的数值二值化;以及
利用二值化的所述节拍的数值来进一步划分所述代码聚类。
8.根据权利要求1所述的方法,还包括以下步骤:
为所述代码聚类附加关于代码聚类的含义的注释。
9.根据权利要求8所述的方法,为所述代码聚类附加关于代码聚类的含义的注释的步骤包括:
将所述代码聚类与所述系统性能分析结果匹配以获得相对应的代码描述;
将所述代码描述作为所述注释。
10.根据权利要求8所述的方法,为所述代码聚类附加关于代码聚类的含义的注释的步骤包括:
计算每个所述代码聚类与相邻代码聚类的距离;
将所述距离作为所述注释。
11.一种计算机系统性能分析装置,包括:
性能日志文件接收器,用于接收计算机系统性能日志文件;
聚类处理器,用于对所述计算机系统性能日志文件所涉及的指令进行灵活粒度的指令聚类处理,获得代码聚类,其中灵活粒度指的是所产生的聚类是根据实际系统运行情况灵活确定的,其中所属代码聚类包括热点、大温和区域、代码重排潜力区域中的至少一个;以及
性能查看器,用于输出基于所述代码聚类的系统性能分析结果,
其中,所述进行灵活粒度的指令聚类处理包括根据所确定的显著间隙将所述显著间隙分隔的指令放置在不同的聚类中,其中间隙是指令之间的地址差距。
12.根据权利要求11所述的装置,其中所述聚类处理器进一步包括:
热点生成器,用于根据预定量度从所述系统性能分析结果中识别热点,并生成所述热点的分类列表。
13.根据权利要求12所述的装置,其中所述预定量度是节拍百分比;
所述节拍百分比是相应的代码聚类的节拍与总的节拍之比,所述节拍是由计数器对相应代码聚类的执行次数所进行的计数。
14.根据权利要求12所述的装置,其中所述预定量度是节拍密度;
所述节拍密度是相应的代码聚类的节拍与地址范围之比,所述节拍是由计数器对相应代码聚类的执行次数所进行的计数。
15.根据权利要求11所述的装置,其中所述聚类处理器进行如下的灵活粒度的指令聚类处理:
对所有的间隙进行递降排序,将最大间隙的序号设为最小值,其它间隙的序号依次递增,其中所述间隙是当前指令与相邻的下一指令之间的地址差距;
确定所述间隙中的相对于其它间隙明显较大的显著间隙;
对与所述显著间隙相对应的指令进行标识,用于划分所述代码聚类。
16.根据权利要求15所述的装置,其中确定显著间隙的处理包括:
按照下式确定每个间隙的斜率
S=gapi/(N-i);
其中S是所述斜率,gapi是当前间隙的值,i是当前间隙的序号,N是所述间隙的总数;
确定当前间隙的斜率与下一间隙的斜率的比值大于显著间隙阈值的间隙,将该间隙标识为第一显著间隙并将大于等于其的所有间隙均标识为显著间隙。
17.根据权利要求16所述的装置,其中所述聚类处理器进一步包括:
阈值调整器,根据用户的使用情况来自动调整所述显著间隙阈值。
18.根据权利要求11所述的装置,进一步包括:
注释生成器,用于为所述代码聚类附加关于代码聚类的含义的注释。
19.根据权利要求18所述的装置,其中所述注释生成器将所述代码聚类与所述系统性能分析结果匹配以获得相对应的代码描述,并将所述代码描述作为所述注释。
20.根据权利要求18所述的装置,其中所述注释生成器计算每个所述代码聚类与相邻代码聚类的距离,并将所述距离作为所述注释。
21.根据权利要求18所述的装置,其中所述注释生成器包括建议生成器,根据所述热点的统计数据生成关于性能优化的建议。
22.根据权利要求18所述的装置,进一步包括:
注释输出器和注释输入器,利用模糊匹配处理来使得所述注释可移植,并且,
所述性能查看器包括注释查看器,用于查看所述注释。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010002096.7A CN102231130B (zh) | 2010-01-11 | 2010-01-11 | 计算机系统性能分析方法和装置 |
US12/964,869 US8271494B2 (en) | 2010-01-11 | 2010-12-10 | Computer system performance analysis |
US13/459,559 US8639697B2 (en) | 2010-01-11 | 2012-04-30 | Computer system performance analysis |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010002096.7A CN102231130B (zh) | 2010-01-11 | 2010-01-11 | 计算机系统性能分析方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102231130A CN102231130A (zh) | 2011-11-02 |
CN102231130B true CN102231130B (zh) | 2015-06-17 |
Family
ID=44259321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010002096.7A Expired - Fee Related CN102231130B (zh) | 2010-01-11 | 2010-01-11 | 计算机系统性能分析方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8271494B2 (zh) |
CN (1) | CN102231130B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5326708B2 (ja) * | 2009-03-18 | 2013-10-30 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US8718978B2 (en) * | 2011-02-28 | 2014-05-06 | Apple Inc. | Performance logging framework |
EP2557503B1 (en) * | 2011-07-28 | 2020-04-01 | Tata Consultancy Services Ltd. | Application performance measurement and reporting |
US9021308B2 (en) * | 2011-08-09 | 2015-04-28 | International Business Machines Corporation | Analyzing a process of software defects handling using percentile-based metrics |
CN103970646B (zh) * | 2013-01-29 | 2016-12-28 | 国际商业机器公司 | 一种用于操作序列的自动分析方法及其系统 |
CN103200046B (zh) * | 2013-03-28 | 2016-01-20 | 青岛海信传媒网络技术有限公司 | 监控网元设备性能的方法及系统 |
US9230009B2 (en) * | 2013-06-04 | 2016-01-05 | International Business Machines Corporation | Routing of questions to appropriately trained question and answer system pipelines using clustering |
US9348900B2 (en) | 2013-12-11 | 2016-05-24 | International Business Machines Corporation | Generating an answer from multiple pipelines using clustering |
US9612807B2 (en) * | 2014-09-18 | 2017-04-04 | Facebook, Inc. | Code placement using a dynamic call graph |
CN105071946A (zh) * | 2015-07-03 | 2015-11-18 | 北京奇虎科技有限公司 | 一种系统监控方法和装置 |
CN105511942B (zh) * | 2015-12-02 | 2019-02-19 | 华为技术有限公司 | 语言虚拟机中热点中间代码的识别方法以及装置 |
CN105528432B (zh) * | 2015-12-15 | 2019-04-26 | 北大方正集团有限公司 | 一种数字资源热点生成方法及装置 |
CN106201837A (zh) * | 2016-07-19 | 2016-12-07 | 电信科学技术第五研究所 | 一种集成化硬件平台的日志解析方法和系统 |
US20190034548A1 (en) * | 2017-07-26 | 2019-01-31 | International Business Machines Corporation | Selecting a browser to launch a uniform resource locator (url) |
CN109508416B (zh) * | 2018-11-09 | 2021-11-23 | 四川大学 | 基于评论数量的微博舆情事件热度与发展趋势预测方法 |
US11115494B1 (en) * | 2020-02-26 | 2021-09-07 | International Business Machines Corporation | Profile clustering for homogenous instance analysis |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604035A (zh) * | 2003-09-30 | 2005-04-06 | 联想(北京)有限公司 | 一种日志分析系统及基于该系统的分析方法 |
CN101506804A (zh) * | 2005-06-15 | 2009-08-12 | 甲骨文国际公司 | 用于在大数据集分析期间维持一致性的方法和装置 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5483468A (en) * | 1992-10-23 | 1996-01-09 | International Business Machines Corporation | System and method for concurrent recording and displaying of system performance data |
JP2634137B2 (ja) * | 1993-01-27 | 1997-07-23 | インターナショナル・ビジネス・マシーンズ・コーポレイション | ユーザ・インターフェースシステム及び方法 |
US5732273A (en) | 1995-08-11 | 1998-03-24 | Digital Equipment Corporation | System for monitoring compute system performance |
EP0689141A3 (en) * | 1994-06-20 | 1997-10-15 | At & T Corp | Disruption-based hardware support for system performance profiling |
US5774724A (en) | 1995-11-20 | 1998-06-30 | International Business Machines Coporation | System and method for acquiring high granularity performance data in a computer system |
US5872913A (en) * | 1997-03-07 | 1999-02-16 | International Business Machines Corporation | System and method for low overhead, high precision performance measurements using state transistions |
US6009079A (en) * | 1997-04-25 | 1999-12-28 | Lucent Technologies Inc. | Method for measuring HDT-NIU availability |
US5937191A (en) * | 1997-06-03 | 1999-08-10 | Ncr Corporation | Determining and reporting data accessing activity of a program |
US5940618A (en) * | 1997-09-22 | 1999-08-17 | International Business Machines Corporation | Code instrumentation system with non intrusive means and cache memory optimization for dynamic monitoring of code segments |
US6035306A (en) * | 1997-11-24 | 2000-03-07 | Terascape Software Inc. | Method for improving performance of large databases |
US6553564B1 (en) * | 1997-12-12 | 2003-04-22 | International Business Machines Corporation | Process and system for merging trace data for primarily interpreted methods |
US6044335A (en) * | 1997-12-23 | 2000-03-28 | At&T Corp. | Productivity metrics for application software systems |
US6339750B1 (en) * | 1998-11-19 | 2002-01-15 | Ncr Corporation | Method for setting and displaying performance thresholds using a platform independent program |
US20040006473A1 (en) * | 2002-07-02 | 2004-01-08 | Sbc Technology Resources, Inc. | Method and system for automated categorization of statements |
US6988263B1 (en) * | 2000-07-10 | 2006-01-17 | International Business Machines Corporation | Apparatus and method for cataloging symbolic data for use in performance analysis of computer programs |
US6789046B1 (en) * | 2000-12-05 | 2004-09-07 | Microsoft Corporation | Performance logging solution |
US7016972B2 (en) * | 2001-04-23 | 2006-03-21 | International Business Machines Corporation | Method and system for providing and viewing performance analysis of resource groups |
US6850920B2 (en) * | 2001-05-01 | 2005-02-01 | The Regents Of The University Of California | Performance analysis of distributed applications using automatic classification of communication inefficiencies |
US6742179B2 (en) * | 2001-07-12 | 2004-05-25 | International Business Machines Corporation | Restructuring of executable computer code and large data sets |
EP1466465B1 (en) * | 2001-12-20 | 2018-01-24 | Tekelec Global, Inc. | Database driven methods and systems for real time call tracing |
US7802236B2 (en) * | 2002-09-09 | 2010-09-21 | The Regents Of The University Of California | Method and apparatus for identifying similar regions of a program's execution |
EP1609066A1 (en) * | 2002-12-06 | 2005-12-28 | Systems Intelligence Ltd | Computer system performance analysis |
US7114150B2 (en) * | 2003-02-13 | 2006-09-26 | International Business Machines Corporation | Apparatus and method for dynamic instrumenting of code to minimize system perturbation |
GB2403044A (en) * | 2003-06-20 | 2004-12-22 | Smith International | Performance analysis tool |
US20050071816A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Method and apparatus to autonomically count instruction execution for applications |
US20050155022A1 (en) * | 2004-01-14 | 2005-07-14 | International Business Machines Corporation | Method and apparatus for counting instruction execution and data accesses to identify hot spots |
US7392370B2 (en) | 2004-01-14 | 2008-06-24 | International Business Machines Corporation | Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics |
US7546588B2 (en) * | 2004-09-09 | 2009-06-09 | International Business Machines Corporation | Self-optimizable code with code path selection and efficient memory allocation |
GB0423362D0 (en) * | 2004-10-21 | 2004-11-24 | Ibm | Method and system for performance profiling of software |
US7590508B1 (en) * | 2004-10-22 | 2009-09-15 | Sprint Communications Company L.P. | Method and system for forecasting usage costs and computer capacity |
US8566326B2 (en) * | 2004-11-05 | 2013-10-22 | Oracle International Corporation | High-performance log-based processing |
US7788644B2 (en) * | 2005-03-24 | 2010-08-31 | Sap Ag | Method and system for monitoring performance on a mobile device |
US7558719B1 (en) * | 2005-04-14 | 2009-07-07 | Xilinx, Inc. | System and method for runtime analysis of system models for variable fidelity performance analysis |
US7433803B2 (en) | 2005-04-27 | 2008-10-07 | Freescale Semiconductor, Inc. | Performance monitor with precise start-stop control |
US7895012B2 (en) * | 2005-05-03 | 2011-02-22 | Hewlett-Packard Development Company, L.P. | Systems and methods for organizing and storing data |
US20070022142A1 (en) * | 2005-07-20 | 2007-01-25 | International Business Machines Corporation | System and method to generate domain knowledge for automated system management by combining designer specifications with data mining activity |
US20070067425A1 (en) * | 2005-09-20 | 2007-03-22 | Mckinney Howard M | Method to display transaction performance data in real-time handling context |
US8341605B2 (en) * | 2005-12-15 | 2012-12-25 | Ca, Inc. | Use of execution flow shape to allow aggregate data reporting with full context in an application manager |
US7437697B2 (en) * | 2005-12-16 | 2008-10-14 | International Business Machines Corporation | System and method of criticality prediction in statistical timing analysis |
JP2007207173A (ja) * | 2006-02-06 | 2007-08-16 | Fujitsu Ltd | 性能分析プログラム、性能分析方法、および性能分析装置 |
WO2007104612A1 (en) | 2006-03-14 | 2007-09-20 | International Business Machines Corporation | Data mining by determining patterns in input data |
WO2009022239A2 (en) | 2007-03-26 | 2009-02-19 | Acumem Ab | System for and method of capturing performance characteristics data from a computer system and modeling target system performance |
US8140919B2 (en) * | 2007-10-15 | 2012-03-20 | International Business Machines Corporation | Display of data used for system performance analysis |
US8452761B2 (en) * | 2007-10-24 | 2013-05-28 | International Business Machines Corporation | Apparatus for and method of implementing system log message ranking via system behavior analysis |
US8225291B2 (en) | 2008-01-04 | 2012-07-17 | International Business Machines Corporation | Automated detection of application performance bottlenecks |
US8443350B2 (en) * | 2008-06-06 | 2013-05-14 | Cornell University | System and method for scaling simulations and games |
US7912573B2 (en) * | 2008-06-17 | 2011-03-22 | Microsoft Corporation | Using metric to evaluate performance impact |
-
2010
- 2010-01-11 CN CN201010002096.7A patent/CN102231130B/zh not_active Expired - Fee Related
- 2010-12-10 US US12/964,869 patent/US8271494B2/en not_active Expired - Fee Related
-
2012
- 2012-04-30 US US13/459,559 patent/US8639697B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604035A (zh) * | 2003-09-30 | 2005-04-06 | 联想(北京)有限公司 | 一种日志分析系统及基于该系统的分析方法 |
CN101506804A (zh) * | 2005-06-15 | 2009-08-12 | 甲骨文国际公司 | 用于在大数据集分析期间维持一致性的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20110173199A1 (en) | 2011-07-14 |
CN102231130A (zh) | 2011-11-02 |
US8271494B2 (en) | 2012-09-18 |
US20120215781A1 (en) | 2012-08-23 |
US8639697B2 (en) | 2014-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102231130B (zh) | 计算机系统性能分析方法和装置 | |
Lines et al. | Time series classification with ensembles of elastic distance measures | |
Goldberg et al. | Scanpath clustering and aggregation | |
Krogmann et al. | Using genetic search for reverse engineering of parametric behavior models for performance prediction | |
Grant et al. | Estimating the optimal number of latent concepts in source code analysis | |
US8798402B2 (en) | Using near-duplicate video frames to analyze, classify, track, and visualize evolution and fitness of videos | |
Hauswirth et al. | Automating vertical profiling | |
JP2017111601A (ja) | 調査対象特定プログラム、および調査対象特定方法 | |
Juristo et al. | In search of what we experimentally know about unit testing | |
US20170300819A1 (en) | Time-Series Prediction Apparatus and Time-Series Prediction Method | |
Huffmire et al. | Wavelet-based phase classification | |
JP7274162B2 (ja) | 異常操作検知装置、異常操作検知方法、およびプログラム | |
Trieschnigg et al. | TNO Hierarchical topic detection report at TDT 2004 | |
Szebenyi et al. | Space-efficient time-series call-path profiling of parallel applications | |
JP2006318005A (ja) | 特許価値算出装置、特許価値算出方法およびプログラム | |
CN103823667A (zh) | 根据可视反馈自动调整值序列分析任务的方法和系统 | |
JP2006155344A (ja) | データ分析装置、データ分析プログラム及びデータ分析方法 | |
Srinivasan et al. | Fast, accurate microarchitecture simulation using statistical phase detection | |
CN106095435B (zh) | 一种信息处理方法及电子设备 | |
JP2021500639A (ja) | 多段階パターン発見およびビジュアル分析推奨のための予測エンジン | |
US20050204346A1 (en) | Using sampling data for program phase detection | |
De Oliveira et al. | On the conceptual cohesion of co-change clusters | |
JP6496078B2 (ja) | 分析支援装置、分析支援方法、および分析支援プログラム | |
CN111311411B (zh) | 一种非法行为的识别方法及装置 | |
Zeidman | Multidimensional correlation of software source code |
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: 20150617 |