性能指标的相关性分析的制作方法_2

文档序号:8472884阅读:来源:国知局
4作为一个或多个微处理器、微计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来处理信号的任何装置来实现。除其它能力以外,处理器104还可被配置为提取并执行存储器106中所存储的计算机可读指令。
[0021]存储器106可以包括本领域内已知的任何计算机可读介质,其中该计算机可读介质例如包括诸如静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)等的易失性存储器、以及/或者诸如只读存储器(ROM)、可擦除可编程ROM、闪速存储器、硬盘、光盘和磁带等的非易失性存储器。此外,存储器106包括模块108和数据110。
[0022]模块108包括线程相关性模块112和其它模块114。其它模块114可以包括用于补充系统100所进行的应用程序或功能的程序或编码指令。除其它事项外,数据110可以用作用于存储作为用户动作的结果或者线程相关性模块112和其它模块114的执行结果而进行处理后的、接收到的或所生成的数据的储存库。数据110包括指标数据116、相关性数据118和其它数据120。
[0023]在一个实现中,线程相关性模块112被配置为根据多线程应用程序的执行来收集诸如线程指标、应用程序指标和资源指标等的各种不同的性能指标。在一个实现中,该线程相关性模块被配置为将性能指标存储在诸如指标数据116等的数据存储器中。线程相关性模块112可进一步被配置为分析性能指标,并且相应地建立指标数据116中所存储的性能指标之间的相关性。在一个实现中,线程相关性模块112被配置为将相关性信息存储在诸如相关性数据118等的数据存储器中。
[0024]在一个实现中,线程相关性模块112基于诸如时间戳等的各种预定义参数中的至少一个参数来建立相关性。换句话说,可以基于时间戳来使性能指标中的一些性能指标彼此相关。在一个实现中,可以基于针对性能指标其中之一的用户选择来建立相关性。例如,如果用户选择一个性能指标中的项,则可以响应于该用户选择来自动突出显示其它性能指标中的相关项。在一个实现中,线程相关性模块112基于可以由用户提供的多线程应用程序的配置信息来建立相关性。
[0025]线程相关性模块112可进一步被配置为基于相关性数据118中所存储的相关性信息来生成性能指标的统一界面。在一个实现中,统一界面包括可以由用户进行操作以与相关性界面互动的一个或多个图形对象。在该实现中,线程相关性模块112可进一步被配置为在接收到用户输入时,根据相关性信息来更新相关性界面。这样,用户可以分析性能指标和这些性能指标之间的相关性,从而识别多线程应用程序中的性能瓶颈。
[0026]图2示出根据本主题的实施例的诸如系统100等的用于统一界面上的性能指标的相关性分析的系统的不例性系统架构200。在本实施例中,系统架构200包括例如可以设置在系统100的存储器106内的应用程序运行期202、储存库204和分析器⑶1206这三个主要构建块。
[0027]这里,应用程序运行期202是如Java虚拟机(JVM)运行期那样的执行环境。应用程序运行期202包括目标应用程序208和分析器代理210。目标应用程序208是针对性能指标正进行测试或剖析的多线程应用程序。分析器代理210是根据指令将自身附加到应用程序运行期202的分析器的代理。分析器代理210可以以通信方式与分析器⑶1206相连接,例如以经由分析器GUI206接收用户命令并且对所接收到的用户命令做出响应。线程分析器(未示出)是被配置成捕获与应用程序线程、死锁和其它性能参数有关的各种性能指标的分析器代理210的子模块其中之一。所述指标的示例包括应用程序指标、线程指标和系统资源指标。应用程序指标可以包括如方法名、线程名、调用层级结构、时间戳、事件等的详情。线程指标包括如线程id、线程名、时间戳、线程状态、监控器、锁等的详情。系统资源指标可以包括如进程id、进程名、内存详情、CPU详情、线程详情、文件句柄、1使用量、网络使用量等的详情。
[0028]储存库204可以包括诸如指标数据源212(以下称为MDS212)和配置数据源214(以下称为⑶S214)等的各种数据源。可以将MDS212作为被配置为存储实时监控期间所捕获到的性能指标的中央数据源来实现。在一个实现中,MDS212还可用于进行监控数据的历史分析。同样,还可以将CDS214作为被配置为存储系统架构200整体的配置信息的中央数据源来嵌入,其中该系统架构200包括但不限于目标应用程序208、分析器代理210、线程分析器、分析器⑶1206等。在一个示例中,配置信息可以包括目标应用程序208中所使用的方法、类、包、类加载器、容器、定时器任务、调度程序、框架。
[0029]分析器⑶1206是最终用户给出输入并且查看输出所用的图形用户界面。例如,系统100的接口 102可被配置为用作分析器⑶1206。在一个实现中,分析器⑶1206可以包括指标分析器216、图形控制器218和相关性引擎220这三个主要组件。其中,指标分析器216是被配置为分析从MDS212所获得的性能指标并且例如以新性能指标的形式生成分析数据的模块。在一个实现中,还将所生成的性能指标存储在MDS212中。图形控制器218是分析器GUI206中的被配置为基于分析来将MDS212中所存储的性能指标的相关视图显示给用户的模块。相关性引擎220是被配置为基于诸如10、存储器、CPU、网络等的受影响系统资源来建立MDS212中可利用的各种所捕获/所生成的指标之间的相关性的模块。在一个实现中,基于诸如时间戳、指标选择、CDS配置和剖析代理追踪器等的各种预定义参数中的至少一个参数来建立相关性。在一个实现中,相关性引擎220基于以上列出的预定义参数中的两个以上的组合来建立相关性。
[0030]在一个实现中,基于所选择的时间戳,可以在各种指标中进行相关以描述该时间戳时的相应详情/动作。例如,在给定时间戳处,可以使线程状态与CPU利用百分比或内存利用百分比相关。
[0031]在一个实现中,基于指标的用户选择,可以针对所选择的指标进行相应的向下钻取相关。在一个示例中,如果选择了线程,则可以使该线程、其状态、锁和监控器等的详情相关。在另一示例中,如果选择了死锁,则可以使如线程、死锁中所涉及的方法等的与死锁相关联的详情相关。在另一示例中,如果选择了方法,则可以使如计数、响应时间等的与方法执行相关联的详情相关。
[0032]在一个实现中,基于⑶S214中所存储的用户提供的配置信息,可以使应用程序方法与相应的类加载器、容器、框架等相关。在一个实现中,还可以参考用户期望的附加因素来进行上述相关。基于用户期望,相关性引擎可以进行调整以对相关性进行过滤。例如,如果用户添加了配置以仅对方法和框架的子集相关,则仅对用户所期望的子集进行相关。这样不仅得到较好的相关性,而且还得到用以在目标应用程序208中进行资源影响分析的更加快速高效的方式。
[0033]在一个实现中,还可以根据分析器代理210的追踪或活动日志来推导各种性能指标之间的相关性。每当应用程序方法向存储器请求创建任何对象时,分析器代理210利用该应用程序方法向该对象加标签。在这些情况下,相关性引擎220可被配置为使对象的列表和特定应用程序方法所使用的存储器相关。每当应用程序方法调用文件1操作、网络套接字操作或数据库调用时,可以使这些与相应的方法或线程相关。
[0034]在一个实现中,可以采用多个级别来合并上述相关性以得到相关性选项的几种排列和组合。这可以帮助用户理解统一界面中的目标应用程序208的资源影响或使用量。例如,可以使死锁与具有相应的文件1操作和网络套接字操作的方法相关。这在故障排除期间可以揭示实际文件或网
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1