CN105224434B - 使用机器学习识别软件阶段 - Google Patents
使用机器学习识别软件阶段 Download PDFInfo
- Publication number
- CN105224434B CN105224434B CN201510368836.1A CN201510368836A CN105224434B CN 105224434 B CN105224434 B CN 105224434B CN 201510368836 A CN201510368836 A CN 201510368836A CN 105224434 B CN105224434 B CN 105224434B
- Authority
- CN
- China
- Prior art keywords
- performance data
- cluster
- performance
- calculating equipment
- data
- 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
Links
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/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
用于应用性能分析的技术包括能够执行具有若干阶段的应用的计算设备。所述计算设备收集性能数据,所述性能数据指示在应用的执行期间计算设备的多个性能属性。所述计算设备可以将从处理器性能监视单元收集的数据和从计算设备的操作系统收集的数据进行合并。该计算设备使用诸如K‑均值群集的无监督群集算法将所述性能数据划分为多个群集,形成群集模型。计算设备可以将所述性能数据划分为多个群集模型,将诸如正则判别分析的分类算法应用到每一个群集模型,并选择具有最低误分类率的群集模型。所述计算设备将群集模型的每一个群集与软件应用的阶段相关联。其他实施例被描述并要求保护。
Description
背景技术
软件应用性能监视和分析允许应用开发者和系统管理员调整、优化和改进计算系统的性能。识别软件应用的特定阶段是用于性能分析的有用技术。例如,在识别软件阶段之后,应用可以组合在一起以使应用之间的资源冲突最小化。软件阶段包括软件应用的任何功能子单元,诸如,线程、对象、功能、模块或其他部件。常规的性能分析工具可以允许人工操作员识别软件阶段,例如通过查看性能监视数据的图表或表。其他分析工具可以通过监视正被执行的指令的存储器地址的变化(例如,硬件程序计数器或指令指针的值)而识别软件阶段。然而,检索指令地址可能导致不可接受的性能损失。此外,这样的重量级的性能监视方法可能不适合于长时间运行的应用,诸如,云环境中的服务器应用。
附图说明
本文所述的原理以举例而不是限制的方式在附图中示出。为了简单和清楚地示出,图中所示的元件不一定按比例绘制。在认为适当的场合,附图标记在附图之间重复以指示对应或类似的元件。
图1是用于使用机器学习来识别软件阶段的计算设备的至少一个实施例的简化框图;
图2是图1的计算设备的环境的至少一个实施例的简化框图;
图3是用于可以由图1和2的计算设备执行的识别软件阶段的方法的至少一个实施例的简化流程图;
图4是可以由图1和2的计算设备收集的性能数据的简化示意图;以及
图5是可以由图1和2的计算设备处理的性能数据和数据群集的简化图表。
具体实施方式
尽管本公开的概念易于进行各种修改和可替代形式,但是其特定实施例在附图中通过示例的方式示出并将在本文详细地描述。然而,应该理解,本文不是要将本公开的概念限制为所公开的形式,而是相反,意图在于覆盖与本公开和所附权利要求一致的所有修改、等同物和替代方案。
在说明书中,对“一个实施例”、“实施例”、“举例示出的实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每一个实施例可以或可以不必包括该特定特征、结构或特性。此外,这样的短语不一定指同一实施例。此外,当特定特征、结构或特性结合实施例进行描述时,应当认为结合无论是否明确描述的其他实施例实现这样的特征、结构或特性是在本领域技术人员的知识范围内的。另外,应该意识到:包括在形式“至少一个A,B和C”中的列表项可以表示(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。同样,在形式“A,B或C中的至少一个”中列出的项可以指(A);(B);(C);(A和B),(A和C);(B和C);或(A,B和C)。
在一些情况下,所公开的实施例可以被实现在硬件、固件、软件或其任何组合中。所公开的实施例也可以实现为通过一个或多个暂时性或非暂时性机器可读(例如,计算机可读)存储介质携带或存储的指令,所述指令可以通过一个或多个处理器读取并执行。机器可读存储介质可以实现为用于以由机器可读的形式(例如,易失性或非易失性存储器、介质盘或其它介质设备)存储或传输信息的任何存储设备、机构或其它物理结构。
在附图中,一些结构或方法特征可以以特定布置和/或顺序示出。然而,应该意识到,可以不需要这样的特定布置和/或顺序。相反,在一些实施例中,可以以与示例性附图所示的不同方式和/或顺序布置这样的特征。此外,在特定附图中包括结构或方法特征不意味着暗示这样的特征是所有实施例中必需的,并且在一些实施例中这样的特征可以不包括或可以与其他特征相结合。
现在参考图1,示例性计算设备100可以用于识别软件阶段。计算设备100收集在执行一个或多个软件应用期间的性能数据。计算设备100可以使用硬件性能计数器、操作系统监视工具或计算设备100可用的任何其他性能监视系统来收集性能数据。计算设备100通过基于多个维数据的相似度将数据分组到群集并且然后使用分类算法来评估群集的质量,从而分析所述性能数据。计算设备100可以将性能数据组合为多个不同的群集模型,并且使用分类算法以选择最佳匹配的群集模型。计算设备100将性能数据的群集和软件应用的阶段相关联。使用机器学习算法来识别软件阶段允许在不需要在分析之前指定任何特定的性能属性的情况下识别软件阶段。此外,软件阶段可以基于观察的行为来进行识别,这可以暴露基于先前操作者的知识不能预测的阶段。识别软件阶段可以允许调度应用,以用于改进性能或更好地利用资源,例如通过调度具有用于在相同的计算设备100上执行的不同性能特性的软件阶段。
计算设备100可以被体现为用于执行本文所述功能的任何类型的设备。例如,计算设备100可以被体现为(但不限于)服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、手持装置、消息收发设备、可佩戴计算设备、车辆远程信息处理设备、分布式计算系统、多处理器系统、消费电子设备、嵌入式控制器和/或被配置为执行本文所述功能的任何其他计算设备。如图1所述,示例性计算设备100包括处理器120、输入/输出子系统124、存储器126和数据存储设备132。当然,在其他实施例中,计算设备100可以包括其它或附加的部件,诸如通常在服务器计算机发现的那些(例如,各种输入/输出设备)。另外,在一些实施例中,示例性部件中的一个或多个可以并入另一部件的部分,或另外形成另一部件的部分。例如,在一些实施例中,存储器126或其部分可以并入在处理器120中(例如,在其中处理器高速缓存用作随机存取存储器的实现中)。
处理器120可以被体现为能够执行本文所述功能的任何类型的处理器。例如,处理器120可以被体现为单一或多核处理器、数字信号处理器、微控制器、或其它处理器或处理/控制电路。虽然示例性计算设备100包括单处理器120,但在一些实施例中,计算设备100可以包括一个以上的处理器120。例如,计算设备100可以被体现为具有共享存储器互连的对称多处理系统。示例性处理器120包括性能监视单元(PMU)122。PMU 122可以被体现为能够通过处理器120记录和监视指令流的多个性能计数器。例如,PMU 122能够关于报告引退指令、高速缓存缺失数据、转换后备缓冲器(TLB)缺失数据、存储器带宽使用和其它数据的统计数据。虽然示出为单个PMU 122,但在一些实施例中,处理器120可以包括多个PMU 122,例如,一个PMU 122用于每一个处理器核心。
存储器126可以被体现为能够执行本文所述功能的任何类型的易失性或非易失性存储器或数据存储。在操作中,存储器126可以存储在计算设备100的操作期间使用的各种数据和软件,诸如,操作系统、应用、程序、库和驱动程序。示例性存储器126包括具有多个阶段130的应用128。应用128可以表示用户应用、系统应用、或者由计算设备100执行的其他工作负载。应用128的每一个阶段130表示执行特定工作负载的应用128的子部分。例如,每一个阶段130可以被体现为代码段、模块、子例程、对象、过程、或应用128的其他部分。在一些实施例中,每一个阶段130可以与存储器126内的特定地址范围相关联。当然,存储器126可以包括具有自己阶段130的任何数量的应用128。
存储器126经由I/O子系统124通信地耦合到处理器120,I/O子系统124可以被体现为有助于处理器120、存储器126和计算设备100的其它部件的输入/输出操作的电路和/或部件。例如,该I/O子系统124可以被体现为或另外包括:存储器控制器集线器、输入/输出控制集线器、固件设备、通信链路(即,点对点链路、总线链路、电线、电缆、光导、印刷电路板迹线等)和/或有助于输入/输出操作的其他部件和子系统。在一些实施例中,所述I/O子系统124可以形成片上系统(SoC)的一部分,并且与处理器120、存储器126和计算设备100的其他部件一起并入在单个集成电路芯片上。
数据存储设备132可以被体现为被配置用于短期或长期数据存储的任何类型的设备或多个设备,诸如例如,存储器设备和电路、存储卡、硬盘驱动器、固态驱动器或其他数据存储设备。数据存储设备132可以用于存储应用128的二进制图像,以及用于存储与应用128有关的性能和事件日志。
计算设备100进一步包括通信电路134,其可以被体现为能够在计算设备100和远程计算设备之间通信的任意通信电路、设备或其集合。该通信电路134可以被配置为使用任何一个或多个通信技术(例如,无线或有线通信)和相关联的协议(例如,以太网、WiMAX、HSPA+、LTE等)来实现这样的通信。该通信电路134可以被体现为包括无线网络适配器的网络适配器。
虽然示出为单个设备,但是计算设备100可以被体现为单个计算设备或计算机和相关联的设备的集合。例如,在一些实施例中,计算设备100可以被体现为“虚拟服务器”,该“虚拟服务器”由在网络上分布并在公共或私有云中操作的多个计算设备形成。因此,虽然计算设备100在图1中示出为实现为单个计算设备,但是应当意识到,计算设备100可以被体现为在一起协作以有助于如下所述功能的多个设备。
现在参考图2,在示例性实施例中,计算设备100建立操作期间的环境200。示例性环境200包括软件应用202、性能监视模块206、数据合并模块212、数据分析模块214和阶段分析模块220。环境200的各个模块可以被体现为硬件、固件、软件或它们的组合。
软件应用202可以被体现为由计算设备100执行的任何应用,包括但不限于用户应用程序、服务器应用程序、数据库或任何其他的工作负载。软件应用202可以被体现为本地应用或诸如应用的管理应用。软件应用202可以包括多个阶段204。每一个阶段204可以被体现为软件应用202的任何不同功能部件。例如,阶段204可以包括线程、进程、对象、功能、包或软件应用202的其他功能子单元的任意组合。
性能监视模块206被配置为监视在软件应用202的执行期间收集的计算设备100的性能数据。性能监视模块206可以监视处理器性能数据,即,指示在应用程序202的执行期间通过处理器120的指令流的数据。性能监视模块206可以使用处理器120的PMU 122以收集处理器性能数据。性能监视模块206还可以监视操作系统性能数据,即,指示在应用202的执行期间计算设备100的软件性能的数据。处理器性能数据和操作系统性能数据二者可以在软件应用202的执行期间实时收集,或者可以被记录以供进一步的分析。性能监视模块206的这样的功能可以由子模块(例如,由处理器模块208或操作系统模块210)来执行。
数据合并模块212被配置为合并处理器性能数据和操作系统性能数据,以生成组合的性能数据222。性能数据222包括多个数据样本,每一个数据样本包括与计算设备100的各种测量的性能属性相对应的多个值。数据合并模块212可以针对一些数据样本插入性能属性的值。因此,性能数据222的每一个数据样本可以包括每一个性能属性的测量或插入值。
数据分析模块214被配置为使用无监督群集算法根据一个或多个群集模型来对性能数据222进行分组。每一个群集模型包括多个群集,每一个群集与基于相似性进行分组的性能数据222的多个数据样本相关联。数据分析模块214还被配置为使用分类算法来分析群集模型,以确定每一个群集的误分类率。误分类率可以用于识别最匹配性能数据222的群集模型。在一些实施例中,数据分析模块214可以例如通过标准化数据或过滤噪声来对性能数据222进行预处理以准备群集和/或分类分析。
阶段分析模块220被配置为将所选择的群集模型的每一个群集和软件应用202的软件阶段204相关联。阶段分析模块220可以使用任何技术以将性能数据222的数据样本与软件阶段204相关联。例如,阶段分析模块220可以对性能数据222的时间戳和软件应用202的记录事件的时间戳进行比较。
现在参考图3,在使用中,计算设备100可以执行方法300以用于识别软件阶段。该方法300开始于块302,其中计算设备100在特定软件应用202的执行期间从性能监视单元122收集处理器性能数据。当软件应用202被执行或者可以被记录以用于进一步分析时,性能数据222可以实时收集。处理器性能数据包括指示在应用202的执行期间通过处理器120的指令流的数据。例如,处理器性能数据可以包括与引退指令的数目有关的数据、高速缓存缺失数据、转换后备缓冲器(TLB)缺失数据、存储器带宽使用率以及其他数据。处理器性能数据可以被组织为与在不同时间获取的样本相对应的收集数据样本。每一个数据样本包括与计算设备100的测量性能属性相对应的多个不同值(例如,高速缓存缺失数据、TLB缺失数据等)。例如,数据样本可以包括与相关联的性能属性相对应的数百个值。PMU 122可以被实现在硬件中或以其它方式优化以允许高频采样,而不降低计算设备100的性能。因此,处理器性能数据可以包括在细粒度采样间隔记录的大容量的数据样本(例如,每十秒一个数据样本)。
在块304,计算设备100在软件应用202的执行期间从操作系统收集操作系统性能数据。操作系统性能数据可以由操作系统的性能监视子系统(诸如,类似UNIX系统上的系统活动报告(SAR))收集。类似于处理器性能数据,操作系统性能数据可以实时收集或记录以用于进一步的收集。操作系统性能数据包括指示在应用202的执行期间计算设备100的软件性能的数据。例如,操作系统性能数据可以包括页交换数据、页错误数据、进程队列数据以及其他数据。类似于处理器性能数据,操作系统性能数据可以被组织为与在不同时间获取的样本相对应的数据样本的集合。每一个数据样本包括与计算设备100的测量性能属性相对应的多个不同值(例如,页交换数据、处理队列数据,等等)。与处理器性能数据相反,操作系统性能数据的频繁采样可能降低计算设备100的性能。因此,操作系统性能数据可以以相对较粗的采样间隔来进行采样(例如,每几秒钟一个数据样本)。
在块306中,计算设备100合并处理器性能数据和操作系统性能数据,以生成组合的性能数据222。性能数据222包括与不同时间相对应的数据样本的集合,每一个数据样本包括与计算设备100的性能属性(处理器属性和操作系统属性)相对应的多个值。该性能数据222可以使用任何数据处理技术来进行合并。在一些实施例中,性能数据222可以包括大量的数据样本;因此,分布式数据仓库和其它分布式处理技术可以适于合并处理器性能数据。例如,性能数据222可以通过使用诸如由Apache Hive包提供的HiveQL的查询语言来连接包括处理器性能数据和操作系统性能数据的两个分布式数据表而产生。在一些实施例中,在块308中,计算设备100可以将处理器性能数据的样本数据和操作系统性能数据相关。例如,处理器性能数据可以基于时间戳与操作系统性能数据相关。在一些实施例中,在块310中,计算设备100可以在性能数据222中插入未命中的值。性能数据222的每一个数据样本可以不包括由计算设备100可测量的各项性能属性的值。例如,因为操作系统性能数据可以以比处理器性能数据更低的速率进行采样,操作系统性能属性不可以用于每个数据样本。作为另一示例,处理器性能数据的某些性能属性可能无法在每个采样间隔进行采样。计算设备100可以通过基于周围数据样本的测量值来计算不具有测量值的性能属性的值而插入缺失值。计算设备100可以执行线性插值;即,计算设备100可以通过使用测量值之间的线性函数来计算值而插入缺失值。计算设备100还可以使用其它插值方法。
例如,现在参考图4,示意图400示出了性能数据222的收集和插入。表402示出了由计算设备100收集的处理器性能数据。表402的每一行与单个数据样本相对应。列T表示每一个数据样本的时间戳;在示例性示例中,采样间隔为0.1秒。列X1至Xn表示针对每一个数据样本测量的性能属性(例如,高速缓存未命中、所用的存储器带宽等等)。变量x11至X5n表示针对每一个数据样本的性能参数的单独的值。表404示出了由计算设备100收集的操作系统性能数据。表404的每一行与单个数据样本相对应。列T类似地表示每一个数据样本的时间戳;注意,在示例性示例中,采样间隔为0.4秒,其大于处理器性能数据。列Y1至Ym表示针对每一个数据样本测量的性能属性(例如,页错误、进程队列等)。变量y11至y2m表示针对每一个数据样本的性能参数的单独的值。
如图所示,表402和404进行连接,以形成组合的性能数据222。对于在两个表402、404中具有数据的时间戳,性能数据被合并成单个行。例如,时间戳0.1的数据样本包括与值y11至y1m连接的值x11至xln。阴影单元406表示性能数据中的缺失值。也就是说,阴影单元406与针对每个性能参数不具有数据的时间戳的行相对应。在示例性示例中,阴影单元406包括仅来自表402的性能属性。如上所述,在一些实施例中,计算设备100可以在单元406中插入缺失值的值。例如,计算设备100可以通过在y11和y21的值之间线性地插入y的值而计算时间戳0.2至0.4的参数Y1的值。类似的计算可以针对其它单元406执行。
返回参考图3,在合并性能数据222之后,在块312中,计算设备100对性能数据222进行预先处理以用于群集分析。计算设备100可以执行提高群集准确性的任何数据质量处理。所执行的特定预处理可以取决于所选择的群集算法,如下所述。在一些实施例中,在块314中,计算设备100可以转换性能数据222的一个或多个性能属性以符合正态分布。转换性能数据222可以解决不同的性能属性之间的规模差异。此外,进一步的分析算法(诸如,判别分析)可以假设数据是正态分布的。在一些实施例中,在块316中,计算设备100可以过滤掉确定为是噪声的一个或多个性能属性。噪声性能属性包括响应于软件应用202的不同软件阶段204的执行而不改变的属性。因此,它们可能不利于成功地对性能数据222进行群集。在一些实施例中,计算设备100可以将噪声性能属性识别为具有低方差的那些。特别地,计算设备100可以识别其值具有方差与均值的比率小于预定阈值比率的性能属性。计算设备100可以通过将它们的值设置为零或否则在任何进一步分析中忽略它们,而过滤噪声性能属性。
在块318中,基于数据样本之间的相似性,计算设备100将性能数据222划分为多个群集。计算设备100将性能数据222的每一个数据样本分配一个群集标签。将数据样本分配给群集标签可以被称为群集模型。计算设备100可以将性能数据222划分为任何数量的群集。群集的数量可以是预先定义的或在运行时由计算设备100的用户指定的。例如,用户可以具有与软件应用202的可能数量的软件阶段204有关的领域知识,并且指定与可能数目的软件阶段204相对应的群集量。作为具体示例,考虑到软件应用202是Java应用,用户可以指定与垃圾收集线程相对应的多个群集和在应用202中使用的工作线程的数量。计算设备100可以使用任何无监督群集算法来划分性能数据222。即,计算设备100可以使用不要求用户指定示例群集标签或否则要求训练数据集的任何群集算法。在一些实施例中,在块320中,计算设备100可以使用K-均值群集算法将性能数据222分组为K个群集。该K-均值群集算法是将在多维空间中密切在一起的数据样本分组为群集的无监督算法。如上所述,K的值可以是预定义的或由用户指定的。
例如,现在参考图5,图500示出了群集性能数据222的结果。图表500包括与性能数据222的性能属性相对应的两个轴x1和x2。示例性性能数据222的数据样本222被绘制为由参数x1和x2定义的二维空间中的点。如在图表500中示出的,性能数据222被划分为三个群集502、504、506,正如由虚线边界所示出的。在示例性示例中,当K等于3时,通过应用K-均值群集,划分性能数据222。如所示出的,特定群集502、504、506内的每一个数据样本接近于两维空间中群集502、505、506的其它数据样本。当然,在使用中,性能数据222可以具有更多的尺寸,例如,几百个尺寸。因此,在使用中,性能数据222被划分为多维空间中的群集。
参见回到图3,在产生群集模型之后,在块322,计算设备100应用分类算法,以确定群集模型中的每一个群集的误分类率。分类算法开发可以用于预测每一个数据样本属于哪个分组的功能。分类算法可以使用分配给该性能数据222的群集标签作为训练数据。换句话说,分类算法可以是监督算法。因此,将分类算法应用到特定的数据样本可以预测数据样本应该被分类在与由群集算法分配的群集不同的群集。计算设备100可以识别所有这样的误分类的数据样本,并且确定每一个群集的误分类率。换句话说,分类算法报告群集模型的误分类数据样本的数目。较低的误分类率可以指示群集模型非常适合于性能数据222。计算设备100可以应用适合于判别群集之间的数据样本的任何分类算法。在一些实施例中,在块324中,计算设备100可以对群集模型执行正则化判别分析。线性判别分析开发判别函数,其是在群集之间最佳判别的性能属性的线性组合。正则判别分析是类似的,但附加地使数据规则化,这可以针对相对小样本以改进性能。正则判别分析返回报告误分类的数据样本的混淆矩阵。
再次参考图5,图表500示出了分类算法的应用。向量508表示由正规化判别分析产生的两个线性判别函数。视觉上,通过在向量508上投影每一个数据样本来对性能数据222进行分类。基于由向量508定义的在子空间中它们的位置,投影的数据样本被分离为分组。如果其投影是在向量508的错误侧(在多维空间中),则数据样本被误分类。示例性图表500包括与两个判别函数相对应的两个矢量508;当然,在使用中,判别函数的数量可以取决于群集模型中的群集数量。
返回参考图3,在应用分类分析之后,在块326中,计算设备100确定是否要测试附加的群集模型。如上所述,用户可以指定用于群集分析的群集的数量。在一些实施例中,用户可以指定用于测试的多个可能数量的群集或群集数量的范围。另外或可替代地,计算设备100可以搜索预定范围数量的群集。如果附加的群集模型应被测试,则方法300循环回到块318以将性能数据222划分为新数量的群集。如果没有其他的群集模型应被测试,则方法300前进到块328。
在块328,计算设备100选择具有最低误分类率的群集模型,如在块322中的分类分析所确定的,如上所述。换句话说,计算设备100确定分类算法确定最少的数据样本在错误群集中的群集数量。当然,在实施例中,只测试单个群集模型(和因此单个数量的群集),可以选择该群集模型。
在块330,计算设备100将群集模型的每一个群集和软件应用202的特定软件阶段204相关联。通过将软件阶段204与性能数据222中的群集相关联,计算设备100可以识别在多个性能参数上展示类似行为的软件应用202的部件。计算设备100可以使用任何方法以将群集和软件阶段204相关联。在块332中,在一些实施例中,计算设备100可以将性能数据222的时间戳和软件应用202的记录事件的时间戳进行比较。例如,计算设备100可以确定:在群集中的数据样本与当软件应用202正在服务用户请求时的时间相对应,以及另一个群集中的数据样本与当软件应用202正执行垃圾收集时的时间相对应。
在一些实施例中,在将软件阶段204与在性能数据222中识别的群集相关联之后,在块334中,计算设备100可以基于所识别的软件阶段204来调整计算设备100的一个或多个参数。例如,计算设备100的性能属性可以基于在应用202的常规运行期间执行的软件阶段204来进行调整。例如,特定的软件阶段204可以主要使用特定的计算资源(例如,处理器资源、存储I/O资源、网络资源等),以及计算设备100可以被配置用于这样的资源的增强性能。另外或可替代地,计算设备100可以识别多个不同应用202的软件阶段204。如上所述,该信息可以用于确定不同软件应用202的兼容阶段204,即,不竞争相同资源的软件应用202的阶段204。这样的信息可以用于单独地在计算设备100上或跨计算设备的群集更有效地调度软件应用202。例如,如果软件应用202的阶段204使用不同的计算资源(如,一个阶段204表现出高处理器使用,而另一个阶段204表现出高存储I/O使用),则软件应用202可以被调度用于在相同的计算设备100上同时执行。作为另一示例,都表现出高处理器使用率的两个或更多个阶段204可以被调度用于在不同的计算设备100上执行。在一些实施例中,在调整计算设备100的参数之后,方法300循环返回到块302以进一步识别软件阶段204。示例
下面提供了本文公开的技术的示例性示例。该技术的实施例可以包括下面描述的示例的任何一个或多个、以及任何组合。
示例1包括一种用于软件应用性能分析的计算设备,该计算设备包括:性能监视模块,其用于收集性能数据,所述性能数据指示在软件应用的执行期间所述计算设备的多个性能属性,其中所述性能数据包括多个数据样本,每一个数据样本包括与性能属性相对应的多个值;数据分析模块,其用于使用无监督群集算法以将所述性能数据划分为多个群集,其中每一个群集包括性能数据的多个数据样本;以及阶段分析模块,其用于将所述多个群集的每一个群集和软件应用的阶段相关联。
示例2包括示例1的主题,以及其中,划分所述性能数据包括:(i)将性能数据划分为具有第一数量的群集的第一群集模型;以及(ii)将所述性能数据划分为具有第二数量的群集的第二群集模型,所述第二数量的群集与所述第一数量的群集不同;所述数据分析模块进一步用于:(i)应用分类算法以确定所述第一群集模型的每一个群集的第一误分类率,(ii)应用所述分类算法以确定所述第二群集模型的每一个群集的第二误分类率,以及(iii)从所述第一群集模型和所述第二群集模型中选择具有较低误分类率的群集模型;并且其中将多个群集的每一个群集相关联包括:用于将较低误分类率的群集模型的每一个群集与软件应用的阶段相关联。
示例3包括示例1和2中的任何一项的主题,以及其中收集性能数据包括:从所述计算设备的性能监视单元(PMU)收集处理器性能数据。
示例4包括示例1-3中的任何一项的主题,以及其中所述处理器性能数据包括:高速缓存缺失数据、转换后备缓冲器缺失数据、或存储器带宽使用数据中的至少一个。
示例5包括示例1-4中的任何一项的主题,以及其中收集所述性能数据包括:从所述计算设备的操作系统收集操作系统性能数据。
示例6包括示例1-5中的任何一项的主题,以及其中所述操作系统性能数据包括:页交换数据、页错误数据或处理队列数据中的至少一个。
示例7包括示例1-6中的任何一项的主题,以及其中收集性能数据包括:从计算设备的性能监视单元(PMU)收集处理器性能数据;从计算设备的操作系统收集操作系统性能数据;以及所述计算设备进一步包括数据合并模块,其用于合并所述处理器性能数据和所述操作系统性能数据以生成性能数据。
示例8包括示例1-7中的任何一项的主题,以及其中合并所述处理器性能数据和所述操作系统性能数据包括:在所述操作系统性能数据中插入缺失值。
示例9包括示例1-8中的任何一项的主题,以及其中所述数据分析模块进一步对所述性能数据进行预处理以准备所述性能数据,用于使用所述无监督群集算法进行划分。
示例10包括示例1-9中的任何一项的主题,以及其中对所述性能数据进行预处理包括:转换与多个性能属性的一个性能属性相对应的值,以符合预定义的分布。
示例11包括示例1-10中的任何一项的主题,以及其中对所述性能数据进行预处理包括:忽略多个属性中具有方差与均值的比率小于方差与均值的阈值比率的性能属性。
示例12包括示例1-11中的任何一项的主题,以及其中划分所述性能数据包括:将所述性能数据划分为由计算设备的用户指定的多个群集。
示例13包括示例1-12中的任何一项的主题,以及其中所述无监督群集算法包括K-均值群集算法。
示例14包括示例1-13中的任何一项的主题,以及其中所述分类算法包括正则判别分析算法。
示例15包括示例1-14中的任何一项的主题,以及其中将多个群集的每一个群集相关联包括:对性能数据的数据样本的时间戳和软件应用的记录事件的时间戳进行比较。
示例16包括一种用于软件应用性能分析的方法,该方法包括:由计算设备收集性能数据,所述性能数据指示在软件应用的执行期间所述计算设备的多个性能属性,其中所述性能数据包括多个数据样本,每一个数据样本包括与性能属性相对应的多个值;由计算设备使用无监督群集算法将所述性能数据划分为多个群集,其中每一个群集包括性能数据的多个数据样本;以及由计算设备将多个群集的每一个群集和软件应用的阶段相关联。
示例17包括示例16的主题,以及其中划分所述性能数据包括:(i)将性能数据划分为具有第一数量的群集的第一群集模型;以及(ii)将所述性能数据划分为具有第二数量的群集的第二群集模型,所述第二数量的群集与所述第一数量的群集不同;所述方法进一步包括:由所述计算设备应用分类算法以确定所述第一群集模型的每一个群集的第一误分类率;由所述计算设备应用所述分类算法以确定所述第二群集模型的每一个群集的第二误分类率;由所述计算设备从所述第一群集模型和所述第二群集模型中选择具有较低误分类率的群集模型;以及其中将多个群集的每一个群集相关联包括:将具有较低误分类率的群集模型的每一个群集与软件应用的阶段相关联。
示例18包括示例16和17中的任何一项的主题,以及其中收集性能数据包括:从所述计算设备的性能监视单元(PMU)收集处理器性能数据。
示例19包括示例16-18中的任何一项的主题,以及其中收集所述处理器性能数据包括:收集高速缓存缺失数据、转换后备缓冲器缺失数据、或存储器带宽使用数据中的至少一个。
示例20包括示例16-19中的任何一项的主题,以及其中收集所述性能数据包括:从计算设备的操作系统收集操作系统性能数据。
示例21包括示例16-20中的任何一项的主题,以及其中收集操作系统性能数据包括:收集页交换数据、页错误数据或处理队列数据中的至少一个。
示例22包括示例16-21中的任何一项的主题,以及其中收集性能数据包括:从所述计算设备的性能监视单元(PMU)收集处理器性能数据;从所述计算设备的操作系统收集操作系统性能数据;以及合并所述处理器性能数据和所述操作系统性能数据以生成性能数据。
示例23包括示例16-22中的任何一项的主题,以及其中合并所述处理器性能数据和所述操作系统性能数据包括:在所述操作系统性能数据中插入缺失值。
示例24包括示例16-23中的任何一项的主题,以及进一步包括由所述计算设备对所述性能数据进行预处理以准备所述性能数据,用于使用所述无监督群集算法进行划分。
示例25包括示例16-24中的任何一项的主题,以及其中对所述性能数据进行预处理包括:转换与多个性能属性的一个性能属性相对应的值,以符合指定的分布。
示例26包括示例16-25中的任何一项的主题,以及其中对所述性能数据进行预处理包括:忽略多个属性中具有方差与均值的比率小于方差与均值的阈值比率的性能属性。
示例27包括示例16-26中的任何一项的主题,以及其中划分所述性能数据包括:将所述性能数据划分为由计算设备的用户指定的多个群集。
示例28包括示例16-27中的任何一项的主题,以及其中划分所述性能数据包括:使用K-均值群集算法,将所述性能数据划分为多个群集。
示例29包括示例16-28中的任何一项的主题,以及其中应用分类算法包括:应用正则化判别分析算法,以确定多个群集的每一个群集的误分类率。
示例30包括示例16-29中的任何一项的主题,以及其中将多个群集的每一个群集相关联包括:对性能数据的数据样本的时间戳和软件应用的记录事件的时间戳进行比较。
示例31包括一种计算设备,包括:处理器;以及存储器,所述存储器具有在其中存储的多个指令,当由处理器执行所述多个指令时使所述计算设备执行示例16-30中的任一项所述的方法。
示例32包括一个或多个机器可读存储介质,其包括其上存储的多个指令,响应于所述多个指令被执行,使得计算设备执行示例16-30中的任一项所述的方法。
示例33包括一种计算设备,包括用于执行示例16-30中的任一项所述的方法的模块。
示例34包括一种用于软件应用性能分析的计算设备,该计算设备包括:用于收集指示在软件应用的执行期间计算设备的多个性能属性的性能数据的单元,其中所述性能数据包括多个数据样本,每一个数据样本包括与性能属性相对应的多个值;用于使用无监督群集算法以将所述性能数据划分为多个群集的单元,其中每一个群集包括性能数据的多个数据样本;以及用于将多个群集的每一个群集和软件应用的阶段相关联的单元。
示例35包括示例34的主题,以及其中用于划分性能数据的单元包括:(i)用于将性能数据划分为具有第一数量的群集的第一群集模型的单元;以及(ii)用于将所述性能数据划分为具有第二数量的群集的第二群集模型的单元,所述第二数量的群集与所述第一数量的群集不同;所述计算设备进一步包括:用于应用分类算法以确定所述第一群集模型的每一个群集的第一误分类率的单元;用于应用所述分类算法以确定所述第二群集模型的每一个群集的第二误分类率的单元;用于从所述第一群集模型和所述第二群集模型中选择具有较低误分类率的群集模型的单元;以及其中用于将多个群集的每一个群集相关联的单元包括:用于将具有较低误分类率的群集模型的每一个群集与软件应用的阶段相关联的单元。
示例36包括示例34和35中的任何一项的主题,以及其中用于收集性能数据的单元包括:用于从所述计算设备的性能监视单元(PMU)收集处理器性能数据的单元。
示例37包括示例34-36中的任何一项的主题,以及其中用于收集处理器性能数据的单元包括:用于收集高速缓存缺失数据、转换后备缓冲器缺失数据、或存储器带宽使用数据中的至少一个的单元。
示例38包括示例34-37中的任何一项的主题,以及其中用于收集性能数据的单元包括:用于从计算设备的操作系统收集操作系统性能数据的单元。
示例39包括示例34-38中的任何一项的主题,以及其中用于收集操作系统性能数据的单元包括:装置,用于收集页交换数据、页错误数据或处理队列数据中的至少一个的单元。
示例40包括示例34-39中的任何一项的主题,以及其中用于收集性能数据的单元包括:用于从所述计算设备的性能监视单元(PMU)收集处理器性能数据的单元;用于从计算设备的操作系统收集操作系统性能数据的单元;以及用于合并所述处理器性能数据和所述操作系统性能数据以生成性能数据的单元。
示例41包括示例34-40中的任何一项的主题,以及其中用于合并所述处理器性能数据和所述操作系统性能数据的单元包括:用于在所述操作系统性能数据中插入缺失值的单元。
示例42包括示例34-41中的任何一项的主题,以及进一步包括:用于对性能数据进行预处理以准备性能数据,用于使用所述无监督群集算法进行划分的单元。
示例43包括示例34-42中的任何一项的主题,以及其中用于对性能数据进行预处理的单元包括:用于转换与多个性能属性的一个性能属性相对应的值,以符合指定分布的单元。
示例44包括示例34-43中的任何一项的主题,以及其中用于对性能数据进行预处理的单元包括:用于忽略多个属性中具有方差与均值的比率小于方差与均值的阈值比率的性能属性的单元。
示例45包括示例34-44中的任何一项的主题,以及其中用于划分性能数据的单元包括:用于将所述性能数据划分为由计算设备的用户指定的多个群集的单元。
示例46包括示例34-45中的任何一项的主题,以及其中用于划分性能数据的单元包括:用于使用K-均值群集算法来将所述性能数据划分为多个群集的单元。
示例47包括示例34-46中的任何一项的主题,以及其中用于应用所述分类算法的单元包括:用于应用正则判别分析算法来确定多个群集的每一个群集的误分类率的单元。
示例48包括示例34-47中的任何一项的主题,以及其中用于将多个群集的每一个群集相关联的单元包括:用于对性能数据的数据样本的时间戳和软件应用的记录事件的时间戳进行比较的单元。
Claims (25)
1.一种用于软件应用性能分析的计算设备,所述计算设备包括:
一个或多个处理器,用于实现:
性能监视模块,其用于收集性能数据,所述性能数据指示在第一软件应用和第二软件应用的执行期间所述计算设备的多个性能属性,其中,所述性能数据包括多个数据样本,每一个数据样本包括与所述性能属性相对应的多个值;
数据分析模块,其用于使用无监督群集算法来将所述性能数据划分为多个群集,其中,每一个群集包括所述性能数据的多个数据样本;以及
阶段分析模块,其用于通过将所述第一软件应用的记录事件的第一组时间戳与所述第一软件应用的所述性能数据的第二组时间戳相关联,以及将所述第二软件应用的记录事件的第三组时间戳与所述第二软件应用的所述性能数据的第四组时间戳相关联,来将所述多个群集的每一个群集和所述对应的软件应用的阶段相关联,以及
所述一个或多个处理器进一步实现:
用于调度所述第一软件应用和所述第二软件应用的兼容阶段来由所述计算设备并行执行的模块,其中,所述第一和第二软件应用的兼容阶段不竞争相同的资源;
用于确定与所述群集中的一个群集相关联的所述第一软件应用的第一阶段是否相较于第二类型资源更多地使用第一类型资源的模块,以及
用于响应于确定所述第一软件应用的第一阶段相较于所述第二类型资源更多地使用所述第一类型资源,调整参数来使得所述第一类型资源在所述第一阶段期间提供增强性能,以改进两个软件应用的执行的效率的模块。
2.如权利要求1所述的计算设备,其中:
划分所述性能数据包括:(i)将所述性能数据划分为具有第一数量的群集的第一群集模型;以及(ii)将所述性能数据划分为具有第二数量的群集的第二群集模型,所述第二数量的群集与所述第一数量的群集不同;
所述数据分析模块进一步用于:(i)应用分类算法以确定所述第一群集模型的每一个群集的第一误分类率,(ⅱ)应用所述分类算法以确定针对所述第二群集模型的每一个群集的第二误分类率,以及(iii)从所述第一群集模型和所述第二群集模型中选择具有较低误分类率的群集模型;以及
其中,将所述多个群集的每一个群集相关联包括:将具有所述较低误分类率的群集模型的每一个群集与所述软件应用的阶段相关联。
3.如权利要求1所述的计算设备,其中,收集所述性能数据包括:从所述计算设备的性能监视单元(PMU)收集处理器性能数据。
4.如权利要求1所述的计算设备,其中,收集所述性能数据包括:从所述计算设备的操作系统收集操作系统性能数据。
5.如权利要求1所述的计算设备,其中,收集所述性能数据包括:
从所述计算设备的性能监视单元(PMU)收集处理器性能数据;
从所述计算设备的操作系统收集操作系统性能数据;以及
所述计算设备进一步包括数据合并模块,其用于合并所述处理器性能数据和所述操作系统性能数据以生成所述性能数据。
6.如权利要求5所述的计算设备,其中,合并所述处理器性能数据和所述操作系统性能数据包括:在所述操作系统性能数据中插入缺失值。
7.如权利要求1所述的计算设备,其中,所述数据分析模块进一步用于对所述性能数据进行预处理以准备所述性能数据,以用于使用所述无监督群集算法进行划分;其中,对所述性能数据进行预处理包括转换与所述多个性能属性的一个性能属性相对应的值,以符合预定义的分布。
8.如权利要求1所述的计算设备,其中,所述数据分析模块进一步用于对所述性能数据进行预处理以准备所述性能数据,以用于使用所述无监督群集算法进行划分;其中,对所述性能数据进行预处理包括忽略所述多个性能属性中具有方差与均值的比率小于方差与均值的阈值比率的性能属性。
9.如权利要求1所述的计算设备,其中,划分所述性能数据包括:将所述性能数据划分为由所述计算设备的用户指定的多个群集。
10.如权利要求1所述的计算设备,其中,所述无监督群集算法包括K-均值群集算法。
11.如权利要求2所述的计算设备,其中,所述分类算法包括正则判别分析算法。
12.一种用于软件应用性能分析的方法,所述方法包括:
由计算设备收集性能数据,所述性能数据指示在第一软件应用和第二软件应用的执行期间所述计算设备的多个性能属性,其中,所述性能数据包括多个数据样本,每一个数据样本包括与所述性能属性相对应的多个值;
由所述计算设备使用无监督群集算法来将所述性能数据划分为多个群集,其中,每一个群集包括所述性能数据的多个数据样本;
由所述计算设备通过将所述第一软件应用的记录事件的第一组时间戳与所述第一软件应用的所述性能数据的第二组时间戳相关联,以及将所述第二软件应用的记录事件的第三组时间戳与所述第二软件应用的所述性能数据的第四组时间戳相关联,来将所述多个群集的每一个群集与所述对应的软件应用的阶段相关联;
调度所述第一软件应用和所述第二软件应用的兼容阶段来由所述计算设备并行执行,其中,所述第一和第二软件应用的兼容阶段不竞争相同的资源;
由所述计算设备确定与所述群集中的一个群集相关联的所述第一软件应用的第一阶段是否相较于第二类型资源更多地使用第一类型资源;以及由所述计算设备响应于确定所述第一软件应用的第一阶段相较于所述第二类型资源更多地使用所述第一类型资源,调整参数来使得所述第一类型资源在所述第一阶段期间提供增强性能,以改进两个软件应用的执行的效率。
13.如权利要求12所述的方法,其中:
划分所述性能数据包括:(i)将所述性能数据划分为具有第一数量的群集的第一群集模型;以及(ii)将所述性能数据划分为具有第二数量的群集的第二群集模型,所述第二数量的群集与所述第一数量的群集不同;所述方法进一步包括:
由所述计算设备应用分类算法以确定针对所述第一群集模型的每一个群集的第一误分类率;
由所述计算设备应用所述分类算法以确定针对所述第二群集模型的每一个群集的第二误分类率;
由所述计算设备从所述第一群集模型和所述第二群集模型中选择具有较低误分类率的群集模型;以及
其中,将所述多个群集的每一个群集相关联包括:将具有所述较低误分类率的群集模型的每一个群集与所述软件应用的阶段相关联。
14.如权利要求12所述的方法,其中,收集所述性能数据包括:
从所述计算设备的性能监视单元(PMU)收集处理器性能数据;
从所述计算设备的操作系统收集操作系统性能数据;以及
合并所述处理器性能数据和所述操作系统性能数据以生成所述性能数据。
15.如权利要求14所述的方法,其中,合并所述处理器性能数据和所述操作系统性能数据包括:在所述操作系统性能数据中插入缺失值。
16.如权利要求12所述的方法,进一步包括由所述计算设备对所述性能数据进行预处理以准备所述性能数据,以用于使用所述无监督群集算法进行划分,其中,对所述性能数据进行预处理包括转换与所述多个性能属性的一个性能属性相对应的值,以符合指定的分布。
17.如权利要求12所述的方法,进一步包括由所述计算设备对所述性能数据进行预处理以准备所述性能数据,以用于使用所述无监督群集算法进行划分,其中,对所述性能数据进行预处理包括忽略所述多个属性中具有方差与均值的比率小于方差与均值的阈值比率的多个属性。
18.一种或多种非易失性计算机可读存储介质,包括多个指令,响应于所述多个指令被执行,使得计算设备执行:
收集性能数据,所述性能数据指示在第一软件应用和第二软件应用的执行期间所述计算设备的多个性能属性,其中,所述性能数据包括多个数据样本,每一个数据样本包括与所述性能属性相对应的多个值;
使用无监督群集算法来将所述性能数据划分为多个群集,其中,每一个群集包括所述性能数据的多个数据样本;以及
通过将所述第一软件应用的记录事件的第一组时间戳与所述第一软件应用的所述性能数据的第二组时间戳相关联,以及将所述第二软件应用的记录事件的第三组时间戳与所述第二软件应用的所述性能数据的第四组时间戳相关联,来将所述多个群集的每一个群集和所述对应的软件应用的阶段相关联;
调度所述第一软件应用和所述第二软件应用的兼容阶段来由所述计算设备并行执行,其中,所述第一和第二软件应用的兼容阶段不竞争相同的资源;
确定与所述群集中的一个群集相关联的所述第一软件应用的第一阶段是否相较于第二类型资源更多地使用第一类型资源;以及
响应于确定所述第一软件应用的第一阶段相较于所述第二类型资源更多地使用所述第一类型资源,调整参数来使得所述第一类型资源在所述第一阶段期间提供增强性能,以改进两个软件应用的执行的效率。
19.如权利要求18所述的非易失性计算机可读存储介质,其中:
划分所述性能数据包括:(i)将所述性能数据划分为具有第一数量的群集的第一群集模型;以及(ii)将所述性能数据划分为具有第二数量的群集的第二群集模型,所述第二数量的群集与所述第一数量的群集不同;以及响应于所述多个指令被执行,使得所述计算设备进一步执行:
应用分类算法以确定针对所述第一群集模型的每一个群集的第一误分类率;
应用所述分类算法以确定针对所述第二群集模型的每一个群集的第二误分类率;
从所述第一群集模型和所述第二群集模型中选择具有较低误分类率的群集模型;以及
其中,将所述多个群集的每一个群集与所述软件应用的阶段相关联包括:将具有较低误分类率的群集模型的每一个群集与所述软件应用的阶段相关联。
20.如权利要求18所述的非易失性计算机可读存储介质,其中,收集所述性能数据包括:从所述计算设备的性能监视单元(PMU)收集处理器性能数据。
21.如权利要求18所述的非易失性计算机可读存储介质,其中,收集所述性能数据包括:从所述计算设备的操作系统收集操作系统性能数据。
22.如权利要求18所述的非易失性计算机可读存储介质,其中,收集所述性能数据包括:
从所述计算设备的性能监视单元(PMU)收集处理器性能数据;
从所述计算设备的操作系统收集操作系统性能数据;以及
合并所述处理器性能数据和所述操作系统性能数据以生成所述性能数据。
23.如权利要求22所述的非易失性计算机可读存储介质,其中,合并所述处理器性能数据和所述操作系统性能数据包括:在所述操作系统性能数据中插入缺失值。
24.如权利要求18所述的非易失性计算机可读存储介质,其中,响应于所述多个指令被执行,使得所述计算设备进一步执行:对所述性能数据进行预处理以准备所述性能数据,以用于使用所述无监督群集算法进行划分,其中,对所述性能数据进行预处理包括:转换与所述多个性能属性的一个性能属性相对应的值,以符合指定分布。
25.如权利要求18所述的非易失性计算机可读存储介质,其中,响应于所述多个指令被执行,使得所述计算设备进一步执行:对所述性能数据进行预处理以准备所述性能数据,以用于使用所述无监督群集算法进行划分,其中,对所述性能数据进行预处理包括:忽略所述多个属性中具有方差与均值的比率小于方差与均值的阈值比率的性能属性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/317,485 | 2014-06-27 | ||
US14/317,485 US10089207B2 (en) | 2014-06-27 | 2014-06-27 | Identification of software phases using machine learning |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105224434A CN105224434A (zh) | 2016-01-06 |
CN105224434B true CN105224434B (zh) | 2019-04-09 |
Family
ID=53189667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510368836.1A Active CN105224434B (zh) | 2014-06-27 | 2015-05-27 | 使用机器学习识别软件阶段 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10089207B2 (zh) |
EP (1) | EP2960797B1 (zh) |
CN (1) | CN105224434B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10223160B2 (en) * | 2015-08-31 | 2019-03-05 | Ayla Networks, Inc. | Compact schedules for resource-constrained devices |
US10509685B2 (en) * | 2015-12-14 | 2019-12-17 | VCE IP Holding Company, LLC | Methods, systems, and computer readable mediums for workload clustering |
US10735438B2 (en) * | 2016-01-06 | 2020-08-04 | New York University | System, method and computer-accessible medium for network intrusion detection |
US10587490B2 (en) * | 2016-02-05 | 2020-03-10 | Red Hat, Inc. | Evaluating resource performance from misaligned cloud data |
CN108334440A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种获取应用性能测试结果的处理方法及装置、客户端 |
WO2019028648A1 (en) * | 2017-08-08 | 2019-02-14 | Alibaba Group Holding Limited | PROCESSING PERFORMANCE DATA FOR MACHINE LEARNING |
CN109800134A (zh) * | 2017-11-16 | 2019-05-24 | 先智云端数据股份有限公司 | 一种诊断数据中心储存设备的剩余寿命的方法和系统 |
CN108170589B (zh) * | 2017-12-06 | 2021-08-13 | 口碑(上海)信息技术有限公司 | 网络平台基础数据质量算法的保障方法 |
CN111078623B (zh) * | 2018-10-18 | 2022-03-29 | 上海寒武纪信息科技有限公司 | 片上网络处理系统和片上网络数据处理方法 |
US11157394B2 (en) * | 2019-03-05 | 2021-10-26 | International Business Machines Corporation | Exception cause analysis during computer program execution |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110034A (zh) * | 2007-07-24 | 2008-01-23 | 中国科学院软件研究所 | 自动挖掘软件过程任务仓库中的高性能任务的方法和系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6549930B1 (en) * | 1997-11-26 | 2003-04-15 | Compaq Computer Corporation | Method for scheduling threads in a multithreaded processor |
US6691067B1 (en) * | 1999-04-07 | 2004-02-10 | Bmc Software, Inc. | Enterprise management system and method which includes statistical recreation of system resource usage for more accurate monitoring, prediction, and performance workload characterization |
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 |
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 |
US7739662B2 (en) * | 2005-12-30 | 2010-06-15 | Intel Corporation | Methods and apparatus to analyze processor systems |
US8543711B2 (en) * | 2007-04-30 | 2013-09-24 | Hewlett-Packard Development Company, L.P. | System and method for evaluating a pattern of resource demands of a workload |
US20090165007A1 (en) * | 2007-12-19 | 2009-06-25 | Microsoft Corporation | Task-level thread scheduling and resource allocation |
US8255185B2 (en) * | 2008-10-15 | 2012-08-28 | Hewlett-Packard Development Company, L.P. | Automated information technology management |
US8954996B2 (en) * | 2009-12-11 | 2015-02-10 | Red Hat, Inc. | Profiling the system providing performance statistics in real time |
US8538897B2 (en) | 2010-12-03 | 2013-09-17 | Microsoft Corporation | Cross-trace scalable issue detection and clustering |
GB2496378B (en) | 2011-11-03 | 2016-12-21 | Ibm | Smart window creation in a graphical user interface |
US20130185729A1 (en) * | 2012-01-13 | 2013-07-18 | Rutgers, The State University Of New Jersey | Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures |
-
2014
- 2014-06-27 US US14/317,485 patent/US10089207B2/en active Active
-
2015
- 2015-05-13 EP EP15167664.0A patent/EP2960797B1/en active Active
- 2015-05-27 CN CN201510368836.1A patent/CN105224434B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110034A (zh) * | 2007-07-24 | 2008-01-23 | 中国科学院软件研究所 | 自动挖掘软件过程任务仓库中的高性能任务的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2960797B1 (en) | 2019-08-14 |
CN105224434A (zh) | 2016-01-06 |
US10089207B2 (en) | 2018-10-02 |
US20150378861A1 (en) | 2015-12-31 |
EP2960797A1 (en) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224434B (zh) | 使用机器学习识别软件阶段 | |
CN104503891B (zh) | 对jvm线程进行在线监控的方法和装置 | |
US11804069B2 (en) | Image clustering method and apparatus, and storage medium | |
WO2019218475A1 (zh) | 异常行为对象的识别方法、装置、终端设备及介质 | |
He et al. | Parallel implementation of classification algorithms based on MapReduce | |
CN106095966B (zh) | 一种用户可扩展的标签标注方法及系统 | |
CN110806954A (zh) | 评估云主机资源的方法、装置、设备及存储介质 | |
CN106030565B (zh) | 使用搜索技术的计算机性能预测 | |
Guo et al. | Machine learning predictions for underestimation of job runtime on HPC system | |
US9424074B1 (en) | Method for learning backup policies for large-scale distributed computing | |
CN110147657A (zh) | 一种用户权限配置方法及装置 | |
Sukhija et al. | Topic modeling and visualization for big data in social sciences | |
CN116755891B (zh) | 基于多线程的事件队列处理方法和系统 | |
CN111046059B (zh) | 基于分布式数据库集群的低效sql语句分析方法及系统 | |
CN106909492B (zh) | 业务数据的追踪方法及装置 | |
Han et al. | SlimML: Removing non-critical input data in large-scale iterative machine learning | |
CN110543426A (zh) | 一种软件性能风险检测方法及装置 | |
JP2016066197A (ja) | 分析システム及び分析方法 | |
CN115658635A (zh) | 日志分析方法及装置 | |
Genkin et al. | Machine-learning based spark and hadoop workload classification using container performance patterns | |
CN109033196A (zh) | 一种分布式数据调度系统及方法 | |
CN113569879B (zh) | 异常识别模型的训练方法、异常账号识别方法及相关装置 | |
JP6201053B2 (ja) | 素性データ管理システム、および素性データ管理方法 | |
Genkin | Zero-shot machine learning technique for classification of multi-user big data workloads | |
CN114385436A (zh) | 服务器分组方法、装置、电子设备和存储介质 |
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 |