CN104794047B - 性能指标的相关性分析的方法和系统 - Google Patents

性能指标的相关性分析的方法和系统 Download PDF

Info

Publication number
CN104794047B
CN104794047B CN201410265911.7A CN201410265911A CN104794047B CN 104794047 B CN104794047 B CN 104794047B CN 201410265911 A CN201410265911 A CN 201410265911A CN 104794047 B CN104794047 B CN 104794047B
Authority
CN
China
Prior art keywords
thread
panel
performance indicators
performance
memory
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
CN201410265911.7A
Other languages
English (en)
Other versions
CN104794047A (zh
Inventor
R·伊岚戈
S·查特吉
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.)
Tata Consultancy Services Ltd
Original Assignee
Tata Consultancy Services Ltd
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 Tata Consultancy Services Ltd filed Critical Tata Consultancy Services Ltd
Publication of CN104794047A publication Critical patent/CN104794047A/zh
Application granted granted Critical
Publication of CN104794047B publication Critical patent/CN104794047B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Mathematical Physics (AREA)

Abstract

本主题涉及用于性能指标的相关性分析的方法和系统。在一个实施例中,说明了一种用于性能指标的相关性分析的计算系统(100)。该计算系统(100)包括:处理器(104);以及存储器(106),其连接至该处理器(104)。此外,该存储器(106)包括分析器代理(210)、相关性引擎(220)和图形控制器(218)。该分析器代理(210)基于目标应用程序(208)的执行来收集性能指标。该相关性引擎(220)基于预定义参数来建立性能指标之间的相关性。该图形控制器(218)生成性能指标的用于描述性能指标之间的所建立的相关性的统一界面(300)。

Description

