首页> 中国专利> 用于选择跟踪目标的成本分析

用于选择跟踪目标的成本分析

摘要

跟踪系统可执行成本分析来标识麻烦或昂贵的跟踪目标。对于麻烦的目标,可创建可被独立地执行的两个或更多个目标。成本分析可包括可对其制定预算以用于收集数据的处理、存储和网络性能因数,而没有不适当的关于被测应用的性能或财务消耗。较大的目标可被递归地分析以将该较大的目标分成可被独立地部署的各较小的目标。

著录项

  • 公开/公告号CN105283851A

    专利类型发明专利

  • 公开/公告日2016-01-27

    原文格式PDF

  • 申请/专利权人 肯赛里克斯公司;

    申请/专利号CN201380072849.3

  • 发明设计人 R·S·克莱杰克;Y·李;

    申请日2013-06-20

  • 分类号G06F11/34;G06F11/36;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人杨丽

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 13:47:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-16

    授权

    授权

  • 2017-06-06

    专利申请权的转移 IPC(主分类):G06F11/34 登记生效日:20170516 变更前: 变更后: 申请日:20130620

    专利申请权、专利权的转移

  • 2016-02-24

    实质审查的生效 IPC(主分类):G06F11/34 申请日:20130620

    实质审查的生效

  • 2016-01-27

    公开

    公开

说明书

相关申请的交叉引用

本申请要求于2013年2月12日提交的题为“CostAnalysisforSelectingTract Objectives(用于选择跟踪目标的成本分析)”的美国专利申请序列号13/765,648的优 先权和权益,该申请的整体内容通过援引被明确地纳入于此。

背景

跟踪收集与应用如何在计算机系统内执行有关的信息。跟踪数据可包括任 何类型的可解释该应用如何操作的数据,并且这样的数据可由开发者在应用的 调试或优化期间分析。跟踪数据还可在该应用的生产操作期间被管理员用来标 识各种问题。

在开发和调试期间发生的跟踪可能是非常详细的。在一些情况下,跟踪操 作可不利地影响系统性能,因为跟踪操作可消耗大量的处理、存储或网络带宽。

概述

跟踪系统可跨应用的多个实例划分跟踪目标,随后部署要跟踪的目标。各 目标的结果可被聚集成对该应用的详细跟踪表示。这些跟踪目标可定义具体的 函数、进程、存储器对象、事件、输入参数、或可收集的跟踪数据的其他子集。 可将这些目标部署在应用的可在不同设备上运行的单独实例上。在一些情况 下,可以将这些目标部署在不同的时间区间处。跟踪目标可以是当结果被聚集 时可提供应用性能的整体视图的轻量、相对非侵入式的跟踪工作负载。

跟踪系统可执行成本分析来标识麻烦或昂贵的跟踪目标。对于麻烦的目 标,可创建可独立地执行的两个或更多个目标。成本分析可包括可针对其来制 定预算以用于收集数据的处理、存储和网络性能因数,而没有不适当的关于被 测应用的性能或财务消耗。较大的目标可被递归地分析以将该较大的目标分成 可被独立地部署的各较小的目标。

跟踪管理系统可使用成本分析和性能预算来向可在运行应用的同时收集 跟踪数据的仪表化系统分派跟踪目标。该跟踪管理系统可分析各个体跟踪工作 负载以得到处理、存储和网络性能成本,并基于可为特定设备设置的资源预算 来选择要部署的工作负载。在一些情况下,可选择在所分配的预算内最大化资 源消耗的补充跟踪目标。这些预算可分配要跟踪的某些资源,这可以是通过在 运行应用时进行跟踪来限制任何不利影响的机制。

跟踪系统可通过标识收集到的数据内的周期性,随后更新采样率和数据收 集窗口来优化收集到的数据。可使用经更新的参数来对数据进行重新采样并执 行更详细的分析。该优化可基于初步跟踪分析,通过该初步跟踪分析可提取如 用于默认的参数集的频率集。该跟踪系统可使用可被部署的多个独立的跟踪目 标来收集数据,并且每一跟踪目标都可使用周期性分析来优化以收集统计上显 著的数据。

两个不同的跟踪器目标之间的周期性相似性可被用来标识要采样的附加 输入参数。跟踪器目标可以是大型跟踪器操作的各个体部分,并且每一个跟踪 器目标都可具有单独的可为其收集数据的输入对象的集合。在收集了针对跟踪 器目标的数据后,可标识出具有相似周期性的其他跟踪器目标。可将来自其他 跟踪器目标的输入对象添加到跟踪器目标,并且可执行该跟踪器目标以确定新 添加的目标的统计显著性。迭代过程可遍历多个输入对象,直到耗尽可能的输 入对象并且统计上显著的输入对象集合被标识出。

可比较分布式跟踪系统中的各跟踪器目标以标识出可具有高统计相关性 的输入参数。迭代过程可通过比较多个跟踪器目标的结果并将可能的输入对象 评分为可能在统计上相关来遍历多个输入对象。对于每一迭代,可将统计上不 相关的输入对象从跟踪器目标中丢弃,并可添加其他潜在相关的对象。该迭代 过程可收敛于针对给定测量值在统计上相关的输入对象集合,而无需关于正在 跟踪的应用的先验知识。

分布式跟踪系统可使用可为其创建剖析模型的独立跟踪器目标。剖析模型 可被部署成非仪表化设备上用于评估剖析模型的监视代理。由于剖析模型用统 计上显著的结果来操作,因此采样频率可被调整。剖析模型可被部署成用于测 试在更高度仪表化环境中创建的模型的验证机制,并可使用仪表化环境来收集 可能还不同样准确的与性能相关的结果。在一些情况下,剖析模型可分布在大 量设备上以基于从单个仪表化设备或较少数目的仪表化设备收集的数据来验 证各模型。

提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一 些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨 在用于限制所要求保护主题的范围。

附图简述

在附图中:

图1是示出用于跟踪应用的系统的实施例的图示。

图2是示出可创建跟踪目标、部署这些目标并分析结果的设备的实施例的 图示。

图3是示出用于创建并部署目标的方法的实施例的流程图示。

图4是示出用于确定默认的采样率和数据收集窗口的方法的实施例的流程 图示。

图5是示出用跟踪器目标来进行跟踪的实施例的图示。

图6是示出用于创建并部署跟踪目标的方法的实施例的流程图示。

图7是示出用于使用成本分析来设定跟踪器目标的大小的方法的实施例的 流程图示。

图8是示出用于使用成本分析来划分跟踪器目标的方法的实施例的流程图 示。

图9是示出用于对采样率和数据收集窗口进行微调的过程的实施例的图 示。

图10是示出了具有用于评估跟踪器结果的反馈环的方法的实施例的流程 图示。

图11是示出用于使用频率相似性来在各目标上进行迭代的方法的实施例 的流程图示。

图12是示出用于确定预测模型的有效性的方法的实施例的图示。

图13是示出用于分析来自跟踪器目标的结果的方法的实施例的流程图示。

图14是示出具有跟踪目标分派器的环境的实施例的图示。

图15是示出用于部署跟踪器目标的方法的实施例的流程图示。

图16是示出用于跟踪器目标表征和部署的详细方法的实施例的流程图示。

详细描述

用分布式目标的应用跟踪

用于跟踪应用的系统可收集来自可对照应用的多个实例来执行的离散的 独立目标的跟踪数据。该系统可将跟踪工作负载划分成各个体目标,随后分派 这些目标以收集数据子集。跟踪数据可被聚集成完整的数据集。

在跟踪大型应用时,应用可被看成为对刺激作出响应的大型系统,刺激是 输入事件、数据或其他刺激。当可作出应用按相对一致的方式行动的理论假设 时,可将该跟踪分成许多较小的单元,并且这些结果被聚集在一起以给出整个 应用的详细图片。这些较小的单元可被称为“跟踪目标”,“跟踪目标”可被 分派以收集较大跟踪数据集合的某一部分。

跟踪目标可以是针对如何收集跟踪数据的定义和用于收集跟踪数据的条 件的集合。跟踪目标可由在仪表化环境内操作的跟踪器消耗,跟踪器可被配置 成收集许多不同类型的跟踪数据和许多不同的数据对象。目标还可包括建立到 数据收集和存储系统的网络连接的连接定义。在许多情况下,跟踪目标可在可 被传送到跟踪器的配置文件中描述。

在许多情况下,详细的跟踪可消耗大量的计算、存储和网络带宽资源。例 如,许多跟踪算法可使设备的计算工作负载增加三倍或更多。当将这样的负载 可放置于系统上时,应用的性能可被极度地降级。通过创建各自导致小量跟踪 将被执行的许多更小的目标,详细的跟踪结果可仍然是可实现的,但对运行的 应用具有较小的影响。

与更详细的跟踪系统相比,分布式跟踪系统可具有更小的占用空间,因为 跟踪工作负载可被分发给应用的多个实例或者因为各个体工作负载可在一个 设备上被顺序地执行。在许多情况下,跟踪可使用非常大数目的设备来执行, 其中每一设备执行较大跟踪任务的相对小的子集。在这样的情况下,可获得应 用函数的完整视图,而对许多设备中的每一者具有最小的影响。

跟踪系统可自动地确定如何按优化方式来执行跟踪。对应用的初始分析可 揭示各个函数、存储器对象、事件、或可用作跟踪目标的基础的其他对象。自 动化分析可标识出相关的存储器对象、函数和可为其收集数据的各个项,所有 这些都可被添加到跟踪目标中。

一旦已准备了跟踪目标,就可分派这些跟踪目标以由各仪表化执行环境来 履行。可将跟踪结果传送至集中式收集器,该集中式收集器可存储原始数据。 对于每一目标,收集后分析可评估这些结果以确定该数据是否足以生成有意义 的汇总统计,该汇总统计可以是针对应用的各个组件如何对输入作出响应的剖 析模型。

当无法用统计确定性来验证目标的结果时,可对照应用来重构并重新执行 该目标。在一些情况下,该目标可被运行达更长的时间窗口以收集更多的数据, 而在其他情况下,该目标可在重新执行之前添加或移除项。

