自动化跟踪系统中的周期性优化的制作方法
【专利说明】自动化跟踪系统中的周期性优化
[0001]相关申请的交叉引用
[0002]本申请要求于2013年2月12日提交的题为“Per1dicity Optimizat1n in anAutomated Tracing System(自动化跟踪系统中的周期性优化)”的美国专利申请序列号13/765,654的优先权和权益,该申请的整体内容通过援引被明确地纳入于此。
[0003]背景
[0004]跟踪收集与应用如何在计算机系统内执行有关的信息。跟踪数据可包括任何类型的可解释该应用如何操作的数据,并且这样的数据可由开发者在应用的调试或优化期间分析。跟踪数据还可在该应用的生产操作期间被管理员用来标识各种问题。
[0005]在开发和调试期间发生的跟踪可能是非常详细的。在一些情况下,跟踪操作可不利地影响系统性能,因为跟踪操作可消耗大量的处理、存储或网络带宽。
[0006]概述
[0007]跟踪系统可跨应用的多个实例划分跟踪目标,随后部署要跟踪的目标。各目标的结果可被聚集成对该应用的详细跟踪表示。这些跟踪目标可定义具体的函数、进程、存储器对象、事件、输入参数、或可收集的跟踪数据的其他子集。可将这些目标部署在应用的可在不同设备上运行的单独实例上。在一些情况下,可以将这些目标部署在不同的时间区间处。跟踪目标可以是当结果被聚集时可提供应用性能的整体视图的轻量、相对非侵入式的跟踪工作负载。
[0008]跟踪系统可执行成本分析来标识麻烦或昂贵的跟踪目标。对于麻烦的目标,可创建可独立地执行的两个或更多个目标。成本分析可包括可针对其来制定预算以用于收集数据的处理、存储和网络性能因数,而没有不适当的关于被测应用的性能或财务消耗。较大的目标可被递归地分析以将该较大的目标分成可被独立地部署的各较小的目标。
[0009]跟踪管理系统可使用成本分析和性能预算来向可在运行应用的同时收集跟踪数据的仪表化系统分派跟踪目标。该跟踪管理系统可分析各个体跟踪工作负载以得到处理、存储和网络性能成本,并基于可为特定设备设置的资源预算来选择要部署的工作负载。在一些情况下,可选择在所分配的预算内最大化资源消耗的补充跟踪目标。这些预算可分配要跟踪的某些资源,这可以是通过在运行应用时进行跟踪来限制任何不利影响的机制。
[0010]跟踪系统可通过标识收集到的数据内的周期性,随后更新采样率和数据收集窗口来优化收集到的数据。可使用经更新的参数来对数据进行重新采样并执行更详细的分析。该优化可基于初步跟踪分析,通过该初步跟踪分析可提取如用于默认的参数集的频率集。该跟踪系统可使用可被部署的多个独立的跟踪目标来收集数据,并且每一跟踪目标都可使用周期性分析来优化以收集统计上显著的数据。
[0011]两个不同的跟踪器目标之间的周期性相似性可被用来标识要采样的附加输入参数。跟踪器目标可以是大型跟踪器操作的各个体部分,并且每一个跟踪器目标都可具有单独的可为其收集数据的输入对象的集合。在收集了针对跟踪器目标的数据后,可标识出具有相似周期性的其他跟踪器目标。可将来自其他跟踪器目标的输入对象添加到跟踪器目标,并且可执行该跟踪器目标以确定新添加的目标的统计显著性。迭代过程可遍历多个输入对象,直到耗尽可能的输入对象并且统计上显著的输入对象集合被标识出。
[0012]可比较分布式跟踪系统中的各跟踪器目标以标识出可具有高统计相关性的输入参数。迭代过程可通过比较多个跟踪器目标的结果并将可能的输入对象评分为可能在统计上相关来遍历多个输入对象。对于每一迭代,可将统计上不相关的输入对象从跟踪器目标中丢弃,并可添加其他潜在相关的对象。该迭代过程可收敛于针对给定测量值在统计上相关的输入对象集合,而无需关于正在跟踪的应用的先验知识。
[0013]分布式跟踪系统可使用可为其创建剖析模型的独立跟踪器目标。剖析模型可被部署成非仪表化设备上用于评估剖析模型的监视代理。由于剖析模型用统计上显著的结果来操作,因此采样频率可被调整。剖析模型可被部署成用于测试在更高度仪表化环境中创建的模型的验证机制,并可使用仪表化环境来收集可能还不同样准确的与性能相关的结果。在一些情况下,剖析模型可分布在大量设备上以基于从单个仪表化设备或较少数目的仪表化设备收集的数据来验证各模型。
[0014]提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
[0015]附图简述
[0016]在附图中:
[0017]图1是示出用于跟踪应用的系统的实施例的图示。
[0018]图2是示出可创建跟踪目标、部署这些目标并分析结果的设备的实施例的图示。
[0019]图3是示出用于创建并部署目标的方法的实施例的流程图示。
[0020]图4是示出用于确定默认的采样率和数据收集窗口的方法的实施例的流程图示。
[0021]图5是示出用跟踪器目标来进行跟踪的实施例的图示。
[0022]图6是示出用于创建并部署跟踪目标的方法的实施例的流程图示。
[0023]图7是示出用于使用成本分析来设定跟踪器目标的大小的方法的实施例的流程图示。
[0024]图8是示出用于使用成本分析来划分跟踪器目标的方法的实施例的流程图示。
[0025]图9是示出用于对采样率和数据收集窗口进行微调的过程的实施例的图示。
[0026]图10是示出了具有用于评估跟踪器结果的反馈环的方法的实施例的流程图示。
[0027]图11是示出用于使用频率相似性来在各目标上进行迭代的方法的实施例的流程图示。
[0028]图12是示出用于确定预测模型的有效性的方法的实施例的图示。
[0029]图13是示出用于分析来自跟踪器目标的结果的方法的实施例的流程图示。
[0030]图14是示出具有跟踪目标分派器的环境的实施例的图示。
[0031]图15是示出用于部署跟踪器目标的方法的实施例的流程图示。
[0032]图16是示出用于跟踪器目标表征和部署的详细方法的实施例的流程图示。
[0033]详细描述
[0034]用分布式目标的应用跟踪
[0035]用于跟踪应用的系统可收集来自可对照应用的多个实例来执行的离散的独立目标的跟踪数据。该系统可将跟踪工作负载划分成各个体目标,随后分派这些目标以收集数据子集。跟踪数据可被聚集成完整的数据集。
[0036]在跟踪大型应用时,应用可被看成为对刺激作出响应的大型系统,刺激是输入事件、数据或其他刺激。当可作出应用按相对一致的方式行动的理论假设时,可将该跟踪分成许多较小的单元,并且这些结果被聚集在一起以给出整个应用的详细图片。这些较小的单元可被称为“跟踪目标”,“跟踪目标”可被分派以收集较大跟踪数据集合的某一部分。
[0037]跟踪目标可以是针对如何收集跟踪数据的定义和用于收集跟踪数据的条件的集合。跟踪目标可由在仪表化环境内操作的跟踪器消耗,跟踪器可被配置成收集许多不同类型的跟踪数据和许多不同的数据对象。目标还可包括建立到数据收集和存储系统的网络连接的连接定义。在许多情况下,跟踪目标可在可被传送到跟踪器的配置文件中描述。
[0038]在许多情况下,详细的跟踪可消耗大量的计算、存储和网络带宽资源。例如,许多跟踪算法可使设备的计算工作负载增加三倍或更多。当将这样的负载可放置于系统上时,应用的性能可被极度地降级。通过创建各自导致小量跟踪将被执行的许多更小的目标,详细的跟踪结果可仍然是可实现的,但对运行的应用具有较小的影响。
[0039]与更详细的跟踪系统相比,分布式跟踪系统可具有更小的占用空间,因为跟踪工作负载可被分发给应用的多个实例或者因为各个体工作负载可在一个设备上被顺序地执行。在许多情况下,跟踪可使用非常大数目的设备来执行,其中每一设备执行较大跟踪任务的相对小的子集。在这样的情况下,可获得应用函数的完整视图,而对许多设备中的每一者具有最小的影响。
[0040]跟踪系统可自动地确定如何按优化方式来执行跟踪。对应用的初始分析可揭示各个函数、存储器对象、事件、或可用作跟踪目标的基础的其他对象。自动化分析可标识出相关的存储器对象、函数和可为其收集数据的各个项,所有这些都可被添加到跟踪目标中。
[0041]—旦已准备了跟踪目标,就可分派这些跟踪目标以由各仪表化执行环境来履行。可将跟踪结果传送至集中式收集器,该集中式收集器可存储原始数据。对于每一目标,收集后分析可评估这些结果以确定该数据是否足以生成有意义的汇总统计,该汇总统计可以是针对应用的各个组件如何对输入作出响应的剖析模型。
[0042]当无法用统计确定性来验证目标的结果时,可对照应用来重构并重新执行该目标。在一些情况下,该目标可被运行达更长的时间窗口以收集更多的数据,而在其他情况下,该目标可在重新执行之前添加或移除项。
[0043]用于选择跟踪目标的成本分析
[0044]可使用成本分析来自动地评估跟踪目标以确定该目标是否可能太大而无法执行或执行起来太麻烦。当目标变得太麻烦时,可将该目标拆分成两个或更多个更小的目标,其中这些结果可被组合。
[0045]成本分析可评估执行成本,诸如处理器消耗、网络带宽消耗、存储消耗、功率消耗或其他资源消耗。在许多这样的情况下,可将成本限制置于跟踪目标上以限制可被分配来跟踪的资源量。在一些实施例中,该成本可以是可归因于消耗各种资源的可量化的财务成本。
[0046]将较大的目标分成多个较小的目标可使用各数据对象内的关系来将相关的对象放置在同一较小的目标中。例如,较大的目标可涉及跟踪一可执行函数的多个数据项。该函数的一些输出可由一个下游函数来消耗,而该函数的其他输出可由不同的下游函数来消耗。当这样的关系可用且已知时,该系统可将第一函数的输出放置在一个跟踪目标中,并将第二函数的输出放置在第二跟踪目标中。
[0047]可估计或测量用于分析目标的影响的成本。在一些情况下,可从数据收集模板库中选择目标。每一模板可具有用于执行该模板的不同方面的估计成本,并且可以使用该估计成本来评估跟踪目标。
[0048]在一些情况下,可测量针对目标的成本。在这样的情况下,可在收集成本数据的同时执行该目标达较短时间段,成本数据为诸如对处理器、存储或网络带宽的影响。一旦这样的成本已知,可执行分析以确定是否将该目标拆分成多个较小的目标。
[0049]贯穿本说明书和权利要求书,术语“成本”在评估跟踪目标的上下文中可以是反映任何成本、开销、资源、税收或由跟踪目标创建的其他障碍的概括术语。一般来说,成本指代具有可被最小化的效果的任何事物。
[0050]使用成本分析来部署跟踪目标
[0051]跟踪目标可使用针对这些跟踪目标的成本估计和关于跟踪设备的资源预算来部署。这些预算可定义针对跟踪目标的资源分配,并且分派器可选择可利用所分配的资源的跟踪目标。
[0052]当由多个跟踪目标中的全部消耗的资源的和小于预算量时,可将这些跟踪目标分派给一设备跟踪目标可使用可包括所分配的跟踪目标中的全部的清单来分派。
[0053]跟踪资源预算可定义可被分配来跟踪特定设备上的工作负载的最大资源量。该预算可基于硬件和软件配置以及任何预先定义的资源或性能分配而在各设备之间有所不同。在一些情况下,特定设备或应用的实例可被分配以满足最小性能标准,而保持剩余资源被分配以跟踪操作。
[0054]依据成本来分配跟踪目标可允许甚至在正执行跟踪时也维持最小应用性能。最小应用性能可确保在跟踪被部署在生产环境中时应用吞吐量可被维持,并确保跟踪不会不利地影响在跟踪期间收集的任何数据。
[0055]自动化跟踪系统中的周期性优化
[0056]自动化跟踪系统可分析收集到的数据内的周期性,随后调整采样率和数据收集窗口以收集有效地捕捉观察到的周期性的数据。初始的高级跟踪可收集针对被测试的任何应用的通用性能参数。
[0057]通过初始跟踪,周期性分析可被执行以标识数据的特征频率。初始数据的特征频率可用于为可被部署的详细跟踪器目标设置默认的采样率和数据收集窗口。
[0058]由于可从跟踪器目标捕捉结果,第二周期性分析可标识数据中的附加重复模式。通过第二周期性分析,采样率和数据收集窗口可被更新或优化以收集统计上有意义的数据。
[0059]在一些实施例中,跟踪器目标可部署有不同的参数以便以与默认设置相比更高或更低的频率来探索重复模式。这样的实施例可检测统计上相关的频率,随后在找到统计上相关的频率时收集附加数据。当任意应用被跟踪时,该应用内的主频率列表可被应用于其他跟踪器目标。
[0060]跟踪器目标的采样率可定义可在数据的时间序列中观察到的最小周期或最高频率。相似地,数据收集窗口可定义可观察到的最大周期或最低频率。通过确保已知频率在结果集中被覆盖,可作出这样的频率是否出现在观察到的数据的集合中的统计上有意义的确定。
[0061]使用相似频率的优化分析
[0062]自动化优化系统可通过在可影响所跟踪的性能度量的输入参数上进行迭代来创建应用性能的统计上有意义的表示。在选择了可影响测量到或跟踪到的度量的潜在输入参数的开始集后,统计上不显著的输入参数可被移除,并且潜在相关的参数可被添加到跟踪器目标。
[0063]观察到的度量可被分析以得到周期性,其结果可以是在数据中找到的频率集合。频率集合可用作签名,可使该签名与其他跟踪器目标的频率签名匹配。匹配跟踪器目标可被分析以标识其他跟踪器目标中的统计上显著的输入参数,并且那些输入参数可被看作潜在输入参数。
[0064]频率分析可通过匹配相似的频率签名来试图匹配在时域中具有相似的观察到特征的跟踪器目标。可具有相似频率签名的两个跟踪器目标可相似地对刺激作出反应或具有其他行为相似性。在许多情况下,可影响用一个跟踪器目标观察到的行为的输入参数可在以某种方式与可影响用另一跟踪器目标观察到的行为的输入参数相关。
[0065]在一些情况下,频率比较可检查在数据内找到的主频率。这样的情况可在对各跟踪器目标结果的分析产生若干不同主频率时发生。在其他情况下,在大量结果集合中观察到单个主频率。在这样的情况下,这些比较可使用在主频率可被移除后可作为特征频率的次频率来作出。
[0066]在其中可从数据中观察到多个频率的实施例中,可创建反映这些频率以及每一频率的强度或重要性的频率签名。可使用相似性比较来比较这些签名以标识匹配。在一些实施例中,比较可使用可指示相似性程度的分数来执行。
[0067]用监视代理来部署剖析模型
[0068]—些跟踪系统可创建可表示跟踪数据的