性能指标的相关性分析的方法和系统
技术领域
本主题通常涉及多线程应用程序的性能测试,尤其涉及多线程应用程序的性能指标的相关性分析。
背景技术
多线程是众所周知的编程和执行模型。在多线程中,将应用程序分割成通常称为线程的多个并发执行流。这些线程各自一般包括用以执行诸如计算任务或输入/输出任务等的特定编程任务的指令序列和数据。尽管这些线程共用诸如CPU、存储器、IO、网络等的资源,但也能够独立执行。
当前大多数企业应用程序是通过利用多个线程通常在不同的线程组内并发运行的多线程的概念来设计的。在这些情况下,这些线程将会导致通过手动追踪可能无法管理的性能问题的可能性高。由于修改相同资源的两个线程可能无意地彼此干涉,因此在应用程序中存在线程展开了与向着资源的安全访问有关的许多潜在问题。例如,一个线程可能覆写另一线程所进行的变化或者使该应用程序进入未知且可能无效的状态。这可能导致应用程序变慢甚至崩溃。因此,多线程应用程序的性能测试至关重要。
发明内容
一种针对性能指标的相关性的计算机实现的方法,所述方法包括以下步骤:基于目标应用程序在计算系统内的执行来收集所述性能指标;基于至少一个预定义参数来建立所述性能指标之间的相关性;以及生成所述性能指标的用于描述所述性能指标之间的所建立的相关性的统一界面。
一种用于性能指标的相关性分析的计算系统,所述计算系统包括:处理器;以及存储器,其连接至所述处理器,所述存储器包括:分析器代理,用于基于目标应用程序的执行来收集所述性能指标;相关性引擎,用于基于至少一个预定义参数来建立所述性能指标之间的相关性;以及图形控制器,用于生成所述性能指标的用于描述所述性能指标之间的所建立的相关性的统一界面。
一种具有计算机可执行指令的非瞬态计算机可读介质,所述计算机可执行指令在执行的情况下,实现针对性能指标的相关性的方法,所述方法包括以下步骤:基于目标应用程序在计算系统内的执行来收集所述性能指标;基于至少一个预定义参数来建立所述性能指标之间的相关性;以及生成所述性能指标的用于描述所述性能指标之间的所建立的相关性的统一界面。
附图说明
参考附图来进行详细说明。在附图中,附图标记最左边的数字标识了该附图标记首先出现的附图。在整个附图中使用相同的数字以参考相同的特征和组件。现在将仅通过示例的方式并且参考附图来说明根据本主题的实施例的系统和方法的一些实施例,其中:
图1示出根据本主题的实施例的用于性能指标的相关性分析的系统。
图2示出根据本主题的实施例的用于性能指标的相关性分析的系统的示例性系统架构。
图3a和3b示出根据本主题的实施例的相关性能指标的示例性统一界面。
图4示出根据本主题的实施例的用于性能指标的相关性分析的计算机实现方法。
具体实施方式
本主题涉及多线程应用程序的性能优化。在该上下文中,剖析(profiling) 是为了性能优化的目的所进行的应用程序的动态分析的形式,并且可以使用被称为分析器(profiler)的自动工具来进行。该分析器基本根据在应用程序的执行期间所收集到的信息来产生应用程序的配置文件。该配置文件一般包括程序的行为特征,其中可以使用这些行为特征来将应用程序的一个或多个部分识别为性能优化的候选。例如,配置文件可能表示在执行特定应用程序方法时使用了过量的内存量。因此,为了优化的目的,可以集中于该特定应用程序方法。换句话说,配置文件辅助理解程序行为以便于优化工作的集中。
同样,在多线程应用程序中,可以进行线程剖析,以检查多线程应用程序中的线程的活动,解决死锁,并且例如以各种线程指标的形式获得与上述有关的详细信息。可以使用可用于识别多线程应用程序中的瓶颈的线程分析器来进行线程剖析。使用这种传统的线程分析器的多线程应用程序的线程剖析需要线程分析器将诸如线程的状态、死锁信息和一些跟踪信息等的各种线程指标详情提供给用户。在尝试测试多线程应用程序的性能的情况下,仅捕获这些线程指标有时可能不足以识别并解决线程相关瓶颈。这是因为,在发现线程在非常长的时间内处于等待状态或阻塞状态、或者所有线程长时间暂停的情况下,可以认为这可能是由于与应用程序或应用程序环境有关的几个其它因素所引起的。这些其它因素的示例包括但不限于IO使用量、网络使用量、此时所涉及的应用程序方法等。因此,在所有这些因素以及与线程指标的某种互连均可用的情况下,可以全面地分析并优化线程中的性能相关瓶颈。
显然,由于传统系统仅通过按重复的时间间隔提供线程堆栈或线程指标来解决线程相关问题,因此传统系统无法提供这种互连。这样,仅向用户显示线程和死锁的详情。尽管以如表、图表等的各种格式向用户显示线程状态,然而这些线程状态没有提供线程与相关应用程序方法和如CPU、存储器、IO 等的资源之间的互连的详情。因而,传统系统无法提供性能指标的互连。
根据本主题的实现,说明了用于统一界面上的性能指标的相关性分析的方法和系统。在一个实施例中,收集各种性能指标。基于目标多线程应用程序在计算系统中的执行来收集这些性能指标。此外,可以基于诸如时间戳等的各种预定义参数中的至少一个参数来在性能指标之间建立相关性。此外,可以生成描述所建立的相关性、即性能指标之间的互连的性能指标的统一界面。此外,可以根据所建立的相关性来更新统一界面,从而使得用户能够观察所建立的相关性。
尽管传统方法和系统仅向用户显示各种指标,但本主题使得用户能够利用与如下的性能指标的相关性来使线程指标可视化,其中这些性能指标包括但不限于CPU、主动方法执行、线程详情、死锁详情、计数等。因而,用户能够获得线程、其性能及其对如CPU、存储器、网络或IO那样的其它资源的影响的端到端的状况。此外,由于统一界面能够在突出显示如来自应用程序的主动方法、CPU、存储器、网络统计数据等的若干性能指标之间的相关性的同时显示与线程和死锁有关的若干其它指标,因此用户可以使用该统一界面来检测多线程应用程序中的性能问题。根据这些相关性,可以容易地检测到潜在的线程瓶颈。例如,如果检测到死锁,则使用相关性可以容易地检测到死锁中所涉及的主动方法和死锁线程中被锁定的资源,由此节省计算资源和时间。
以下的详细说明描述了用于性能指标的相关性分析的方法和系统。尽管可以以任意数量的不同计算系统、环境和/或结构来实现所述系统和方法的各方面,但在以下示例性系统和方法的上下文中说明了用于性能指标的相关性分析的方法和系统的实施例。
图1示出根据本主题的实施例的用于性能指标的相关性分析的系统100。此外,可以在计算系统上实现系统100。计算系统的示例可以包括但不限于台式计算机、便携式计算机、笔记本电脑、手持式装置、服务器和工作站。
系统100包括接口102。此外,接口102可以包括各种软件和硬件接口、例如图形用户界面(GUI)以及诸如产品板、鼠标、外部存储器、显示屏和打印机等的外围装置所用的接口。另外,接口102可以使得系统100能够与诸如web服务器、网络服务器、数据库服务器和外部储存库等的其它装置进行通信。接口102还可以便于在包括例如LAN和线缆等的有线网络以及诸如 WLAN、蜂窝或卫星等的无线网络的很多种网络和协议类型内进行多个通信。为此,接口102可以包括一个或多个相关端口。
系统100还包括连接至存储器106的处理器104。可以将处理器104作为一个或多个微处理器、微计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来处理信号的任何装置来实现。除其它能力以外,处理器104还可被配置为提取并执行存储器106中所存储的计算机可读指令。
存储器106可以包括本领域内已知的任何计算机可读介质,其中该计算机可读介质例如包括诸如静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)等的易失性存储器、以及/或者诸如只读存储器(ROM)、可擦除可编程ROM、闪速存储器、硬盘、光盘和磁带等的非易失性存储器。此外,存储器106包括模块108和数据110。
模块108包括线程相关性模块112和其它模块114。其它模块114可以包括用于补充系统100所进行的应用程序或功能的程序或编码指令。除其它事项外,数据110可以用作用于存储作为用户动作的结果或者线程相关性模块112 和其它模块114的执行结果而进行处理后的、接收到的或所生成的数据的储存库。数据110包括指标数据116、相关性数据118和其它数据120。
在一个实现中,线程相关性模块112被配置为根据多线程应用程序的执行来收集诸如线程指标、应用程序指标和资源指标等的各种不同的性能指标。在一个实现中,该线程相关性模块被配置为将性能指标存储在诸如指标数据116等的数据存储器中。线程相关性模块112可进一步被配置为分析性能指标,并且相应地建立指标数据116中所存储的性能指标之间的相关性。在一个实现中,线程相关性模块112被配置为将相关性信息存储在诸如相关性数据118等的数据存储器中。
在一个实现中,线程相关性模块112基于诸如时间戳等的各种预定义参数中的至少一个参数来建立相关性。换句话说,可以基于时间戳来使性能指标中的一些性能指标彼此相关。在一个实现中,可以基于针对性能指标其中之一的用户选择来建立相关性。例如,如果用户选择一个性能指标中的项,则可以响应于该用户选择来自动突出显示其它性能指标中的相关项。在一个实现中,线程相关性模块112基于可以由用户提供的多线程应用程序的配置信息来建立相关性。
线程相关性模块112可进一步被配置为基于相关性数据118中所存储的相关性信息来生成性能指标的统一界面。在一个实现中,统一界面包括可以由用户进行操作以与相关性界面互动的一个或多个图形对象。在该实现中,线程相关性模块112可进一步被配置为在接收到用户输入时,根据相关性信息来更新相关性界面。这样,用户可以分析性能指标和这些性能指标之间的相关性,从而识别多线程应用程序中的性能瓶颈。
图2示出根据本主题的实施例的诸如系统100等的用于统一界面上的性能指标的相关性分析的系统的示例性系统架构200。在本实施例中,系统架构200包括例如可以设置在系统100的存储器106内的应用程序运行期202、储存库204和分析器GUI206这三个主要构建块。
这里,应用程序运行期202是如Java虚拟机(JVM)运行期那样的执行环境。应用程序运行期202包括目标应用程序208和分析器代理210。目标应用程序208是针对性能指标正进行测试或剖析的多线程应用程序。分析器代理 210是根据指令将自身附加到应用程序运行期202的分析器的代理。分析器代理210可以以通信方式与分析器GUI206相连接,例如以经由分析器GUI206 接收用户命令并且对所接收到的用户命令做出响应。线程分析器(未示出)是被配置成捕获与应用程序线程、死锁和其它性能参数有关的各种性能指标的分析器代理210的子模块其中之一。所述指标的示例包括应用程序指标、线程指标和系统资源指标。应用程序指标可以包括如方法名、线程名、调用层级结构、时间戳、事件等的详情。线程指标包括如线程id、线程名、时间戳、线程状态、监控器、锁等的详情。系统资源指标可以包括如进程id、进程名、内存详情、CPU详情、线程详情、文件句柄、IO使用量、网络使用量等的详情。
储存库204可以包括诸如指标数据源212(以下称为MDS212)和配置数据源214(以下称为CDS214)等的各种数据源。可以将MDS212作为被配置为存储实时监控期间所捕获到的性能指标的中央数据源来实现。在一个实现中,MDS212还可用于进行监控数据的历史分析。同样,还可以将CDS214 作为被配置为存储系统架构200整体的配置信息的中央数据源来嵌入,其中该系统架构200包括但不限于目标应用程序208、分析器代理210、线程分析器、分析器GUI206等。在一个示例中,配置信息可以包括目标应用程序208 中所使用的方法、类、包、类加载器、容器、定时器任务、调度程序、框架。
分析器GUI206是最终用户给出输入并且查看输出所用的图形用户界面。例如,系统100的接口102可被配置为用作分析器GUI206。在一个实现中,分析器GUI206可以包括指标分析器216、图形控制器218和相关性引擎 220这三个主要组件。其中,指标分析器216是被配置为分析从MDS212所获得的性能指标并且例如以新性能指标的形式生成分析数据的模块。在一个实现中,还将所生成的性能指标存储在MDS212中。图形控制器218是分析器GUI206中的被配置为基于分析来将MDS212中所存储的性能指标的相关视图显示给用户的模块。相关性引擎220是被配置为基于诸如IO、存储器、CPU、网络等的受影响系统资源来建立MDS212中可利用的各种所捕获/所生成的指标之间的相关性的模块。在一个实现中,基于诸如时间戳、指标选择、CDS 配置和剖析代理追踪器等的各种预定义参数中的至少一个参数来建立相关性。在一个实现中,相关性引擎220基于以上列出的预定义参数中的两个以上的组合来建立相关性。
在一个实现中,基于所选择的时间戳,可以在各种指标中进行相关以描述该时间戳时的相应详情/动作。例如,在给定时间戳处,可以使线程状态与 CPU利用百分比或内存利用百分比相关。
在一个实现中,基于指标的用户选择,可以针对所选择的指标进行相应的向下钻取相关。在一个示例中,如果选择了线程,则可以使该线程、其状态、锁和监控器等的详情相关。在另一示例中,如果选择了死锁,则可以使如线程、死锁中所涉及的方法等的与死锁相关联的详情相关。在另一示例中,如果选择了方法,则可以使如计数、响应时间等的与方法执行相关联的详情相关。
在一个实现中,基于CDS214中所存储的用户提供的配置信息,可以使应用程序方法与相应的类加载器、容器、框架等相关。在一个实现中,还可以参考用户期望的附加因素来进行上述相关。基于用户期望,相关性引擎可以进行调整以对相关性进行过滤。例如,如果用户添加了配置以仅对方法和框架的子集相关,则仅对用户所期望的子集进行相关。这样不仅得到较好的相关性,而且还得到用以在目标应用程序208中进行资源影响分析的更加快速高效的方式。
在一个实现中,还可以根据分析器代理210的追踪或活动日志来推导各种性能指标之间的相关性。每当应用程序方法向存储器请求创建任何对象时,分析器代理210利用该应用程序方法向该对象加标签。在这些情况下,相关性引擎220可被配置为使对象的列表和特定应用程序方法所使用的存储器相关。每当应用程序方法调用文件IO操作、网络套接字操作或数据库调用时,可以使这些与相应的方法或线程相关。
在一个实现中,可以采用多个级别来合并上述相关性以得到相关性选项的几种排列和组合。这可以帮助用户理解统一界面中的目标应用程序208的资源影响或使用量。例如,可以使死锁与具有相应的文件IO操作和网络套接字操作的方法相关。这在故障排除期间可以揭示实际文件或网络问题是否导致目标应用程序208的死锁。可以对相关性界面进行设计,以使得可以定制该相关性界面以按照要求管理各种相关性选项。由于横跨各种性能指标进行相关,因此这有助于用户从一个统一可定制界面辅助进行性能向下钻取分析或资源影响分析。
图3a示出相关性能指标的这种统一界面300。统一界面300用作所有相关性的基础,并且参考线程使用量来给出与目标应用程序及其环境有关的全貌。该统一界面可以包括各种信息面板、即线程状态面板302、线程计数面板304、死锁面板306、监控面板308和相关性滑块310。
线程状态面板302是列出所有线程、其相应线程状态和状态变化的信息面板。在一个实现中,可以在等距时间状态图中利用多颜色变量来标绘线程的状态变化或保留。各变量可以与诸如可运行状态、等待状态、定时等待状态、阻塞状态等的线程的特定状态相对应。在一个实现中,用户可以从该标绘图中选择任何坐标并且响应于用户选择来自动更新相应的面板,其中所选择的这些坐标可以与所选择的坐标处的线程详情、死锁详情和主动方法详情相关。
线程计数面板304是可以以XY标绘图设置线程计数的图形显示的信息面板。这里,X轴表示时间轴并且Y轴表示线程计数。在一个示例中,线程计数面板304可以包括分别与总线程、实时线程和守护线程有关的三个标绘图。
死锁面板306和监控面板308是可以共同显示所有死锁线程的列表以及相应的监控器锁名/id和锁的所有者名称的信息面板。这里,锁(还称为监控器)防止数量超过一个的实体访问共享资源。
相关性滑块310是可以使得能够观察各信息面板之间的相关性的GUI对象。为了进行相关,用户可以前后或左右移动相关性滑块310。
在一个实现中,统一界面300可以包括诸如线程详情面板312、主动方法面板314、IO使用量面板316、GC统计数据面板318、内存使用量面板320和网络使用量面板322等的各种其它信息面板。
线程详情面板312是显示线程的概要的信息面板。为了进行与该面板的相关,必须从线程状态面板302中选择坐标。对于所选择的坐标或按特定时间间隔所选择的任何线程,可以将线程的详情显示在该面板中。在一个示例中,这些详情可以包括当前线程状态、名称、id、等待计数、阻塞计数、等待时间、阻塞时间、锁监控器等。
主动方法面板314是显示应用程序中的主动方法的概要的信息面板。为了进行与该面板的相关,必须从线程状态面板302中选择坐标。对于所选择的坐标,可以显示应用程序所涉及的主动方法的具有如调用计数、总/平均响应时间等的详情的列表。通常,这些主动方法将会是线程可能在长时间内处于特定状态的原因。例如,如果应用程序正等待事件发生,则该线程可能在长时间内处于等待状态。
IO使用量面板316是可以突出显示所选择点的IO使用量的信息面板。如果在应用程序中频繁发生IO,则线程由于IO延迟而可能进入等待状态的可能性极大。
GC面板318是具有XY标绘图的信息面板,其中在该XY标绘图中,X轴表示时间轴并且Y轴表示垃圾回收(GC)统计数据。对于任何相关性滑块位置点,可以突出显示应用程序运行期的诸如GC计数、自应用程序启动起GC所花费的时间、与所选择的时间戳有关的主动GC等的GC统计数据(在存在的情况下)。如果在该时间发现任何GC操作,则应用程序线程将会处于暂停状态。
内存使用量面板320是如下的信息面板,其中该信息面板将堆中的整个持续时间内的诸如已使用内存、最大内存、峰内存或空闲内存等的堆使用量显示为X轴表示时间轴且Y轴表示以MB或KB为单位的内存的XY标绘图。在该面板中,可以使用相关性滑块310来进行相关。对于任何滑块位置点,在相应的时间轴中突出显示堆使用量。例如,如果内存使用量非常高,则进行可能使若干应用程序线程无响应的频繁GC调用的可能性极高。
网络使用量面板322是具有XY标绘图的图形面板,其中在该XY标绘图中,X轴表示时间轴并且Y轴表示网络统计数据。对于任何相关性滑块位置点,可以突出显示网络使用量。在一个示例中,网络使用量可以包括进出字节、带宽、所发送和接收到的包等。对于网络密集型应用程序,由于网络延迟或网络通信量而导致线程可能变慢或者长时间等待。
在一个实现中,统一界面300可以包括CPU/处理器使用量面板(未示出),其中该CPU/处理器使用量面板是具有X轴表示时间轴且Y轴表示CPU/处理器统计数据的XY标绘图的信息面板。对于任何相关性滑块位置点,可以突出显示CPU/处理器使用量。由于系统内的其它处理器所引起的高的CPU/处理器利用量,因此可能在响应时间方面对应用程序线程产生影响。
在一个实现中,统一界面300可以包括内存统计数据面板(未示出),其中该内存统计数据面板是具有X轴表示时间轴且Y轴表示内存统计数据的XY 标绘图的信息面板。如果系统的诸如RAM等的内存的使用量高,则由于内存分页延迟和内存分页故障而导致应用程序的响应时间变慢的可能性极高。对于任何相关性滑块位置点,可以突出显示IO使用量。这样,由于在IO使用量高的情况下、IO使用量可能不仅仅是由于应用程序的过量IO操作而且还由于使用过量内存的应用程序所引起的,因此可以使内存使用量与IO使用量相关。在应用程序使用过量内存的情况下,该系统内部开始使用实际使IO使用量增加的虚拟内存。同样,还可以基于诸如相关性滑块310的移动或来自任何面板的任何相应或相关指标的选择等的用户动作来突出显示任何其它面板。
在一个实现中,可以对统一界面300进行定制,从而按照针对应用程序的用户要求包括定制指标。为此,可以利用CDS214中所存储的配置信息。基于CDS214中所存储的信息,可以配置相关面板的数量、其位置和内部指标、信息面板的类型。这里,信息面板的类型包括具有表、文本、图表、XY 标绘图等的面板。
图3b示出用户使相关性滑块310从时间t1起向前移动至时间t2的情形。响应于相关性滑块310的该向前移动,各种面板中的垂直实心标记根据如相关性引擎220所建立的相关性而自动向前移动。在该图中,垂直实心标记表示时间t2处的相关性,而垂直非实心标记表示时间t1处的相关性。
图4示出根据本主题的实施例的用于统一界面上的性能指标的相关性分析的计算机实现方法400。
可以在计算机可执行指令的一般情形中描述方法400。通常,计算机可执行指令可以包括还可在分布式计算环境中实践的例程、程序、对象、组件、数据结构、过程、模块、功能等,其中在该分布式计算环境中,利用经由通信网络连接的远程处理装置来执行功能。在分布式计算环境中,计算机可执行指令可以位于包括内存存储装置的本地和远程计算机存储介质这两者中。
描述方法400的顺序并不意图被解释成限制性的,并且可以按任意顺序组合任何数量的所述方法块来实现方法400或替代方法。另外,也可以在没有背离这里所述的主题的范围的情况下从这些方法中删除个体块。此外,可以以任何适当的硬件、软件、固件或它们的组合来实现方法400。
在块402中,接收目标应用程序的配置信息。在一个实现中,用户可以经由诸如分析器GUI206等的GUI来提供诸如目标应用程序208等的目标应用程序的配置信息。所述配置信息可以包括但不限于与应用程序类、功能和数据库等有关的信息。
在块404中,应用程序运行期被配置为利用诸如分析器代理210等的分析器代理而启动。分析器代理可以包含通信引擎和针对所配置的各性能指标的若干子模块。所配置的性能指标的列表包括但不限于CPU使用量、内存使用量、堆使用量、IO使用量、网络使用量、线程使用量、应用程序响应时间等。
在块406中,分析器代理基于诸如系统100等的计算系统内的目标应用程序的执行来收集各种性能指标。在一个实现中,用户可以从GUI向着分析器代理进行输入以开始剖析目标应用程序。为此,可以将命令发送至分析器代理的通信引擎。作为响应,分析器代理的相关子模块收集各性能指标并将这些性能指标存储在诸如MDS212等的集中指标数据源处。
在块408中,接收针对性能指标的诸如统一界面300等的统一界面的请求。在一个实现中,用户经由GUI作出该请求。用户可能想要分析统一界面以用于目标应用程序的性能优化的最终目的。
在块410中,诸如指标分析器216等的分析器响应于针对相关性界面的用户请求来分析从集中指标数据存储器所获得的指标数据。
在块412中,该分析器根据从集中指标数据存储器所获得的指标数据来生成若干分析结果。所生成的分析结果可以采用新指标的形式,并且可以保存在诸如储存库204等的储存库中。
在块414中,利用诸如相关性引擎220等的相关性引擎来建立性能指标之间的相关性,其中一旦分析完成,则可以使该相关性引擎初始化。在一个实现中,按照诸如CDS214等的中央配置数据存储器中所存储的用户配置来初始化相关性引擎。该相关性引擎基于诸如时间戳、指标选择、CDS配置和配置文件代理追踪器等的各种预定义参数中的至少一个参数,来建立诸如MDS 212等的集中指标数据源中可用的所收集到的或所生成的各种指标之间的相关性。
在块416中,基于所建立的相关性来生成性能指标的相关性界面。在一个实现中,在GUI上向用户显示该相关性界面。相关性界面可以包括各自与性能指标其中之一相对应的各种信息面板。相关性界面还可以包括诸如用户为了观察性能指标之间的相关性而可操作的相关性滑块310等的滑块。
在块418中,响应于用户输入并且根据所建立的相关性来更新相关性界面。在一个实现中,用户可以使滑块在GUI上前后移动,从而观看性能指标之间的相关性。换句话说,用户可以经由滑块与相关性界面互动。在多线程应用程序中,仅在考虑到应用程序线程及其对诸如响应时间和内存等的各种因素的影响的全貌的情况下,才可以识别并解决线程性能问题。相关性界面被设计成向用户呈现这种视图。
尽管已经以结构特征和/或方法特有的语言描述了用于统一界面上的性能指标的相关性分析的方法和系统的实施例,但应当理解,本发明并非必须局限于所述的特定特征或方法。相反,这些特定特征和方法是作为用于统一界面上的性能指标的相关性分析的典型实施例而公开的。