用于选择跟踪目标的成本分析

可使用成本分析来自动地评估跟踪目标以确定该目标是否可能太大而无 法执行或执行起来太麻烦。当目标变得太麻烦时,可将该目标拆分成两个或更 多个更小的目标,其中这些结果可被组合。

成本分析可评估执行成本,诸如处理器消耗、网络带宽消耗、存储消耗、 功率消耗或其他资源消耗。在许多这样的情况下,可将成本限制置于跟踪目标 上以限制可被分配来跟踪的资源量。在一些实施例中,该成本可以是可归因于 消耗各种资源的可量化的财务成本。

将较大的目标分成多个较小的目标可使用各数据对象内的关系来将相关 的对象放置在同一较小的目标中。例如,较大的目标可涉及跟踪一可执行函数 的多个数据项。该函数的一些输出可由一个下游函数来消耗,而该函数的其他 输出可由不同的下游函数来消耗。当这样的关系可用且已知时,该系统可将第 一函数的输出放置在一个跟踪目标中,并将第二函数的输出放置在第二跟踪目 标中。

可估计或测量用于分析目标的影响的成本。在一些情况下,可从数据收集 模板库中选择目标。每一模板可具有用于执行该模板的不同方面的估计成本, 并且可以使用该估计成本来评估跟踪目标。

在一些情况下,可测量针对目标的成本。在这样的情况下,可在收集成本 数据的同时执行该目标达较短时间段,成本数据为诸如对处理器、存储或网络 带宽的影响。一旦这样的成本已知,可执行分析以确定是否将该目标拆分成多 个较小的目标。

贯穿本说明书和权利要求书,术语“成本”在评估跟踪目标的上下文中可 以是反映任何成本、开销、资源、税收或由跟踪目标创建的其他障碍的概括术 语。一般来说,成本指代具有可被最小化的效果的任何事物。

使用成本分析来部署跟踪目标

跟踪目标可使用针对这些跟踪目标的成本估计和关于跟踪设备的资源预 算来部署。这些预算可定义针对跟踪目标的资源分配,并且分派器可选择可利 用所分配的资源的跟踪目标。

当由多个跟踪目标中的全部消耗的资源的和小于预算量时,可将这些跟踪 目标分派给一设备跟踪目标可使用可包括所分配的跟踪目标中的全部的清单 来分派。

跟踪资源预算可定义可被分配来跟踪特定设备上的工作负载的最大资源 量。该预算可基于硬件和软件配置以及任何预先定义的资源或性能分配而在各 设备之间有所不同。在一些情况下,特定设备或应用的实例可被分配以满足最 小性能标准,而保持剩余资源被分配以跟踪操作。

依据成本来分配跟踪目标可允许甚至在正执行跟踪时也维持最小应用性 能。最小应用性能可确保在跟踪被部署在生产环境中时应用吞吐量可被维持, 并确保跟踪不会不利地影响在跟踪期间收集的任何数据。

自动化跟踪系统中的周期性优化

自动化跟踪系统可分析收集到的数据内的周期性,随后调整采样率和数据 收集窗口以收集有效地捕捉观察到的周期性的数据。初始的高级跟踪可收集针 对被测试的任何应用的通用性能参数。

通过初始跟踪,周期性分析可被执行以标识数据的特征频率。初始数据的 特征频率可用于为可被部署的详细跟踪器目标设置默认的采样率和数据收集 窗口。

由于可从跟踪器目标捕捉结果,第二周期性分析可标识数据中的附加重复 模式。通过第二周期性分析,采样率和数据收集窗口可被更新或优化以收集统 计上有意义的数据。

在一些实施例中,跟踪器目标可部署有不同的参数以便以与默认设置相比 更高或更低的频率来探索重复模式。这样的实施例可检测统计上相关的频率, 随后在找到统计上相关的频率时收集附加数据。当任意应用被跟踪时,该应用 内的主频率列表可被应用于其他跟踪器目标。

跟踪器目标的采样率可定义可在数据的时间序列中观察到的最小周期或 最高频率。相似地,数据收集窗口可定义可观察到的最大周期或最低频率。通 过确保已知频率在结果集中被覆盖,可作出这样的频率是否出现在观察到的数 据的集合中的统计上有意义的确定。

使用相似频率的优化分析

自动化优化系统可通过在可影响所跟踪的性能度量的输入参数上进行迭 代来创建应用性能的统计上有意义的表示。在选择了可影响测量到或跟踪到的 度量的潜在输入参数的开始集后,统计上不显著的输入参数可被移除,并且潜 在相关的参数可被添加到跟踪器目标。

观察到的度量可被分析以得到周期性,其结果可以是在数据中找到的频率 集合。频率集合可用作签名,可使该签名与其他跟踪器目标的频率签名匹配。 匹配跟踪器目标可被分析以标识其他跟踪器目标中的统计上显著的输入参数, 并且那些输入参数可被看作潜在输入参数。

频率分析可通过匹配相似的频率签名来试图匹配在时域中具有相似的观 察到特征的跟踪器目标。可具有相似频率签名的两个跟踪器目标可相似地对刺 激作出反应或具有其他行为相似性。在许多情况下,可影响用一个跟踪器目标 观察到的行为的输入参数可在以某种方式与可影响用另一跟踪器目标观察到 的行为的输入参数相关。

在一些情况下,频率比较可检查在数据内找到的主频率。这样的情况可在 对各跟踪器目标结果的分析产生若干不同主频率时发生。在其他情况下,在大 量结果集合中观察到单个主频率。在这样的情况下,这些比较可使用在主频率 可被移除后可作为特征频率的次频率来作出。

在其中可从数据中观察到多个频率的实施例中,可创建反映这些频率以及 每一频率的强度或重要性的频率签名。可使用相似性比较来比较这些签名以标 识匹配。在一些实施例中,比较可使用可指示相似性程度的分数来执行。

用监视代理来部署剖析模型

一些跟踪系统可创建可表示跟踪数据的剖析模型。这些模型可随后被部署 到可对照附加数据来测试剖析模型的监视器。当剖析模型成功跟踪附加数据 时,监视可被暂停或被降低到较低频率。当剖析模型无法成功跟踪附加数据时, 用于创建原始数据的跟踪目标可被重构并重新部署以使得新的或经更新的模 型可被生成。

监视系统可用与跟踪器相比更低的成本来操作。在许多情况下,跟踪器可 消耗可不利地影响应用性能并可不利地影响执行应用的财务成本的开销进程、 存储和网络话务。监视系统可具有与跟踪器相比少的多的开销,并可被配置成 仅收集特定数据项并使用剖析模型来测试这些数据项。

在一些系统中,具有跟踪器系统的仪表化执行环境可被部署在设备子集 上,而监视系统可被部署在所有设备或较大的设备子集上。通过使用用于测试 或验证剖析模型的监视系统,复杂且昂贵的数据收集操作可在设备子集上执 行,而较不昂贵的监视操作可在不同的设备子集上执行。

贯穿本说明书和权利要求书,术语“跟踪目标”或“跟踪器目标”用于指 代配置设置、参数或可由跟踪器消耗以在应用执行的同时收集数据的其他信息 的集合。跟踪目标可用任何方式来具体化,诸如配置文件或可被传送至跟踪器 并由跟踪器消耗的其他定义。在一些情况下,跟踪目标可包括可由跟踪器执行 以便收集数据的可执行代码。跟踪器对象可通常包含可允许到可收集数据以供 存储和分析的远程设备的网络连接的连接定义。

贯穿本说明书和权利要求书,术语“剖析器”、“跟踪器”和“检测机制 (instrumentation)”被可互换地使用。这些术语指代可在应用被执行时收集数 据的任何机制。在经典定义中,“检测机制”可指代可向其插入可执行代码并 藉此改变该可执行代码的存根(stub)、挂钩(hook)或其他数据收集机制, 而“剖析器”或“跟踪器”可经典地指代不可改变可执行代码的数据收集机制。 使用这些术语及其派生词中的任一者都可蕴含或暗示彼此。例如使用“跟踪器” 的数据收集可使用“跟踪器”的经典意义中的非接触式数据收集以及用其中可 执行代码可被改变的“检测机制”的经典意义的数据收集来执行。相似地,通 过“检测机制”收集的数据可包括使用非接触式数据收集机制的数据收集。

此外,通过“剖析”、“跟踪”和“检测机制”收集的数据可包括可收集 的任何类型的数据,包括诸如处理时间、吞吐量、性能计数器之类的与性能相 关的数据等等。收集到的数据可包括函数名称、所传递的参数、存储器对象名 称和内容、所传递的消息、消息内容、注册表设置、注册表内容、差错标志、 中断或与正被跟踪的应用有关的任何其他参数或其他可收集的数据。

贯穿本说明书和权利要求书,术语“执行环境”可用于指代用于执行应用 的任何类型的支持软件。执行环境的一个示例是操作系统。在一些图示中,“执 行环境”可被示为与操作系统分开。这可能是为了示出为应用提供各支持函数 的虚拟机,诸如过程虚拟机。在其他实施例中,虚拟机可以是可包括其自己的 内部操作系统并可模拟整个计算机系统的系统虚拟机。贯穿本说明书和权利要 求书,术语“执行环境”包括操作系统和可具有或可不具有可容易标识的“虚 拟机”或其他支持软件的其他系统。

贯穿本说明书,在对附图的整个描述中,相同的附图标记表示相同的元素。

当元素被称为被“相连接”或“相耦合”时,这些元素可被直接连接或耦合在 一起,或者也可存在一个或多个中间元素。相反,当元素被称为被“直接连接” 或“直接耦合”时,不存在中间元素。本主题可被体现为设备、系统、方法、和/ 或计算机程序产品。因此,本主题的部分或全部可以用硬件和/或软件(包括固 件、常驻软件、微码、状态机、门阵列等)来具体化。此外,本主题可以采用 计算机可使用或计算机可读存储介质上的计算机程序产品的形式,介质中收录 了供指令执行系统使用或结合指令执行系统一起使用的计算机可使用或计算 机可读的程序代码。在本文档的上下文中,计算机可使用或计算机可读介质可 以是可包含、储存、通信、传播、或传输程序以供指令执行系统、装置或设备 使用或结合指令执行系统、装置或设备一起使用的任何介质。

计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、 电磁、红外、或半导体系统、装置、设备或传播介质。作为示例而非限制,计 算机可读介质可包括计算机存储介质和通信介质。

计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模 块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和 不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、 闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、 磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以 由指令执行系统访问的任何其他介质。注意,计算机可使用或计算机可读介质 可以是其上打印有程序的纸张或另一合适的介质,因为程序可以经由例如对纸 张或其他介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其 他合适的方式处理,并随后存储在计算机存储器中。

当本主题在计算机可执行指令的一般上下文中具体化时,该实施例可包括 由一个或多个系统、计算机、或其他设备执行的程序模块。一般而言,程序模 块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数 据结构等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。

图1是示出用于跟踪应用的系统的实施例100的图示。实施例100是用于 创建跟踪目标、部署目标并分析结果的序列的简化示例。

实施例100示出了可完全自动化地或至少很大程度上自动化地收集关于应 用的数据的跟踪系统的示例。得到的数据可是该应用的表征,包括该应用作为 整体的或至少针对该应用的一些子集的剖析模型。这些结果可用于分析并调试 该应用、设计监视度量或其他使用。

实施例100示出了取得应用102并进行某个初步分析104以创建要跟踪的 事件、函数、存储器对象和其他潜在有意思的对象的列表106的一般化操作。 可从该列表106创建检测机制或跟踪目标108并将其部署110到各种仪表化设 备112、114和116。

仪表化设备112、114和116中的每一者可分别执行应用118、120和122 的实例,并且该检测机制可生成输入流和跟踪器结果124形式的结果。结果124 可被分析126,这可导致检测机制目标108被更新和重新部署,或者经聚集结 果的集合128可被生成。

各仪表化设备可以是能够根据跟踪目标来收集数据的任何设备。在一些情 况下,仪表化设备可具有可收集数据的专门或专用硬件或软件组件。在其他情 况下,仪表化系统可以是可被配置成收集如跟踪器目标中所定义的数据的通用 系统。

实施例100示出了可自动化地通过将跟踪工作负载拆分成许多小跟踪目标 来生成针对应用的跟踪数据的系统。可部署较小的跟踪目标以使得这些跟踪目 标不会不利地干扰应用的执行。

较小的跟踪目标可允许与可一次捕捉全部数据的完全跟踪器可能实现的 相比详细得多并更细粒度的数据收集。在许多情况下,捕捉非常详细的数据集 可消耗大量处理器、存储、网络带宽或其他资源。

在较小的跟踪目标被使用时,从不同的跟踪目标收集的数据可能不是精确 地来自去往该应用的同一输入参数集合。由此,来自较小跟踪目标的结果可经 历各种分析以确定这些结果是否可能是可重复的。当这些结果被示为是可重复 的时,可聚集来自多个跟踪目标的结果以创建数据超集。

实施例100示出了其中应用可由若干设备执行的示例。在一些情况下,每 一设备可执行应用的相同实例。一示例可以是可被进行负载平衡以使得每一设 备执行相同副本的网站应用。在其他情况下,每一设备可执行较大应用的子集。 一示例可以是分布式应用,其中每一设备执行可导致数据传递到另一设备以供 进一步处理的功能或操作的集合。

图2是示出具有用于使用独立的跟踪目标来自动地跟踪应用的系统的计算 机系统的实施例200的图示。实施例200示出可呈递实施例100以及其他实施 例中描述的操作的硬件组件。

图2的图示出了系统的功能组件。在一些情况下,组件可以是硬件组件、 软件组件、或者硬件和软件的组合。一些组件可以是应用级软件,而其他组件 可以是执行环境级组件。在一些情况下,一个组件到另一组件的连接可以是紧 密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接 可通过跨长距离的网络连接来进行。每个实施例都可使用不同的硬件、软件、 以及互连架构来实现所描述的功能。

实施例200示出了可具有硬件平台204和各软件组件的设备202。示出的 设备202表示常规的计算设备,但是其它实施例可具有不同配置、架构、或组 件。

在许多实施例中,优化服务器202可以是服务器计算机。在一些实施例中, 优化服务器202仍然还可以是台式计算机、膝上型计算机、上网本计算机、平 板或平板式计算机、无线手机、蜂窝电话、游戏控制台或任何其他类型的计算 设备。

硬件平台204可以包括处理器208、随机存取存储器210、以及非易失性 存储212。硬件平台204还可包括用户接口214和网络接口216。

随机存取存储器210可以是包含可由处理器208快速访问的数据对象和可 执行代码的存储。在许多实施例中,随机存取存储器210可具有将存储器210 连接到处理器208的高速总线。

非易失性存储212可以是在关闭设备202之后持久保持的存储。非易失性 存储212可以是任何类型的存储设备,包括硬盘、固态存储器设备、磁带盒、 光学存储、或其他类型的存储。非易失性存储212可以是只读、或能够读/写。 在一些实施例中,非易失性存储212可以是基于云的网络存储或可通过网络连 接访问的其他存储。

用户接口214可以是能够显示输出并且从用户接收输入的任何类型的硬 件。在许多情况下,输出显示可以是图形显示监视器,但是输出设备可包括灯 光和其他视觉输出、音频输出、动力致动器输出、以及其他输出设备。常规输 入设备可包括键盘和定点设备,诸如鼠标、指示笔、跟踪球、或其他定点设备。 其他输入设备可包括各种传感器,包括生物测定输入设备、音频和视频输入设 备、以及其他传感器。

网络接口216可以是到另一计算机的任何类型的连接。在许多实施例中, 网络接口216可以是有线以太网连接。其他实施例可包括基于各种通信协议的 有线或无线连接。

软件组件206可包括操作系统218,各种软件组件和服务可在该操作系统 218上操作。操作系统可在执行例程和硬件组件204之间提供抽象层,并且可 包括与各个硬件组件直接通信的各种例程和功能。

实施例200示出了如被部署在单个设备202上的许多软件组件206。在其 他实施例中,各软件组件206中的部分或全部可被部署在分开的设备上或甚至 被部署在各设备群集上。

设备202示出了可管理对应用220的跟踪的许多软件组件。

对应用220的初步分析可使用静态代码分析器222或高级跟踪器224来执 行。在一些实施例中,可使用静态代码分析器222和高级跟踪器224两者。

静态代码分析器222可检查源代码、中间代码、二进制代码或应用220的 其他表示以标识可被跟踪或可收集针对其的数据的各元素。例如,静态代码分 析器222可标识应用220的各函数、子例程、程序分支、库例程或可执行代码 的其他部分,其中的每一个都可以是可收集针对其的数据的元素。此外,静态 代码分析器222可标识存储器对象、参数、输入对象、输出对象、或可被采样 或检索到的其他存储器元素或数据对象。

高级跟踪器224可以是轻量跟踪系统,该轻量跟踪系统可监视执行应用220 并标识被执行的代码区段、被操纵的存储器对象、可被触发的中断、差错、输 入、输出或其他元素,其中的每一者都可具有或可不具有可在跟踪期间收集的 数据元素。

静态代码分析器222或高级跟踪器224可创建流控制图或各元件之间的关 系的其他表示。这些关系可被遍历以标识出可能在生成跟踪目标228时有用的 相关对象。

各元素可被跟踪目标生成器226分析以创建跟踪目标228。一旦创建之后, 分派器230可使得跟踪目标228被跟踪器执行。

跟踪目标生成器226可生成可独立执行的跟踪目标,在应用220被执行时 这些跟踪目标生成与该应用220有关的数据。独立的跟踪目标228可通过标识 要跟踪的元素来构造,要跟踪的元素可以是函数、存储器对象、中断、输入对 象、输出对象或其他元素。

一旦开始元素可被标识出,跟踪目标生成器226就可尝试找到也可跟踪的 相关项。例如,函数可被标识为开始元素。相关项可包括传递给该函数的输入 参数和从该函数传送的结果。进一步的相关项可以是被该开始函数调用的各函 数和被传递给那些函数的各参数。对于每一函数,相关项可包括由该函数消耗 的处理时间、所分配的堆存储器、由该函数创建或改变的存储器对象和其他参 数。

在一些实施例中,跟踪目标模板227的集合可能是可用的。跟踪目标模板 227可以是用于各种特定对象的开始框架。例如,可创建用于跟踪特定类型的 函数的跟踪目标模板227,其中该模板可包括可通常为特定类型的函数测量的 参数。其他示例可包括用于跟踪不同类型的存储器对象、中断、输入对象、输 出对象、差错条件等的模板。

各模板可包括成本估计参数,这些成本估计参数可用于评估或估计特定跟 踪目标的影响。成本估计参数可包括财务成本以及性能成本、资源消耗成本或 其他成本。估计的成本可以是被跟踪目标生成器226用来确定给定跟踪目标是 否可能太大而无法执行、太复杂而无法执行或执行起来太昂贵并因此可被拆分 成多个较小的跟踪目标的因素。

当高级跟踪器224可被使用时,周期性数据可从所收集的数据中提取出。 周期性数据可包括任何重复模式或重复数据的频率。周期性数据可被跟踪目标 生成器226用来选择大小可被设定为捕捉周期数据的数据收集窗口。当数据收 集窗口与已知重复周期相比更小时,任何剖析模型或其他分析都不可完全地捕 捉该数据的行为。

跟踪目标生成器226可创建针对跟踪目标的执行参数。执行参数可包括数 据收集窗口。在一些情况下,数据收集窗口可用开始时间和结束时间来定义。 在其他情况下,数据收集窗口可用所收集的值的数量、所收集的数据的量或其 他条件来定义。在又一些情况下,开始和停止条件可包括事件监视。例如,开 始条件可在特定输入事件发生时开始跟踪,或者结束条件可在存储器对象达到 某个值时被定义。

执行参数可包括数据收集参数,诸如采样频率。在一些情况下,数据收集 参数还可包括关于何时收集数据的定义,这些定义可取决于计算出的、测量到 的或观察到的数据。例如,数据可在参数X等于零时、在处理器负载小于80% 时或某种其他条件下被收集。

跟踪目标生成器226可将可执行代码传送至跟踪器。可执行代码可包括条 件定义或可在执行期间评估的其他代码。可执行代码还可包括可收集特定类型 的数据的检测机制或其他代码。

在一些情况下,可执行代码可被插入应用以检索值、执行计算或可生成数 据的其他功能。在一些实施例中,可执行代码可被包括在跟踪目标模板227中, 并且可执行代码可在被包括在跟踪目标中之前由跟踪目标生成器226来定制或 修改。

跟踪目标生成器226可为给定的被跟踪对象定义输入条件。除了所定向的 用于监视的对象以外,输入条件还可以是所收集的数据。在一些实施例中,可 分析并评估输入条件以比较相同或相关跟踪目标的不同运行。输入条件可包括 任何输入参数、对象、事件或可影响被监视对象的其他条件。在许多实施例中, 可创建可表示被监视对象的行为的剖析模型,并且可将输入条件用作剖析模型 的一部分。

跟踪目标生成器226可创建可由分派器230传送到各仪表化系统246的多 个跟踪目标228。

分派器230可确定用于执行跟踪目标的时间表,并使得这些跟踪目标被执 行。该时间表可包括标识哪个设备可接收特定跟踪目标以及该跟踪目标可在何 时被执行。在一些情况下,分派器230可使得某些跟踪目标被在多个设备上执 行多次,并在一些情况下使得某些跟踪目标被在多个条件下执行多次。

数据收集器234可从各跟踪目标接收输出,并将这些结果和输入流236存 储在数据库中。分析器232可分析数据以首先确定该数据是否可能是可重复的, 随后将来自多个跟踪目标的结果聚集成经聚集的结果集合238。在许多实施例 中,分析器232可创建可表示观察到的数据的剖析模型。这样的剖析模型可用 于各种场景,诸如在开发或调试场景中标识瓶颈或映射过程流、在运行时或管 理场景中监视成本或性能以及其他使用。

仪表化系统246可通过网络244连接到设备202。网络244可以是因特网、 局域网或任何其他类型的通信网络。

仪表化系统246可在硬件平台248上操作,该硬件平台248可具有应用250 可在其上执行的仪表化执行环境252。仪表化执行环境252可以是操作系统、 系统虚拟机、进程虚拟机、或可执行应用250并提供跟踪器254或可在执行期 间收集数据的其他检测机制的其他软件组件。

跟踪器254可从分派器230接收跟踪目标256。跟踪器254可评估并执行 跟踪目标256以收集输入数据和跟踪器结果,随后将输入数据和跟踪器结果传 送给数据收集器234。

在一些实施例中,单个跟踪器254可具有可并行或同时处理的多个跟踪目 标256。在一些这样的实施例中,分派器230可标识可能不彼此重叠的两个或 更多个跟踪目标256。示例可包括在一种类型的操作期间收集数据的第一跟踪 目标和在另一种类型的操作期间收集数据的第二跟踪目标,其中这两种操作无 法同时发生。在这样的示例中,任一跟踪目标都不会在另一跟踪器对象正在执 行的同时执行。

在另一示例中,一些跟踪目标256可能是非常轻量的,因为该跟踪目标可 能不对仪表化系统246有很多影响或不具有很多成本。在这样的情况下,分派 器230可以向仪表化系统246发送若干这样的低成本或轻量跟踪目标256。

在一些实施例中,跟踪目标生成器226可创建大小可被设为具有最小影响 的跟踪目标。这样的跟踪目标可通过估计对仪表化系统246的成本影响来创建, 该成本影响可包括处理、输入/输出带宽、存储、存储器或跟踪目标可引起的任 何其他影响。

跟踪目标生成器226可估计所建议的跟踪目标的成本影响,并随后在该成 本可大于特定阈值时将该跟踪目标拆分成较小的独立跟踪目标。如果较小的跟 踪目标仍可超过该阈值,则这些较小的跟踪目标还可再次被分析并拆分。

这样的实施例可包括成本分析、性能影响、或对每一跟踪目标的其他估计。 在这样的实施例中,分派器230可尝试匹配具有不同成本约束的跟踪目标。例 如,分派器230可能够启动具有高处理成本的一个跟踪目标以及具有很少处理 成本但具有高存储成本的另一跟踪目标。两个跟踪目标合在一起不会超过预算 的或最大的资源消耗量。

分析器232可创建跟踪器结果和输入流236的剖析模型。剖析模型可以是 可基于给定输入集合来预测对象的行为的数学或其他表达。一些实施例可尝试 通过随时间用真实的输入数据来训练剖析模型以将模型结果与实际结果进行 比较来验证这些模型。

一些这样的实施例可使用监视系统来评估剖析模型。监视管理器240可将 这些模型分派给各监视系统256。监视系统256可具有执行环境260可在其上 运行应用262的硬件平台258。监视器264可接收配置266,配置266可包括 要评估的剖析模型。

监视器264可以是轻量的检测系统。在许多情况下,监视系统256可以是 其中监视器264可以是较大的系统施行和管理系统的一个组件的生产系统。监 视器264可评估剖析模型以生成差错统计。差错统计可表示预测值和实际值之 差。当差错统计较高时,可通过创建新的或经更新的跟踪目标来重新评估该剖 析模型。当差错统计较低时,剖析模型可用于表示具有高置信度的观察到数据。

实施例200的体系结构示出了可执行应用的两种不同类型的系统。监视系 统256可表示应用可在其上运行的生产系统,而仪表化系统246可以是可具有 附加数据收集特征的专用系统。在一些情况下,仪表化系统246可以是与监视 系统256相同或相似的硬件,并且可被专门地配置。在又一些实施例中,这两 种类型的系统可在硬件和软件两者方面相同,但可按不同的方式被使用。

在一些实施例中,可生成跟踪目标的各组件还可被部署在可执行所跟踪的 应用并收集结果的同一设备上。在一些这样的实施例中,一些组件可被分配给 某些处理器或其他资源,而其他组件可被分配给不同的资源。例如,处理器或 处理器组可用于执行并跟踪应用,而其他处理器可收集并分析跟踪器结果。在 一些情况下,跟踪器目标可在一个处理器上执行,并监视在不同处理器上执行 的应用的操作。

图3是示出用于创建并部署跟踪目标的方法的实施例300的流程图示。实 施例300示出如在实施例200中示出的设备202的操作。

其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术 语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同 步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作 原理而选择的。

实施例300示出了可通过其来创建并部署跟踪目标的通用方法。实施例300 的各组件中的一些可在本说明书中稍后描述的其他实施例中更详细地示出。

实施例300示出了藉此静态代码分析和初始跟踪操作可标识出要跟踪的各 个对象的方法。在一些实施例中,初始跟踪操作可标识可从其创建跟踪目标的 足够信息。在其他实施例中,初始跟踪操作可标识要跟踪的对象,随后可针对 这些对象中的每一者来执行第二初始跟踪操作。第二初始跟踪操作可收集对于 单个跟踪操作中的许多对象来说可能收集起来太麻烦或太不切实际的详细数 据。

在框302,可接收应用以供评估。在框303,该应用可经历初步分析。初 步分析可收集可用于自动地创建跟踪器目标集合的各信息。可在各跟踪器目标 上迭代以收敛于可影响被监视参数的统计上相关的输入参数。框303的初步分 析可收集要监视的对象以及可被用于创建跟踪目标的操作限制。

初步分析还可包括可被用于为目标设置采样率和数据收集窗口的周期性 分析。随着附加数据被收集和分析,采样率和数据收集窗口可随时间被调整。

在框304可执行静态代码分析以标识潜在跟踪对象。静态代码分析可标识 函数和其他可执行代码元素、存储器对象和其他存储元素以及其他项。

在一些实施例中,静态代码分析还可生成可执行代码元素和存储器对象之 间的关系。关系的示例可包括可示出各代码元素之间的因果关系或通信关系的 流控制图。在许多情况下,存储器对象可与各代码元素相关。

在框306可执行高级跟踪。高级跟踪可帮助标识要跟踪的对象以及收集可 在稍后在生成跟踪目标时使用的一些高级性能或数据特征。

在框308,在使用高级跟踪的执行期间,可标识执行元素和执行边界。执 行元素可以是函数、库、例程、代码块或与可执行代码相关的任何其他信息。 执行边界可指代诸如执行应用的标识出部分的时间量以及各存储器对象的预 期值范围之类的性能特征。执行边界可包括函数调用和返回、过程产生事件和 其他执行边界。

在框308,可标识出各组件之间的因果关系。因果关系可以是其中一个对 象、函数、条件或其他输入可引起函数操作、存储器对象改变或其他效果的原 因和效果关系。因果关系在标识相关对象或将相关对象收集在一起以供检测时 可能是有用的。

在框310,可以标识输入参数。输入参数可包括到应用的任何输入,包括 被传递给应用的数据、输入事件或可导致应用中的行为的其他信息。在一些实 施例中,可分析各执行元素以标识可被定向到特定执行元素的输入参数。

在框312,高级跟踪可标识可在执行期间改变的各存储器对象。存储器对 象可表示可为其创建跟踪目标的对象,其可在框314被添加到要跟踪的可能对 象列表。

在框316,在高级跟踪执行的同时,可标识任何周期性或重复模式。许多 应用以重复方式操作,并通常具有多个周期性。例如,零售网站应用可具有其 中工作负载在节假日附近增加的季节性周期性以及其中工作负载在星期几可 预测地改变的每星期周期性。相同的应用也可在一天中的不同时间经历可重复 的改变。

当应用的周期性可已知时,跟踪器对象的数据收集窗口可被设置成捕捉一 个周期的多个循环。捕捉多个循环的数据可用于生成剖析模型,这些剖析模型 包括将周期性纳入考虑的因素。当数据收集窗口没有收集到足够的数据来捕捉 周期性时,剖析模型可生成更多差错,从而使得该模型不那么可靠和可重复。

可执行若干性能测试,包括在框318的存储测试、在框320的网络带宽和 框322的可用计算带宽。性能测试可在与跟踪目标可被运行的相同或相似的条 件下执行。例如,框318、320和322的性能测试可在应用正在执行的同时在 仪表化系统上执行。

这些性能测试可用于设置用于创建满足最大成本目标的跟踪目标的边界 或阈值。在这样的实施例中,可在应用在执行的同时分析这些性能测试以确定 剩余的性能带宽。对于可计算受限的应用,计算性能可能被重度使用,但可存 在可由跟踪目标消耗的多余的存储和网络带宽。在另一示例中,应用可能是网 络或输入/输出受限的,从而留有多余的计算可供跟踪目标无偿使用。

在许多情况下,可为跟踪成本定义预算或目标。例如,目标可被设为使用 多达10%、20%、50%或某个其他值的系统资源来用于跟踪使用。当这样的目 标可被设定时,跟踪目标可被创建得足够小且足够轻量以满足该目标,并且跟 踪目标可被分派或调度以满足该目标。

对跟踪资源的分配在应用执行时间敏感的操作时或在此跟踪可关注于性 能监视或优化时可能是有用的。通过仅分配最大量的资源,该应用可能不会受 到过度跟踪的不利影响。

在框324,可创建跟踪目标。稍后在本说明书中提供用于创建跟踪目标的 更详细的方法的示例。部署目标可在框326创建以生成部署时间表,并且可在 框328部署这些目标。

随着目标被部署,结果可在框330被接收并被分析。分析可标识要对跟踪 目标作出的改变,诸如通过周期性分析来标识要对采样率或数据收集窗口作出 的改变或要对收集某些输入数据流作出的改变。这样的改变可使得跟踪器目标 在框332被更新,并在框326被重新部署。

图4是示出用于确定默认的采样率和数据收集窗口的方法的实施例400的 流程图示。实施例400示出如在实施例200中示出的设备202的一些操作。

其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术 语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同 步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作 原理而选择的。

实施例400示出用于确定跟踪器目标的采样率和数据收集窗口的初始设置 集合的方法。一般来说,一时间序列的采样率可反映可在数据流中观察到的最 高频率。随着采样率变得更快且数据样本的时间片变得更短,数据可捕捉更高 的频率。随着采样率的降低,较高的频率可能无法在数据流中被检测到,并可 增加观察到的噪声。

数据收集窗口可定义可在时间序列数据集中观察到的最长频率。一般来 说,统计上显著的样本大小可以是作为数据内的最长周期的周期的至少两倍或 三倍。小于数据内的最长周期的数据收集窗口可导致包含观察到的噪声的数据 集。

实施例400的操作可用于设置可默认被应用于跟踪器目标的初始采样率和 数据收集窗口。一旦跟踪器目标已被部署并且其得到的数据已被分析,则可对 采样率和数据收集窗口作出改变。

在框402,可接收初始跟踪结果。初始跟踪结果可来自对应用的初步跟踪。 初步跟踪可标识要测量的若干参数以及要捕捉的若干输入流。在许多情况下, 初步跟踪可在具有很少或没有关于应用的知识的情况下被执行。

在框404可执行自动相关性分析以标识数据中的主导周期性。框404的周 期性分析可标识可被包含在数据中的多个频率。这些频率中的一些可具有与其 他频率相比更强的影响。

长频率可在框406被标识出并可被用来确定默认的数据收集窗口。数据收 集窗口可定义可获得时间序列样本的时间长度。一般来说,数据收集窗口可被 选为是最长周期或频率的长度的两倍、三倍或更多倍。

小周期性可在框408中被标识出并被用于确定默认的采样率。默认采样率 可足够短,使得最小频率可由5个、10个或更多个样本捕捉到。

在框410可存储默认的数据收集窗口和采样率。可将默认的数据收集窗口 和采样率用作跟踪器目标的开始点。在许多情况下,在分析了更详细的数据后 可调整数据收集窗口和采样率。

在一些实施例中,可将默认的采样率和数据收集窗口设为彼此相关。例如, 可使用初始数据的主频率来设置默认采样率,随后可将默认数据收集窗口设置 成数据样本的预定义倍数。在一个这样的示例中,可将默认数据收集窗口设为 是默认采样窗口的长度的10000倍,这可导致要分析的10000个时间序列数据 集合。

在另一示例中,默认数据收集窗口可用相对较长的主频率来确定,并且采 样率可被确定以产生预定义数目的样本。在一个这样的示例中,默认数据收集 窗口可被设为是一小时,并且采样率可被设为是0.36秒以每次运行产生10,000 个样本。

图5是示出用于创建个体跟踪目标随后聚集收集到的数据的高级过程的实 施例500的图示。实施例500的过程创建可被部署并使用若干优化分析来优化 的独立跟踪目标。一旦跟踪目标已收敛于统计上有意义的结果,来自多个跟踪 目标的结果可被聚集。

初始跟踪目标集合可被分析、改善并迭代以收敛于统计上有意义的结果。 实施例500可表示用于通过使用较小的独立跟踪器目标来跟踪任何应用的自动 化方法体系。跟踪目标可被划分、拆分或以其他方式变得足够小以满足跟踪器 预算,随后跟踪目标可被独立地运行并评估。

在框502,可定义用于收集跟踪数据的总目标。在框504可执行成本分析 以确定是否可实现该跟踪目标。当该跟踪目标超过成本目标集合时,可在框506 将该目标划分成较小的目标,在框504可以再次通过成本分析来评估这些较小 的目标。框504和506的迭代过程可得到满足成本目标的多个跟踪目标。

成本目标可以是用于创建大小可被恰适地设为用于给定应用和给定场景 的跟踪器目标的机制。通过设定跟踪器目标的大小以使得该跟踪器目标不超过 成本目标,可在数据收集期间使对跟踪器目标的任何负面影响最小化。

可支持若干不同的跟踪场景。在一个场景中,可将应用部署在大量设备上。 一个示例可以是可被部署在数据中心中的若干服务器上的网站,其中所有这些 服务器都用作用于并行处理传入的web请求的群集。在这样的示例中,服务器 的性能在跟踪器目标相对较小并且消耗很少资源时被更准确地测量。

在另一示例中,蜂窝电话平台的应用可被部署在大量手持式设备上。一跟 踪场景可使得每一设备执行一跟踪器目标,这可仅消耗有限量的资源。对跟踪 器目标的基于成本的分析可确保手持式设备不会被此跟踪工作负载压垮。

在框507可为了进行采样率和频率分析而评估跟踪目标。采样率和频率分 析可检查标识周期性的数据模式以标识哪些周期性是主导的。主导周期性可用 于调整采样率和数据收集窗口以准确地捕捉周期性。在一些情况下,初始采样 率和数据收集窗口的假设可通过改变该采样率和数据收集窗口以搜索数据中 的其他主频率来测试。

随着目标在框509被部署并且数据被收集,该数据可按若干不同的方式被 分析。对于每一跟踪器目标,输入流可与测量到的结果一起被收集。在框510, 可对输入流进行拣选以将对预测结果具有统计上较小或不显著的贡献的那些 输入参数或值移除。在框512,可将其他输入参数添加到跟踪器目标。该过程 可在框509、510和512之间迭代直到对预测测量到的结果而言在统计上有意 义的输入参数收敛。

当在框512检查跟踪器目标以尝试添加输入参数时,可检查相关对象。相 关对象可以是通过静态代码分析(诸如从控制流图或其他关系中)标识出的对 象。在一些情况下,可检查具有相似周期性的跟踪结果以评估输入流中的不同 参数。

对框509、510和512进行迭代的结果可得到可预测给出输入参数集的跟 踪器结果的数学模型。每一跟踪器目标可生成单独的数学模型。

在框514,可为了完整性而分析这些结果。完整性假设可假定这些跟踪器 目标已体验了全范围的输入条件。可在框514通过将由相同跟踪目标的不同运 行所体验的输入流进行比较来测试该假设,并且在一些实施例中通过将由不同 跟踪器目标的运行所体验的输入流进行比较来测试该假设。当该假设可能没有 被确认有效时,可在框516收集更多的数据。

当完整性假设可在框518被确认有效时,可在框520测试可结合性假设。 可结合性假设可假定可将从不同跟踪器目标创建的两个模型组合成一个较大 的模型。可结合性假设可通过以下方式来测试:联接两个预测模型并使用先前 收集的数据来测试经组合模型的结果或对照实时数据来测试这些结果。

当经联接的模型不产生统计上有意义的结果时,可在框522创建组合这两 个跟踪器目标的新跟踪器目标。得到的数据集合和分析可得到与最初针对可结 合性假设被测试的组合模型不同的模型。

可针对部分或全部跟踪器目标来测试可结合性假设。当该假设可以在框 524被验证时,收集到的数据可在框526被聚集。

聚集的数据可在许多不同的场景中被使用。在调试和测试场景中,聚集的 数据可被开发者用来理解程序流并突出任何性能瓶颈或可被解决的其他异常。 在优化场景中,聚集的数据可被自动化或半自动化优化器用来例如将不同的资 源应用于应用的某些部分。

图6是示出用于创建并部署跟踪目标的方法的实施例600的流程图示。

其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术 语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同 步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作 原理而选择的。

实施例600示出了通过向跟踪器目标分配各对象来创建跟踪器目标的方 法。跟踪器目标可经历可使得这些跟踪器目标被划分成较小的跟踪器目标的成 本分析,随后跟踪器目标可被分派。

实施例600示出了可完全自动化地开始用于跟踪应用的迭代方法的方法。 该迭代方法可创建较小的独立跟踪器目标,可部署这些跟踪器目标,并在这些 跟踪器目标上迭代以收敛于可反映应用如何执行的统计上有效的跟踪器模型 的集合。该方法可对任意应用执行,并可自动地生成对应用的有意义的理解, 而无需人类干预。在一些实施例中,人类干预可在不同的阶段被用于影响或引 导对应用的自动化发现和分析。

在框602,可接收要跟踪的对象列表。该对象列表可通过静态代码分析或 其他初步分析标识出。这样的分析的示例可在实施例300的框303中找到。

在框604对于该对象列表中的每一对象,如果在框606该对象包含在另一 跟踪器目标中,则在框608可跳过该对象。当在框606该对象不在预先存在的 跟踪器目标中,则在框610可标识出相关对象。

相关对象可以是可适合于包括在单个跟踪器目标中的、任何其他要跟踪的 对象。例如,要跟踪的对象可以是存储器对象。存储器对象可以通过函数来设 置,因此该函数可被添加到跟踪器目标。其他函数可读取该存储器对象,因此 这些函数也可被添加。

在该示例中,可设置存储器对象的函数可具有与可读取该存储器对象的函 数相比更强的与存储器对象的关系。在该过程中稍后处,当跟踪器目标执行起 来可能太过昂贵或麻烦时,可将具有较弱关系的对象从跟踪器目标中移除。可 将可从跟踪器目标中移除的那些对象添加回对象列表。

在框612对于每一相关对象,如果在框614该相关对象已经在预先存在的 跟踪器目标中,则在框616可将该对象移除。

框606到框616的过程可以是一个通过跟踪多个跟踪器目标中的相同对象 来将相关对象收集到跟踪器目标中而没有重复努力的方法。框606到616的示 例可将对象分配给跟踪器目标以用最小数目的跟踪器目标来最大化收敛。

对要跟踪的每一对象,可标识性能参数集合。在许多情况下,跟踪器目标 的模板可包括与某种类型的对象相关的可测量的参数。例如,存储器对象可通 过测量所作的改变的数目、访问的数目和其他测量来跟踪。在另一示例中,可 执行代码的函数或其他框可通过测量以下来跟踪:完成速度、抛出的差错标记、 堆分配和使用、垃圾收集频率、每单位时间完成的指令数、处于活跃处理的时 间百分比、处于各种等待状态的时间百分比和其他性能度量。在又一示例中, 消息接口可通过测量以下来跟踪:所传递的消息数、这些消息的有效载荷、向 每一消息分配的处理时间和通信带宽以及其他参数。

其他实施例可创建具有重叠覆盖的跟踪器目标,其中单个对象可由两个或 更多个不同的跟踪器目标来跟踪。当更多资源可致力于跟踪时,这样的实施例 可能是有用的。

当在框618对用于跟踪目标的对象进行分组后,可在框620应用默认周期 性设置的集合。在框622可执行成本分析。在一些情况下,可根据单个跟踪器 目标来创建两个或更多个目标。可在本说明书的稍后处找出这样的方法的示 例。

在框624,可使跟踪器目标准备好以供初始分派。这样的准备可定义通信 配置,该通信配置可定义跟踪器可如何与数据收集器通信。该通信配置可包括 数据收集器的地址以及许可、协议、数据模式以及其他信息。

在框626可分派跟踪器目标并收集结果。在框628可通过移除统计上不显 著的输入参数并搜索以查找潜在显著的输入参数来优化跟踪器目标。

在循环通过框626和628后,在框630可聚集这些结果。

图7是示出用于对跟踪器目标执行成本分析的方法的实施例700的流程图 示。实施例700可示出可在实施例600的框622中执行的过程的一个示例。

其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术 语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同 步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作 原理而选择的。

实施例700示出了藉此可针对成本影响评估跟踪器目标并将该跟踪器目标 划分成较小的跟踪器目标的方法。成本影响可以是跟踪器目标的资源消耗。在 一些实施例中,可将该成本转换成财务成本,而在其他实施例中该成本可以是 就由跟踪器目标消耗的资源而言的。实施例700是后一种类型的成本分析的示 例。

实施例700使用三种不同的成本计算:性能成本、存储成本和网络带宽成 本。这样的实施例是可具有要满足的多个独立的成本函数的成本分析的示例。 其他实施例可具有更多或更少要评估的成本函数。

在框702,可接收目标。

在一些实施例中,在框704,可使用跟踪器目标来执行测试运行。在这样 的实施例中,可测量跟踪器的性能以估计这些成本分量。在其他实施例中,可 对跟踪器目标执行静态代码分析以确定各成本分量。

在框706可执行对计算成本的估计。在框708可执行对存储成本的估计, 并在框710可执行对网络带宽成本的估计。在框712中可确定跟踪器目标的总 成本。

计算成本或处理器成本可反映在执行跟踪器目标时可能招致的处理器资 源的量。在许多情况下,跟踪操作与应用的简单操作相比可显著地更复杂。例 如,一些跟踪器可招致10个或更多个处理器步骤以分析应用中的单个处理器 动作。

存储成本可反映跟踪器目标可消耗的非易失性或易失性存储器的量。在许 多情况下,跟踪器目标可收集可被存储和处理的大量数据。跟踪器目标的存储 成本在一些情况下可非常大,这可限制性能。

网络带宽成本可以是在将收集到的数据传送至数据储存库时消耗的资源。 网络资源可包括网络接口卡、网络连接和其他网络相关资源的操作。随着更大 量的数据可跨网络连接移动,网络连接可变得饱和并导致对其他通信的破坏。

当在框714成本大于预定义阈值时,可在框716将目标划分成两个或更多 个较小的跟踪器目标。这样的过程的示例可在本说明书的稍后处描述的另实施 例中示出。

当在框714成本小于预定义阈值时,可在框718为跟踪器目标配置数据收 集机制,并且可在框720将跟踪器目标发送至分派器。

框718的数据收集机制可定义可如何收集数据。在一些实施例中,数据收 集机制可包括可收集数据的目的地设备描述以及任何通信参数或设置。

图8是示出用于将跟踪器目标划分成较小的跟踪器目标的方法的实施例 800的流程图示。实施例800可示出可在实施例700的框716中执行的过程的 一个示例。

其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术 语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同 步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作 原理而选择的。

实施例800示出藉此可修整跟踪器目标以满足成本目标的一种方法。实施 例800仅示出了藉此可使用自动化过程来使跟踪器目标变得更小的一种方法。 在实施例800中,可基于关系强度来将对象进行排序,随后可将具有较强关系 的对象合并成跟踪器目标。任何剩余的对象可被回收到新的跟踪器目标中。

在框802,可接收跟踪器目标。

在框804对于跟踪器目标中的每一对象,可在框806估计该对象的成本贡 献。成本贡献可以是跟踪那个对象的成本。

可在框808标识该对象与跟踪器目标内的其他对象的关系,并在框810可 为这些关系评分。该评分可反映关系的强度。

可在框812用框814中的开始对象来开始新的目标。可在框816依据分数 来将该对象与其他对象之间的关系进行排序。该排序可导致最强的关系被首先 分析。

在框818可选择一关系并将该关系临时添加到跟踪器目标。在框820,可 以估计跟踪器目标的成本。在框820的成本估计可利用在框806确定的成本贡 献。如果在框822成本小于阈值,则该过程可返回框818以将另一对象添加到 跟踪器目标。

当在框822成本大于阈值时,可将最后一个对象从跟踪器目标中移除。在 这样的情形中,添加最后一个对象可能已使跟踪器目标超过了成本分配,因此 它可被移除。

当在框826还有对象可用但尚未被放置在跟踪器目标中时,处理器可返回 到框812以开始新的跟踪器目标。当在框826已处理了所有对象时,可在框828 部署跟踪器目标。

图9是示出用于对跟踪器目标的采样率和数据收集窗口进行调整的过程的 实施例900的流程图示。

实施例900示出了其中可使用周期性分析来细化跟踪器目标的数据收集的 示例过程。在一些实施例中,可使用默认的采样率和数据收集窗口来执行每一 跟踪器目标,随后在考虑到实际数据已被收集后可细化这些参数。

在框902,可为跟踪器目标假设周期性。该周期性可以是可从对应用的初 始分析中导出的默认周期性。在许多情况下,默认周期性可反映应用作为整体 的周期行为,而跟踪器目标可生成具有不同周期行为集合的数据。然而,可在 默认周期作为开始点的情况下执行跟踪器目标的第一次运行。

可在框904通过使用框906中的自动相关来分析跟踪器目标的第一结果, 这可生成数据中的特征周期性或频率。通过这样的分析,可在框908标识出主 导的上限和下限频率。

主导的上限频率或最短周期性可用于设置采样率。在许多情况下,采样率 可被设置成使得在主导上限频率的单个时段内可取得5个、10个、20个或更 多个样本。

相似地,主导下限频率或最长周期性可用于设置数据收集窗口。在许多情 况下,数据收集窗口可被设置成捕捉最长周期性的至少2个、3个、4个、5个 或更多个实例。

在分析了跟踪器目标的初始运行后,可在框910更新跟踪器目标并在框912 分派该跟踪器目标。

图10是示出具有用于评估跟踪器目标结果的反馈环的方法的实施例1000 的流程图。实施例1000可示出可在实施例600的框626和628中执行的过程 的一个示例。

其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术 语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同 步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作 原理而选择的。

实施例1000示出了其中可评估跟踪器目标的输入参数并在其上迭代以收 敛于统计上有意义的输入参数的集合的实施例。实施例1000可丢弃与测量到 的参数具有很少统计关系的那些输入参数,并可尝试添加与测量到的对象可具 有关系的新输入参数。

可在框1002接收跟踪器目标的结果集,并可在框1004构建这些结果的剖 析模型。剖析模型可以是输入流和测量到的结果之间的关系的数学表达。剖析 模型可使用线性或非线性回归、曲线拟合或用于表达观察集的许多不同技术中 的任何一个来创建。在许多情况下,剖析模型可具有可指示输入因数相对于剖 析模型的程度或重要性的相关性因素或其他因素。

在框1006中,可依据重要性对输入参数进行排序。在框1008中,可选择 第一输入参数。在框1010可标识具有同一输入参数的其他跟踪器目标。

对于在框1010标识出的每一目标,可在框1012分析这些目标。在框1014, 可标识相关输入参数。相关输入参数可以是针对那个跟踪器目标的其中与测量 到的参数可存在最小统计相关性的参数中的任一者。

在框1016对于这些参数中的每一者,如果该参数在当前跟踪器目标中, 或先前在当前跟踪器目标中被考虑,则可在框1020跳过该参数。

如果在框1018该参数在当前跟踪器目标中尚未被检查,则可在框1022将 该输入参数添加到输入列表中。可在框1024为该参数计算相关性分数。

相关性分数可指示该参数可与当前跟踪器目标相关的预期程度。在一些实 施例中,相关性分数可以是当前跟踪器目标和正在检查的相关跟踪器目标之间 的关系强度以及输入参数对相关跟踪器目标的相对重要性的因数。

在框1016针对框1012中的每一目标处理了所有参数后,如果在框1026 可处理另一相关输入参数,则该过程可返回框1008以添加更多的候选输入参 数。

在框1028,可移除当前跟踪器目标内的非相关输入参数。

在框1030,可依据分数对潜在输入参数的列表进行排序。该列表可包括在 框1022添加的所有参数。

在框1032可选择顶部输入参数群组。该顶部群组可包含具有大于给定阈 值的分数的输入参数。假设在框1034该群组为非空集合的情况下,可在框1036 将该群组添加到跟踪器目标,并在框1038分派该群组以供再次处理。可使用 跟踪目标的结果作为框1002的输入。

当在框1034可用输入参数的集合为空集合时,在框1040由于可能已耗尽 了所有潜在输入参数,迭代可结束。

图11是示出用于使用频率相似性来在各跟踪器目标上进行迭代的方法的 实施例1100的流程图示。实施例1000可示出可在实施例600的框626和628 中执行的过程的另一示例。

其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术 语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同 步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作 原理而选择的。

实施例1100可与实施例1000相似,因为跟踪器目标可用可具有统计上显 著的可能性的输入参数来更新。实施例1100可通过对各跟踪器目标的周期性 分析来收集那些输入参数。具有相似的频率签名或周期性的那些跟踪器目标可 以是具有统计上相关的输入参数的候选。

在框1102,可接收来自许多跟踪器目标的结果。在框1104对于每一目标, 可在框1106执行周期性分析以标识数据内的频率或周期。在框1108中,可创 建频率曲线或签名。

频率曲线可包括多个频率以及各频率的剧烈度或强度。频率曲线可用作标 识由跟踪器目标收集的数据的行为的签名。在框1112,可选择一跟踪器目标作 为开始目标。在实施例11100,可评估每一跟踪器目标以尝试找到可与给定被 跟踪对象或被观察数据点相关的附加输入参数。该过程可迭代以添加潜在的新 输入参数,测试新参数以及迭代。

在许多实施例中,每一迭代可包括移除可以是统计上不显著的那些输入参 数,同时尝试添加可以是统计上显著的输入参数。

在框1114对于每一跟踪器目标,可通过将在框1112选择的目标的频率签 名与在框1114分析的跟踪器目标进行匹配来确定相似性分数。相似性分数可 以是两个频率签名的相关性或相似性的统计测量。

在框1118中,可依据相似性分数来对跟踪器目标进行排序。在框1120从 最相似的频率签名开始,可在框1122分析每一输入参数以确定相关性分数。 相关性分数可考虑与输入参数的相关性耦合的频率签名与在框1120中选择的 跟踪器目标中收集到的数据的相似性。在许多实施例中,在框1116创建的相 似性分数可与输入参数的影响因数相乘以产生相关性分数。

在框1126,可依据分数对经评分的输入参数进行排序。可在框1128选择 参数,并当在框1130该参数可大于阈值时,可将该参数添加到跟踪器目标, 并且该过程可循环回到1128以选择经排序列表中的下一参数。

当在框1130参数不满足相关性阈值,但在框1134可能已经添加了一些新 的参数并且在框1140附加的目标仍然待处理时,该过程可返回到框1120以尝 试添加来自其他跟踪器目标的更多输入参数。

当在框1130参数不满足相关性阈值且在框1134尚未添加新的参数时,在 框1138可停止对目标的迭代。在此阶段,实施例1100的过程可能还没有标识 出可能潜在的相关的任何新输入参数。

当在框1140处理了每一目标以生成输入参数后,当在框1142附加目标尚 未经历输入参数分析时,该过程可返回到框1112以选择另一跟踪器目标进行 分析。

当在框1142已为附加输入参数分析了每一跟踪器目标,并且在框1144可 能已更新了至少一些跟踪器目标后,可在框1146分派经更新的目标。当在框 1144没有经更新的目标可能可用时,在框1148迭代过程可停止。

图12是示出用于确认剖析模型的有效性的方法的实施例1200的图示。实 施例1200示出了藉此可使用测试目标来生成可在复杂的高度仪表化的设备上 运行的剖析模型的方法。这些模型随后可由可被部署在生产系统上的较轻量的 监视系统来确认有效。

在一个使用模型中,应用可使用高度仪表化测试环境使用可捕捉详细数据 的独立跟踪目标来评估。可从该数据创建应用的小型元素的剖析模型。为了测 试剖析模型,可将这些模型部署在可具有或可不具有执行详细数据收集的能力 的生产硬件上。

在一示例中,移动电话应用可使用移动电话的虚拟化版本来测试,其中该 虚拟化版本可在具有大量计算能力的台式计算机上执行。数据收集可使用可与 被测应用一起执行的跟踪目标来执行。一旦已生成了可表示该数据的剖析模 型,就可将该模型分派给生产移动电话设备,该生产移动电话设备可执行仅测 试一个小型剖析模型的非常轻量的监视。由于剖析模型可能不会消耗许多资 源,监视器可收集关于移动电话的数据以生成差错统计。

在框1202,可创建跟踪目标,并在框1204可部署那些目标。在框1206, 可从得到的数据中生成剖析模型。

在框1208可将剖析模型部署到设备,其中在框1208设备可使得监视代理 被安装。

剖析模型可具有一个或多个输入参数,并可执行数学函数,随后返回预测 到的结果。监视代理可从实际的使用中捕捉输入参数,执行在该模型中定义的 计算,并将预测结果与实际结果进行比较。监视代理可生成差错统计,该差错 统计可从预测结果和实际结果之差中导出。

框1210中具有高差错统计的那些模块可在框1212更新跟踪目标并在框 1204重新提交跟踪目标。可在框1214中将具有低差错统计的那些模型假设为 是准确的模型,并在框1216可降低或移除监视频率。在框1218,可将这些模 型与其他模型聚集在一起。

可将监视器和剖析模型部署成可检测性能、输入数据或其他条件可在何时 已消失的通用监视系统。在这样的实施例中,剖析模型可被创建以监视可导致 显著破坏的变量或条件或以其他方式警告不利条件。在一些情况下,这样的模 型可从聚集的数据中导出。

图13是示出用于分析来自跟踪目标的结果的方法的实施例1300的流程图 示。

其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术 语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同 步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作 原理而选择的。

实施例1300仅示出了用于分析跟踪目标结果的方法的一个示例。实施例 1300示出了将来自跟踪目标的不同实例的多个跟踪目标结果进行比较的示例 分析方法。在许多情况下,单个跟踪目标可被执行多次,即要么在多个设备上 执行多次,要么在同一设备上以不同的次数执行。结果集可被分析以确定这些 结果是否是一致且可预测的。一致且可预测的结果可被认为是好结果,其可与 其他类似地好的结果聚集在一起。

实施例1300是可分开地分析输入流和结果流以使用每一流来作出判定的 实施例的示例。

在框1302中,可以处理每一结果集。对于框1302中的每一结果集,可在 框1304生成针对输入流的概略统计,并在框1306可对输入流进行表征并分类。 类似地,结果流可具有在框1308生成的概略统计以及在框1310执行的表征和 分类。这些结果的剖析模型可在框1312创建。

在框1304和1308生成的统计可具有对数据的高级表示。这样的统计可包 括平均数、中值、标准差和其他描述符。在框1306和1310执行的表征和分类 可涉及曲线拟合、对标准曲线的统计比较、线性和非线性回归分析或其他分类。

在框1312生成的剖析模型可以是对观察到的数据的行为的任何类型的数 学或其他表达。剖析模型可具有可从输入流绘制出的输入参数以预测结果流的 值。

在框1314,可选择目标。在框1316可标识该目标的所有结果集。在一些 实施例中,许多结果集可被生成,但实施例1300的操作可出于说明的目的而 假设可存在至少两个结果集。

在框1318可比较每一实例的剖析模型。当在框1320这些实例的剖析模型 是相同的时,可选择该模型来表示观察到的数据。在许多实施例中,对在剖析 模型生成期间生成的数字值的比较可能不是准确的。在这样的实施例中,在框 1318对剖析模型的比较可使用统计置信因数(诸如,例如为0.99或更大)来 认为各模型是相似的。

当在框1320这些剖析模型不是相同的时,可在框1324比较输入流。当在 框1326这些输入流不相似时,可在框1328以较长的运行时来重新执行目标。

当输入流不相似时,这些目标中的一者或两者可能还没有经历整个范围的 输入变型。由此,从输入流生成的任何模型都不可充分地表示应用的实际行为。 在周期可能是剖析模型中的统计上显著的参数的情况下,这样的状况可在数据 收集窗口没有充分地涵盖至少很少数目的周期时发生。

当在框1326输入流相似时,剖析模型可以是可能在统计上显著的缺少的 参数。在框1330,可将一些参数添加到跟踪目标。在一些实施例中,可在框 1332将统计上不显著的参数从跟踪目标中移除。统计上不显著的参数可以是剖 析模型中对最终结果具有很少影响或没有影响的那些参数。

可在框1334重新提交经更新的跟踪目标以用于调度和部署。

如果可在框1336处理另一目标,则该过程可返回到框1314以选择新目标。 当在框1336不再有目标可用时,可在框1338聚集结果。

图14是示出具有跟踪目标分派器的网络环境的实施例1400的图示。实施 例1400示出一环境,该环境具有分派器设备1402、跟踪生成器设备1404和跟 踪器设备集合1406,所有这些设备都可经由网络1408连接。

实施例1400可示出可使跟踪目标匹配可执行该跟踪目标的设备的跟踪分 派器。该匹配可基于跟踪设备的配置和估计出的对跟踪目标的资源消耗作出。

分派器设备1402可在硬件平台1410上操作,并可具有可将各跟踪器目标 1414分派给跟踪器设备1406的分派器1412。分派器1412可考虑设备配置1416, 该设备配置1416可由跟踪管理器1418来收集并更新。分派器1412可将跟踪 器目标放置在处于可为每一设备定义的跟踪器资源预算内的设备上。该预算可 标识可为跟踪功能而拨出的资源集。随着跟踪目标可被放置在设备上,该设备 的跟踪器资源预算可被更新,从而保持可用资源预算。

在许多情况下,跟踪器设备集合1406可具有不同的硬件和软件配置、工 作负载或在分派跟踪器目标时可考虑的其他区别。跟踪管理器1418可以在正 在进行的基础上收集并更新这样的设备配置1416。

分派器设备1402可使用可能已使用跟踪器生成器设备1404创建的跟踪器 目标1414。跟踪器生成器设备1404可在硬件平台1420上操作并可具有跟踪器 目标生成器1422,该跟踪器目标生成器1422可通过分析应用1424来创建跟踪 器目标。

跟踪器设备1406可在硬件平台1426上操作并可具有跟踪器1428,该跟踪 器1428可对照应用1432的实例来执行跟踪器目标的清单1430。

图15是示出用于部署跟踪器目标的方法的实施例1500的流程图示。实施 例1500可示出高级方法,且稍后的实施例示出可如何实现某些部分的一些详 细示例。

其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术 语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同 步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作 原理而选择的。

实施例1500示出一高级过程,该高级过程在框1504表征设备,在框1522 表征跟踪器目标,并在框1524将这些目标部署在设备上。实施例1500示出可 用于分派跟踪器目标的一种方法,尤其是其中各跟踪设备可被不同地配置的一 种方法。

在框1502中,可接收设备描述符集合。描述符可以是可被部署成跟踪器 设备的设备的网络地址或其他标识符。

对于框1506中的每一设备,可收集许多数据点。在实施例1500的示例中, 这些数据点可被示为是在部署跟踪器目标之前被收集的。在许多实施例中,各 数据点中的一些数据点可随时间改变,并可被周期地更新。其他数据点可相对 恒定并且可能不会被同样频繁地更新。

在框1508,可确定硬件配置。硬件配置可包括处理能力和容量、存储容量 和其他硬件参数。

在框1510,可确定网络拓扑结构。网络拓扑结构可包括跟踪设备在网路内 的定位,在确定将跟踪器目标部署在何处时,其可被用作输入参数。

在框1512可确定跟踪器设备的软件配置。在一些情况下,软件配置可包 括特定跟踪能力。一些实施例可具有跟踪设备的非同构群组,其中一些设备具 有其他设备可能没有的跟踪能力。此外,在一些情况下,一些设备可具有可干 扰、影响或降级跟踪能力的某些附加软件组件或工作负载。这样的知识在使特 定跟踪目标匹配设备时可以是有用的。

在一些实施例中,在框1514可执行性能测试。与诸如在框1508到1512 执行的静态分析相对,这些性能测试可测量可被动态地测量的某些性能能力。

框1514的性能测试可测量处理器能力、存储资源、网络带宽和其他性能 度量。在一些情况下,性能测试可在被测应用正在执行的同时被执行。性能测 试可标识由设备消耗的资源,其可在计算用于跟踪的资源预算时被用作因素。

在框1516,可标识预定义的分配。预定义的分配可以是可优先于跟踪的任 何限制或资源分配。例如,生产应用可被分配以在高工作负载时段期间在不进 行任何跟踪的情况下执行。这样的分配可以是基于时间的,因为资源可基于时 间段来分配。在另一示例中,设备可向可能与被测应用和任何相关联跟踪功能 无关的第二应用或功能分配资源。

在一些情况下,某些设备可具有所分配的可专用于跟踪功能的资源。例如, 设备可具有可被分配给跟踪的存储系统和网络接口卡,而另一存储机制和网络 接口卡可被分配给该被测应用。这样的设备可被专门分配用于跟踪,而其他设 备可具有有限的或没有用于跟踪的资源可用性。

可在框1518定义初始跟踪器资源预算。跟踪器资源预算可定义特定设备 的可由跟踪器目标消耗的资源。在一些情况下,跟踪器资源预算可被设为总容 量的百分比。例如,跟踪器资源预算可以是5%、10%、20%、25%、50%的资 源或资源的某一其他百分比。

在一些情况下,跟踪器资源预算可以是可用资源的百分比。例如,在框1514 中性能测试可确定被测应用可消耗处理器容量的45%,这意味着处理器容量的 55%可能没有被利用,并且可被用于跟踪。在这样的示例的简化版本中,多达 55%的处理器资源可被分配用于跟踪,而不会不利地影响应用。

在确定各参数后,设备的配置可被存储。配置中的一些元素可能是相对静 态的,诸如硬件配置和网络拓扑结构,而诸如可用资源之类的其他元素可随时 间动态地改变。一些实施例可监视该配置并随时间更新各元素。

当在框1504表征了设备后,可在框1522表征各跟踪器目标。框1524的 部署步骤可使跟踪器目标特征与设备特征匹配,并使得跟踪器目标被执行。在 框1526可接收并分析这些结果。

图16是示出用于跟踪器目标表征和部署的方法的实施例1600的流程图 示。

其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术 语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同 步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作 原理而选择的。

实施例1600示出了用于表征跟踪器目标随后使那些跟踪器目标与可用设 备匹配的详细方法。可为每一设备创建一跟踪器目标清单,随后可将该清单部 署到设备以供执行。

实施例1600的方法可尝试将最昂贵的跟踪器目标放置在具有最多可用资 源的设备上。可将多个跟踪器目标添加到设备,直到可利用全部所分配的跟踪 资源。实施例1600可尝试使用正在检查的每一设备的全部可用跟踪资源。这 样的实施例可导致一些设备被全部加载,而其他设备可能不具有任何跟踪器目 标。

实施例1600的方法仅示出了用于使跟踪器目标匹配设备的一种方法,并 且其他实施例可具有用于分发跟踪器目标的不同方式。例如,另一实施例可尝 试均等地加载所有设备,以使得每一设备可执行至少一些跟踪。

在框1602中,可以接收设设备表征。设备表征的示例可在实施例1500找 到。

可在框1604分析跟踪器目标,并随后在框1606部署跟踪器目标。

在框1608,可接收跟踪器目标。在框1610中对于每一跟踪器目标,可在 框1612执行初始性能测试。与执行跟踪器目标相关联的成本可在框1614被估 计并在框1616被存储。

执行跟踪器目标的成本可以是资源成本。在一些情况下,若干独立的因素 可组成该成本。例如,处理器成本、存储成本和网络带宽成本可被组合成执行 跟踪器目标的总成本。在其中在框1612可能不执行动态性能测试的实施例中, 可通过对跟踪器目标的静态分析来估计成本。静态分析可估计给定跟踪器目标 的处理器负载、存储使用和网络带宽使用。

可在框1618通过在框1620依据可用资源对设备进行排序来开始对目标的 部署。在框1622,可依据估计成本以从最昂贵的跟踪目标到最不昂贵的跟踪目 标的方式对跟踪目标进行排序。

可在框1624选择设备,并且可在框1626选择下一跟踪器目标。在框1628 可作出确定是否可将该目标部署在设备上的评估。当在框1628可部署该跟踪 器目标时,可在框1630将该跟踪器目标添加到该设备的清单中。当在框1628 不可部署该跟踪器目标时,可在框1632跳过该目标。

框1628的评估可评估供在所选设备上执行的所选跟踪器目标。该评估可 检查是否可存在可防止执行该跟踪器目标以及将执行该跟踪器目标的成本与 设备上的可用资源预算进行比较的任何特定分配。一些实施例可执行其他测试 或评估来确定一目标是否可被放置在设备上。

当在框1634中列表上还有目标时,该过程可返回到框1626。返回到框1626 的环可处理每一可用跟踪器目标以尝试使用所选设备上的所有可用资源。

当在框1634已处理了所有目标时,如果没有跟踪器目标可能已被放置在 清单中,则可在框1638评估这些目标以供划分成更小的跟踪器目标。该过程 可返回到框1608。

当选择了设备,但不存在可能足够小或消耗与设备上可能可用的资源相比 更少的资源的跟踪器目标时,则可到达框1638的操作。在这样的情形中,可 将跟踪器目标划分成两个或更多个跟踪器目标,并可重试该放置。

在框1638,为了将跟踪器目标划分成两个或更多个跟踪器目标而评估这些 跟踪器目标。在一些情况下,可通过改变采样率或设置其他参数以使得可减少 成本影响来修改跟踪器目标。

假设在框1636在清单中存在跟踪目标的情况下,则可在框1640更新设备 的可用预算以反映这些跟踪目标可执行。在框1642可将该清单部署到所选的 设备。

当在框1644仍有目标和设备剩余时,该过程可返回到框1624以处理下一 设备。当在框1646还有目标剩余但没有设备剩余时,该过程可在框1648等待 直到这些跟踪器目标中的一些完成处理。在那时,可分配并分派剩余的目标。 当已分配了所有这些目标时,该过程可在框1650结束,在这时,可执行分析 操作。

对本发明的上述描述是出于图示和描述的目的而呈现的。它不旨在穷举本 主题或将本主题限于所公开的精确形式,并且鉴于上述教导其他修改和变型都 是可能的。选择并描述实施例来最好地解释本发明的原理及其实践应用,由此 使本领域的其他技术人员能够在各种实施例和各种适于所构想的特定用途的 修改中最好地利用本发明。所附权利要求书旨在被解释为包括除受现有技术所 限的范围以外的其他替换实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号