Claims (6)

1.一种针对性能指标的相关性的计算机实现的方法,所述方法包括以下步骤:
基于目标应用程序在计算系统内的执行以性能指标的形式生成目标应用程序的配置文件,其中所述配置文件是在将命令发送至分析器代理的通信引擎并将实时监控期间所捕获到的、与所述命令相对应的性能指标存储在指标数据源处时生成的,其中所述分析器代理在接收到指令时自动附加到应用程序运行期,其中所述分析器代理以通信方式与分析器GUI相连接;
基于两个以上的预定义参数和受影响系统资源的组合来建立所述性能指标之间的相关性;
生成并显示所述性能指标的用于描述所述性能指标之间的所建立的相关性的统一界面,其中,所述统一界面包括多个信息面板,所述多个信息面板包括线程状态面板、死锁面板、线程计数面板、监控面板、线程详情面板、主动方法面板、输入输出使用量面板即IO使用量面板、统计数据面板、内存使用量面板和网络使用量面板中的至少一个,以及所述性能指标包括:
线程指标,其中所述线程指标包括线程id、线程名、时间戳、线程状态和监控器,
应用程序指标,其中所述应用程序指标包括方法名、线程名、调用层级结构、时间戳和事件,以及
资源指标,其中所述资源指标包括进程id、进程名、内存详情、CPU详情、线程详情、文件句柄、IO使用量和网络使用量,以及
基于用户输入更新所述统一界面以允许基于所述用户输入来分析相关的性能指标,其中所述用户输入表示从所述线程状态面板中的线程的选择,使该线程、线程状态、锁和监控器的详情相关,状态变化在等距时间状态图中利用多颜色变量标绘,以及各变量与包括可运行状态、等待状态、定时等待状态和阻塞状态中的至少一个的线程的特定状态相对应,
其中,建立所述性能指标之间的相关性包括基于从时间戳、指标选择和剖析代理追踪器中选择的两个以上的预定义参数来使所述线程指标与所述应用程序指标和所述资源指标互连,其中将配置数据源作为存储所述计算系统的配置信息的中央数据源来嵌入,所述计算系统包括目标应用程序、分析器代理、线程分析器和分析器GUI,其中在所述目标应用程序使用过量内存的情况下,所述计算系统内部开始使用使IO使用量增加的虚拟内存;以及
在给定时间戳处,所述线程状态与CPU利用百分比或内存利用百分比相关。
2.根据权利要求1所述的方法,其中,根据所建立的相关性来将针对所述性能指标其中之一的用户输入自动反映到相关的性能指标中。
3.根据权利要求1所述的方法,其中,还包括以下步骤:
从用户接收所述目标应用程序的配置信息。
4.一种用于性能指标的相关性分析的计算系统(100),所述计算系统(100)包括:
处理器(104);以及
存储器(106),其连接至所述处理器(104),所述存储器(106)包括:
目标应用程序和分析器代理(210),用于基于所述目标应用程序的执行来生成性能指标,其中在将命令发送至所述分析器代理的通信引擎并且将实时监控期间所捕获到的、与所述命令相对应的性能指标存储在指标数据源处时生成配置文件,其中所述分析器代理在接收到指令时自动附加到应用程序运行期,其中所述分析器代理以通信方式与所述计算系统中包括的分析器GUI相连接;
中央储存库,其包括所述指标数据源和配置数据源;
相关性引擎,用于基于两个以上的预定义参数和受影响系统资源的组合来建立所述性能指标之间的相关性;以及
图形控制器,用于生成并显示所述性能指标的用于描述所述性能指标之间的所建立的相关性的统一界面,其中,所述统一界面包括多个信息面板,所述多个信息面板包括线程状态面板、死锁面板、线程计数面板、监控面板、线程详情面板、主动方法面板、输入输出使用量面板即IO使用量面板、统计数据面板、内存使用量面板和网络使用量面板中的至少一个,以及
所述性能指标包括:
线程指标,其中所述线程指标包括线程id、线程名、时间戳、线程状态和监控器,
应用程序指标,其中所述应用程序指标包括方法名、线程名、调用层级结构、时间戳和事件,以及
资源指标,其中所述资源指标包括进程id、进程名、内存详情、CPU详情、线程详情、文件句柄、IO使用量和网络使用量,以及
所述图形控制器基于用户输入更新所述统一界面以允许基于所述用户输入来分析相关的性能指标,其中所述用户输入表示从所述线程状态面板中的线程的选择,使该线程、线程状态、锁和监控器的详情相关,状态变化在等距时间状态图中利用多颜色变量标绘,以及各变量与包括可运行状态、等待状态、定时等待状态和阻塞状态中的至少一个的线程的特定状态相对应,
其中,所述相关性引擎通过基于从时间戳、指标选择、所述配置数据源和剖析代理追踪器中选择的两个以上的预定义参数来使所述线程指标与所述应用程序指标和所述资源指标互连来建立所述性能指标之间的相关性,其中将所述配置数据源作为存储计算系统架构的配置信息的中央数据源来嵌入,所述计算系统架构包括目标应用程序、分析器代理、线程分析器和分析器GUI,其中在所述目标应用程序使用过量内存的情况下,所述计算系统内部开始使用使IO使用量增加的虚拟内存;以及
在给定时间戳处,所述线程状态与CPU利用百分比或内存利用百分比相关。
5.根据权利要求4所述的计算系统(100),其中,
所述性能指标的所述统一界面由所述图形控制器或信息面板来显示,所述信息面板(302,304,306,308,312,314,316,318,320,322)包括:
线程状态面板、死锁面板、线程计数面板、监控面板、线程详情面板、主动方法面板、IO使用量面板、统计数据面板、内存使用量面板和网络使用量面板;以及
相关性滑块(310),其使得能够观察所述信息面板之间的相关性,以及
所述用户输入采用所述相关性滑块向前或向后移动的形式。
6.根据权利要求4所述的计算系统(100),其中,根据所建立的相关性来将针对所述性能指标其中之一的用户输入自动反映到相关的性能指标中。
CN201410265911.7A 2014-01-16 2014-06-13 性能指标的相关性分析的方法和系统 Active CN104794047B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN158MU2014 IN2014MU00158A (zh) 2014-01-16 2014-01-16
IN158/MUM/2014 2014-01-16

Publications (2)

Publication Number Publication Date
CN104794047A CN104794047A (zh) 2015-07-22
CN104794047B true CN104794047B (zh) 2020-01-10

Family

ID=53521479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410265911.7A Active CN104794047B (zh) 2014-01-16 2014-06-13 性能指标的相关性分析的方法和系统

Country Status (3)

Country Link
US (1) US10552289B2 (zh)
CN (1) CN104794047B (zh)
IN (1) IN2014MU00158A (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725889B2 (en) * 2013-08-28 2020-07-28 Micro Focus Llc Testing multi-threaded applications
US10069753B2 (en) * 2014-03-17 2018-09-04 Cloud Physics, Inc. Relationship-based resource-contention analysis system and method
CN106656537B (zh) * 2015-11-03 2020-02-14 中国移动通信集团公司 一种it集群系统监控方法、装置、终端及系统
EP3200080B1 (en) * 2015-12-16 2021-12-22 Tata Consultancy Services Limited Methods and systems for memory suspect detection
US10025741B2 (en) * 2016-01-13 2018-07-17 Samsung Electronics Co., Ltd. System-on-chip, mobile terminal, and method for operating the system-on-chip
CN107124323B (zh) * 2016-02-24 2020-02-14 华为技术有限公司 确定资源指标的方法和装置
US10474366B2 (en) * 2016-12-28 2019-11-12 Sandisk Technologies Llc Non-volatile storage system with in-drive data analytics
EP3389304A1 (en) * 2017-04-14 2018-10-17 Nokia Solutions and Networks Oy Detection of behavioural patterns in a wireless network
CN108874613B (zh) * 2017-05-10 2021-11-05 鸿秦(北京)科技有限公司 一种性能瓶颈定位量化方法、装置及嵌入式io系统
JP6588956B2 (ja) * 2017-11-14 2019-10-09 株式会社日立製作所 計算機、ボトルネック特定方法、及びプログラム
CN111382037B (zh) * 2018-12-28 2023-06-20 阿里巴巴集团控股有限公司 应用性能管理信息的展示方法及装置、设备、存储介质
US11275672B2 (en) * 2019-01-29 2022-03-15 EMC IP Holding Company LLC Run-time determination of application performance with low overhead impact on system performance
US11461212B2 (en) 2019-02-12 2022-10-04 Lakeside Software, Llc Apparatus and method for determining the underlying cause of user experience degradation
US10812319B1 (en) 2019-08-08 2020-10-20 Cisco Technology, Inc. Correlating object state changes with application performance
US11995562B2 (en) 2020-12-03 2024-05-28 International Business Machines Corporation Integrating documentation knowledge with log mining for system diagnosis
US11599404B2 (en) 2020-12-03 2023-03-07 International Business Machines Corporation Correlation-based multi-source problem diagnosis
US11243835B1 (en) 2020-12-03 2022-02-08 International Business Machines Corporation Message-based problem diagnosis and root cause analysis
US11474892B2 (en) 2020-12-03 2022-10-18 International Business Machines Corporation Graph-based log sequence anomaly detection and problem diagnosis
US11797538B2 (en) 2020-12-03 2023-10-24 International Business Machines Corporation Message correlation extraction for mainframe operation
US20220179764A1 (en) * 2020-12-03 2022-06-09 International Business Machines Corporation Multi-source data correlation extraction for anomaly detection
US11513930B2 (en) 2020-12-03 2022-11-29 International Business Machines Corporation Log-based status modeling and problem diagnosis for distributed applications
US11403326B2 (en) 2020-12-03 2022-08-02 International Business Machines Corporation Message-based event grouping for a computing operation
US11768747B2 (en) * 2021-11-02 2023-09-26 Hewlett Packard Enterprise Development Lp Detecting spikes in memory usage in a computer system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5164969A (en) * 1991-07-12 1992-11-17 Hewlett-Packard Company Programmable max/min counter for performance analysis of computer systems
CN1904850A (zh) * 2006-08-04 2007-01-31 上海科泰世纪科技有限公司 对嵌入式操作系统的性能信息进行实时监测的方法
JP2008041089A (ja) * 2006-08-01 2008-02-21 Internatl Business Mach Corp <Ibm> パフォーマンス・モニタリングを提供するメモリ・システム・方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434714B1 (en) 1999-02-04 2002-08-13 Sun Microsystems, Inc. Methods, systems, and articles of manufacture for analyzing performance of application programs
US7568025B2 (en) * 2003-06-27 2009-07-28 Bank Of America Corporation System and method to monitor performance of different domains associated with a computer system or network
US7559053B2 (en) * 2004-08-24 2009-07-07 Microsoft Corporation Program and system performance data correlation
US8346917B2 (en) * 2009-06-26 2013-01-01 Netapp. Inc. Unified enterprise level method and system for enhancing application and storage performance
US9129056B2 (en) * 2009-12-04 2015-09-08 Sap Se Tracing values of method parameters
US8938719B2 (en) * 2011-11-30 2015-01-20 Tata Consultancy Services Limited System and method for performance assurance of applications
US20130249917A1 (en) * 2012-03-26 2013-09-26 Microsoft Corporation Profile data visualization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5164969A (en) * 1991-07-12 1992-11-17 Hewlett-Packard Company Programmable max/min counter for performance analysis of computer systems
JP2008041089A (ja) * 2006-08-01 2008-02-21 Internatl Business Mach Corp <Ibm> パフォーマンス・モニタリングを提供するメモリ・システム・方法
CN1904850A (zh) * 2006-08-04 2007-01-31 上海科泰世纪科技有限公司 对嵌入式操作系统的性能信息进行实时监测的方法

Also Published As

Publication number Publication date
IN2014MU00158A (zh) 2015-08-28
CN104794047A (zh) 2015-07-22
US10552289B2 (en) 2020-02-04
US20150199252A1 (en) 2015-07-16

Similar Documents

Publication Publication Date Title
CN104794047B (zh) 性能指标的相关性分析的方法和系统
US8627317B2 (en) Automatic identification of bottlenecks using rule-based expert knowledge
US10831633B2 (en) Methods, apparatuses, and systems for workflow run-time prediction in a distributed computing system
CN109716730B (zh) 用于生产应用的自动化性能调试的方法和计算设备
KR101683321B1 (ko) 분산 애플리케이션들을 모니터링 하는 방법
US8667334B2 (en) Problem isolation in a virtual environment
US8813055B2 (en) Method and apparatus for associating user-specified data with events in a data space profiler
US9658910B2 (en) Systems and methods for spatially displaced correlation for detecting value ranges of transient correlation in machine data of enterprise systems
US8627335B2 (en) Method and apparatus for data space profiling of applications across a network
US10635570B2 (en) Memory leak profiling events
US8640114B2 (en) Method and apparatus for specification and application of a user-specified filter in a data space profiler
US20080127149A1 (en) Method and Apparatus for Computing User-Specified Cost Metrics in a Data Space Profiler
US20120054331A1 (en) Correlation of metrics monitored from a virtual environment
US7814198B2 (en) Model-driven, repository-based application monitoring system
US20070067777A1 (en) Logging lock data
US20160077828A1 (en) Logical grouping of profile data
Ezzati-Jivan et al. Depgraph: Localizing performance bottlenecks in multi-core applications using waiting dependency graphs and software tracing
Zhang et al. Wowmon: A machine learning-based profiler for self-adaptive instrumentation of scientific workflows
US20130307854A1 (en) Method and System for Visualising a System Model
US10990502B2 (en) Detailed performance analysis by flow aware marker mechanism
Mohr et al. Performance measurement and analysis tools for extremely scalable systems
Kalmegh et al. Analyzing query performance and attributing blame for contentions in a cluster computing framework
Daoud et al. Multilevel analysis of the java virtual machine based on kernel and userspace traces
CN115061804A (zh) 一种细粒度多维度的大规模机器学习性能分析方法
Kleehaus et al. Discovery of Microservice-based IT Landscapes at Runtime: Algorithms and Visualizations.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant