首页> 中国专利> 针对性能和细节的并行跟踪

针对性能和细节的并行跟踪

摘要

并行跟踪器可与应用的执行或轻度经检测版本并行地执行应用的细化的或经深度检测的分析。应用的两个版本都可操作在同一输入流上,但是深度经检测版本具有与轻度经检测版本的不同执行结果。该跟踪结果可被用于各种分析,包括优化和调试。

著录项

  • 公开/公告号CN105283849A

    专利类型发明专利

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

    原文格式PDF

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

    申请/专利号CN201380075064.1

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

    申请日2013-05-21

  • 分类号G06F11/00;

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

  • 代理人杨洁

  • 地址 美国华盛顿州

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

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-10-30

    授权

    授权

  • 2017-06-09

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

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

  • 2016-02-24

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

    实质审查的生效

  • 2016-01-27

    公开

    公开

说明书

相关申请的交叉引用

本申请要求于2013年1月25日提交的题为“ParallelTracingfor PerformanceandDetail(针对性能和细节的并行跟踪)”的美国专利申请序列号 13/751,006的优先权和权益,该申请的整体内容通过援引被明确地纳入于此。

背景

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

发明内容

仪表化执行环境可连接到一执行环境以随着应用运行提供经细化的应用 的跟踪和日志。仪表化执行环境可被配置成可被配置和购买的单独服务。仪表 化执行环境可与各种认证系统、管理用户界面和其它组件一起部署。仪表化执 行环境可通过分发器来参与客户的系统,分发器可管理应用工作负载以向仪表 化执行环境和其它工作器系统分发工作。市场可提供多个预先配置好的执行环 境,所述执行环境可供选择、进一步配置,并被部署以针对特定数据收集目标。

负载平衡系统可将仪表化系统结合到一组被管理的设备内,并在各设备间 分发工作负载以同时满足负载平和和数据收集。负载分发器可与若干被管理的 设备进行通信并配置它们,某些设备可具有可为那些设备上运行的工作负载收 集跟踪数据的仪器。认证可在被管理的设备和负载分发器之间执行,以验证被 管理的设备能够接收工作负载并在执行前验证工作负载。工作负载分发器可增 加或减少与在任何给定时间经历的工作负载相关的检测的量。

并行跟踪器可与应用的执行或轻度经检测版本并行地执行应用的细化的 或经深度检测的分析。应用的两个版本都可操作在同一输入流上,但是深度经 检测版本具有与轻度经检测版本的不同执行结果。该跟踪结果可被用于各种分 析,包括优化和调试。

跟踪器可模糊跟踪数据,使得跟踪数据可被用在不安全环境中,即使原始 跟踪数据可包含私有的、机密的、或其它敏感的信息。跟踪器可使用不可逆的 或有损散列函数、查找表、或针对特定原始跟踪数据的其它机制来模糊、呈现 经模糊的对传输、存储和分析可接受的跟踪数据。在参数到函数来回传递的情 况中,跟踪数据可作为组或个体参数来被模糊。在某些情形中,经模糊的跟踪 数据可被发送到远程服务器。

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

附图简述

在附图中:

图1是示出用于跟踪处理机密数据的应用的系统的实施例的图示。

图2是示出用于分析敏感跟踪数据的网络环境的实施例的图示。

图3是示出安全环境和远程设备之间的交互的实施例的时间线图。

图4是示出并行跟踪系统的实施例的图示。

图5是示出具有并行跟踪的网络环境的实施例的图示。

图6是示出用于执行具有并行仪表化的方法的实施例的流程图示。

图7是示出用于组合结果的方法的实施例的流程图示。

图8是示出用工作负载分发器来进行跟踪的实施例的图示。

图9是示出具有工作负载分发器的网络环境的实施例的图示。

图10是示出用于带跟踪的负载平衡的方法的实施例的流程图示。

图11是示出作为服务的跟踪的实施例的图示。

图12是示出具有远程跟踪的网络环境的实施例的图示。

图13是用于配置仪表化系统的实施例的流程图示。

图14是示出用于部署仪表化系统的方法的实施例的流程图示。

详细描述

跟踪作为服务

仪表化执行环境可被部署为服务。在创建帐号后,用户可向用户自己的执 行环境内的工作负载分发器添加仪表化执行环境。工作负载分发器可接收进入 的工作负载流并将工作负载的某些或全部引导到仪表化执行环境。

仪表化执行环境可包括软件、硬件、以及能够在处理工作负载的同时捕捉 各种信息的其它组件。仪表可收集可被存储并分析的各种跟踪数据。在某些情 况中,跟踪数据可在收集后被分析,而在其它情况中,跟踪数据可实时地被分 析。

用户可使用管理用户界面来配置仪表化执行环境供分发器使用。用户可能 能够建立帐号、确定支付机制、并选择仪表化执行环境的各种特征。

管理活动还可包括创建各种认证密钥或可使交互系统彼此认证的其它机 制。认证系统可被用来验证仪表化执行环境已经被允许接收分发器的输出,并 且分发器被授权以向仪表化执行环境发送工作项目。

分发器可被添加到用户的执行环境以在应用中引入重定向点或决策点。在 某些情况中,分发器可以是截取输入流并应用负载平衡和仪表检测逻辑两者以 标识用以处理给定工作项目的执行环境的应用。在某些情况中,分发器可以是 可被包括在库中的可执行代码,库可从应用内被调用。

可将检测作为服务提供给应用的开发者或管理者。检测可使用可能对于安 装、配置或操作而言复杂的精细工具和分析来收集数据。用户可使用不同的支 付方案为这样的服务付费,诸如部分基于可消耗多少处理、存储、或其它资源 来付费。在某些情况中,支付可以是订购以供使用一段时间,诸如一个月的服 务的固定费用支付。许多其他的支付方案可被部署。用工作负载分发器来跟踪

经负载平衡或经其它管理的计算环境可向仪表化和非仪表化的系统分发 工作项目。工作平衡或分发可考虑应用的仪表检测目标来进行。在一个示例中, 仪表检测可在系统上的负载可允许时执行,但是当负载因素增加时仪表检测可 被减少或消除。

工作负载分发器可具有若干仪表检测目标,其定义收集数据的条件以及要 收集的数据。目标可包括诸如采样率、开始或停止仪表检测的事件或条件、要 收集的数据的数量或质量、以及要被应用的仪表化的具体参数或类型之类的项 目。

工作负载分发器可将仪表检测目标发送到工作器系统,其中目标可使得工 作器系统收集所描述的数据。在这样的情况中,分发器可能能够为仪表检测每 个工作项目创建自定义的目标。

计算环境可具有多个工作器系统,其执行由分发器定义的工作项目。每个 工作器系统可向分发器注册,注册可包括初始联系人和登记并建立各设备之间 的认证机制。工作器系统的状态可被周期性地收集并用于确定执行给定工作项 目的可能性。

并行跟踪

深度仪表化的跟踪器可与轻度仪表化的工作器并行操作以捕捉应用的详 细测量和性能测量两者。在许多情况中,深度仪表检测可能不利地影响应用的 性能,因此破坏可在同时收集的性能度量。随着检测变得更详细,性能度量通 常可能变得更受影响。

跟踪系统可并行操作以在可仅捕捉性能度量的性能环境中进行跟踪,而另 一个详细跟踪器可捕捉详细结果。在某些情况中,相同应用负载可被并行分析 并且性能结果和详细结果可被聚集在一起以生成应用的完整的表示。

并行跟踪系统的体系结构可被部署在分布式计算环境中。在这样的环境 中,多个设备或处理器可各自执行应用的某些工作。计算群集可以是分布式计 算环境的一个示例,其中多个设备各自执行输入流的一部分。

单个设备可能能够执行并行跟踪。多处理器设备可具有可以以高性能方式 处理应用工作负载的一些处理器而其它处理器使用详细工作器来执行应用。

并行跟踪的概念可被应用到单个系统或单处理器系统。在这样的系统中, 分开的跟踪操作可顺序执行。例如,可使用性能水平仪表检测来执行应用工作 负载的第一次运行,接着使用详细仪表检测系统来执行工作负载的第二次运 行。在这样的实施例中,输入流可被捕捉用于以详细方式进行的后续执行。

分发器可标识输入流中的各个工作单元以发送到不同组件。工作单元可以 是可以以相对独立的方式执行的任何计算工作负载对于每个程序或应用,工作 单元可以不同。

在一些应用中,工作单元可以是可包括函数的输入参数的函数调用。对于 函数语言(诸如Erlang、Haskell、Scala、F#)或对于以函数方式写的非函数语 言,应用的各部分可能够被独立计算。在某些情况中,各工作单元可具有与其 它工作单元的依赖性或其它交互。

工作单元可以是输入项目或对应用作出的请求。在应用编程接口的示例 中,对接口的调用可被看成一个工作单元,其可由应用的实例来执行。这样的 请求可以或者可以不依赖于其它请求,但是一般来说许多这样的系统可具有可 独立于其它请求操作的请求。

在某些情况中,可由两个不同地仪表检测的系统执行的工作单元可返回不 同结果。在一个简单示例中,工作单元可基于一天里的确切时间来执行函数。 在这样的示例中,在性能水平仪表检测上执行的工作单元将返回与在可能慢得 多的高度仪表化的系统上执行的同一工作单元不同的值。

当执行在两个不同系统上的工作单元返回不同值时,算法可被应用以确定 返回值。在等待时间、响应时间、或其它与性能相关的因素可能不利地影响结 果的系统中,来自性能水平仪表化系统的结果可被使用而从高度仪表化系统收 集的结果可被丢弃。在某些情况中,来自性能水平仪表化系统的结果可被丢弃, 以支持来自高度仪表化系统的结果。在又一些情况中,可使用平均或其它概要 来聚集来自一个工作的单元的两次分开运行的应用结果。

模糊跟踪数据

跟踪器可模糊从应用收集的数据并将经模糊的数据发送到分析引擎。分析 引擎可在经模糊的数据上执行全部的分析,使得分析引擎可不接触在跟踪器控 制的数据中包含的任何秘密的、私人的、或其他形式的敏感数据。

跟踪器可在应用的执行期间收集数据。应用可处理可能是敏感的数据。当 跟踪器遭遇应用数据时,这样的数据可在分析前被模糊。经模糊的数据可接着 被分析以理解、分类、优化、或执行与该应用相关的其它功能。在某些情况中, 分析可生成可涉及可被模糊的特定数据元素的推荐或其它结果。在这样的情况 中,用于确定底层数据值的机制可通过逆模糊过程被提供。

模糊处理可包括散列函数,其可以是有损的或无损的。在其它实施例中, 模糊处理可以是加密处理,其可以是或者可以不是密码上安全的。又一些实施 例可采用维护在客户端设备上的查找表,其将有意义的数据值转换成用于分析 的任意值。

多个值可被散列化或以其他方式被看成是跟踪器输出中的单个元素。例 如,函数可用三个自变量来调用。在某些实施例中,这三个自变量可被组合成 单个自变量并被散列化或以其他方式模糊成单个值。在其它实施例中,这三个 自变量可各自被模糊并存储为三个分开的值。

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

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

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

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

当元素被称为被“相连接”或“相耦合”时,这些元素可被直接连接或耦合在 一起,或者也可存在一个或多个中间元素。相反,当元素被称为被“直接连接” 或“直接耦合”时,不存在中间元素。

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

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

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

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

图1是示出用于处理敏感数据的应用的跟踪系统的实施例100的图示。实 施例100是系统的简化的示例,其中跟踪可发生在安全环境内,随后跟踪数据 可在非安全环境内被分析而不危及敏感数据的完整性。

实施例100示出了跟踪系统的示例,其在安全环境中收集数据并在将该数 据发送到远程系统供分析前模糊该数据。远程系统可以是处在不安全的环境 中,但是因为敏感数据被模糊,对那些数据的任何分析可被执行而不危及底层 数据的安全性。

在一个示例中,安全环境102可具有可处理敏感数据的应用104。敏感数 据可以是,例如,信用卡号码、社会保障号码、就业数据、医疗数据、机密军 事数据、财务数据、或可从法律、商务、个人、或其它角度而言敏感的任何其 它类型的数据。

跟踪器106可在应用104执行时监视应用104以收集性能和操作数据。跟 踪器106可检查各函数、线程、过程、消息、数据对象、和为应用的部分或可 被应用处理的其它信息。跟踪器106可执行各种程序元素的低级检查,其结果 可被用来分析程序执行。这样的分析可以用于调试、审计、优化、或其它目的。

在许多情况中,跟踪器106可处理包含敏感数据的信息或与包含敏感数据 的信息进行接触。在这一情况下,数据可在离开安全环境102前被模糊。在简 单示例中,函数可接收数据对象,诸如原始信用卡号码。对该函数的跟踪可收 集该信用卡号码作为传递到该函数的值。在另一个示例中,从一个线程传递到 另一个线程的消息可包含未经过滤的财务信息、医疗记录对象、或其它敏感信 息。在普通的跟踪操作期间,这样的敏感数据可被收集,但是可在将该敏感数 据传递到安全环境以外之前将该数据模糊。

当敏感数据在安全环境102内被收集并被处理时,数据可被看成是安全的。 在典型的安全环境102中,数据可在符合各种隐私和安全标准及规程的设施中 被处理。这样的设施可维持物理安全性以及网络安全性,物理安全性限制对特 定人员的访问,网络安全性约束对数据的访问。

模糊器108可模糊跟踪数据的一些或全部以创建经模糊的跟踪数据110。 模糊器108可使用各种散列函数、加密算法、替换方案、或其它技术来保护敏 感数据。在某些情况中,模糊器108可创建查找数据库112,查找数据库可包 含跟踪数据的原始的和经模糊的值。

经模糊的跟踪数据110可被发送到安全环境102之外。经模糊的跟踪数据 114可位于远程设备上或可能具有分析引擎116的其它系统上,分析引擎可对 经模糊的跟踪数据114执行解析、优化、或其它分析。分析引擎116的结果可 参考个体数据项目或可包含对保持模糊的数据元素的参考。

结果118可被传递回安全环境102中并由结果处理器120来施加操作。结 果处理器120可从经模糊的数据值来确定原始数据值。在某些情况中,这样的 操作可包括从查找数据库112中查找原始数据值。

在一个使用情形中,跟踪器106可分析可能例如处理银行帐户信息的应用 104。跟踪器106可标识用于监视的函数,其中该函数接收银行帐户号码并返 回余额。在此示例中,银行帐户号码和余额可被看成私人信息。

跟踪器106可检测到该函数已经被调用并可捕捉发送到该函数的数据以及 由该函数返回的数据。在此情况中,银行帐户信息已经被传送到该函数并且余 额并返回。该函数可被调用很多次,且该跟踪器106可在该函数每次被调用时 进行捕捉。在监视应用104一段时间后,跟踪数据可包含银行帐户信息和余额 信息。

在将跟踪数据发送到安全环境102以外之前,模糊器108可模糊跟踪数据 以创建经模糊的跟踪数据110。一旦被模糊,数据可被远程系统分析以确定应 用104的性能度量或调试信息。

分析可使用经模糊的值来处理每个数据对象。在一个示例中,调试分析可 确定对函数的特定输入值导致函数的非预期行为。由于分析是在经模糊的数据 上执行的,分析结果可被发送回安全环境102,在那里跟踪数据的初始值可被 确定并对结果采取行动。

在这样的情形中,敏感数据可被保持在安全环境102内部,但分析可在不 共享相同级别安全性的环境中执行。例如,跟踪分析器或程序优化器可分析可 能是秘密的、安全的、私人的或以其他方式敏感的应用,但是结果可被发送并 在相对开放的环境中分析。例如,经模糊的跟踪数据110可以以具有最小的或 没有加密的明文被发送,并存储在不符合应用104的高安全标准的设施中。

分析引擎116可以是经模糊的跟踪数据114的自动化的、半自动化的、或 手动分析。结果118可包含对经模糊的跟踪数据114的直接引用,例如,诸如 标识导致错误条件的数据值。然而,由于分析仅能针对经模糊的跟踪数据114 来执行,分析引擎116不可接触底层原始数据。

在某些情况中,远程系统可从多个用户收集数据,每个用户可生成经模糊 的跟踪数据。来自每个用户的数据可被组合到包含来自许多源的跟踪数据的单 个数据库。在这样的情况中,远程系统可仅存储经模糊的数据,而敏感数据被 保持在安全环境102内。

模糊器108可使用若干不同机制来创建经模糊的跟踪数据110。在某些情 况中,模糊机制可以是或可以不是有损的。

非有损系统的示例可以是可用密钥加密数据的加密系统。在这样的系统 中,模糊器108可使用密钥加密数据项,且分析引擎116可处理经加密的数据 对象。一旦结果118被返回安全环境102,结果处理器120可使用密钥解密结 果118。这样的系统可能不使用查找数据库112来从经模糊的值重新创建原始 值。

非有损系统的另一个示例可以是不可逆安全散列,诸如MD5、SHA或其 它散列函数的使用。这样的函数可能没有或很少冲突,但是可能是特别难以从 经模糊的值提取初始值。在这样的系统中,查找数据库112可被用来存储经散 列的和原始值,使得结果118可被转换回原始的未散列的值。

有损系统的示例可对原始数据应用有损散列函数,诸如校验和或其它有损 压缩技术。这样的系统的各示例可以是具有许多冲突的散列函数。这样的系统 可创建经模糊的数据元素,其不能被反向到具有确定程度的单个值。

另一系统的一个示例,查找数据112可被用来向原始值分配随机或序列值。 例如,每个新原始值的记录可被分配递增的索引并且索引可用作经模糊的值。 因为,查找数据库112可能包含敏感数据,查找数据库112可在安全环境102 内被存储并被保护。

在某些实施例中,不同类型的模糊可以被应用到不同跟踪数据。例如,高 敏感数据元素可用加密来模糊,而低敏感数据元素可用更简单的散列函数来模 糊。这样的实施例可对更敏感数据应用在计算上更昂贵的模糊,而对较不敏感 的数据应用计算上较不昂贵的模糊。

某些跟踪数据可被以明文存储或可不被模糊。例如,某些实施例可以用明 文存储函数名称而可模糊传递到和传递自函数的数据。一般而言,函数名称、 参数名称、变量名称、或应用内的其它硬编码描述符可描述应用的操作但不描 述可被处理的底层数据。

应用元素的明文描述符可从应用的源代码描述中提取。某些实施例可包括 源代码分析器,其提取各种应用元素的描述符。在某些实施例中,这样的分析 器可被构建到编译器中,其输出可包括调试或标记信息。

应用元素的明文描述符,诸如函数、变量、数据对象、方法、或其它元素 可给予开发者和管理者有意义的关于它们的应用的执行的反馈,即使是在底层 数据被模糊时。例如,分析引擎116可标识函数FOO已以特定方式作出行为 并提供命名函数FOO的反馈。应用开发这可识别函数FOO并能采取行动。这 样的分析可以使用经模糊的数据元素但连同程序元素的明文表示来以不安全 的方式执行。

应用元素的明文描述符可包括函数名、变量名、数据对象名、记录标识符、 栏标识符、注释、方法名、类名、库名、文件名、参数名、标记、控制流程图、 和其它描述符。通常,这样的描述符可被程序员或开发者创建并可反映程序员 的意图或逻辑。

在特定环境中,这样的描述符可反映机密信息。该机密信息可以是底层逻 辑或程序流,其可与应用处理的数据的机密性质中分离。例如,处理保健记录 的应用可具有用于分析保健记录的专用或商业秘密方法。保健记录本身可以是 在HIPPA或其它法律或规章规定下机密的,应用的方法可以是机密信息的单独 类别。

在这样的描述符反映应用逻辑的情况中,由于第三方可能被暴露给应用中 的底层方法但不被暴露给应用处理的数据,第三方分析可在未披露协议、私有 协议,或其它机密性规定下执行。

图2是示出具有将模糊的跟踪数据传送到远程设备供分析的计算机系统的 实施例200的图示。实施例200示出可呈递实施例100以及其他实施例中描述 的操作的硬件组件。

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

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

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

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

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

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

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

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

客户端202可以包括可执行各种应用254的操作系统218。在某些实施例 中,执行环境220可执行应用254。在任一情况中,操作系统218或执行环境 220可通过管理由用于254消耗的资源并控制执行来管理应用254的执行。

由操作系统218或执行环境220管理的资源可以是存储器资源、网络资源、 输入/输出资源、处理器资源、和其它资源。操作系统218或执行环境220可 分配存储器、执行垃圾收集、安排处理器可用性、赋予存储资源优先级及分配 存储资源、以及其它功能。在某些实施例中,该执行环境220可以被称作虚拟 机。

跟踪器222和224可在操作系统218或执行环境220内操作。跟踪器222 和224可监视应用254的执行并收集各种信息,包括执行数据、操作数据、调 试数据、和其它类型的信息。在很多情况中,跟踪器222和224可被暴露给可 由应用254处理的敏感数据。

原始跟踪数据226可以是跟踪器222或224收集的数据。原始跟踪数据226 可包括由应用254处理的数据元素,以及对应用元素的引用,诸如函数名和其 它描述符。

模糊器228可处理原始跟踪数据以创建经模糊的跟踪数据230。模糊器228 可使用各种机制来模糊原始跟踪数据226的一些或全部。在某些情况中,仅特 定元素可被模糊,而原始跟踪数据226中的其它元素可维持在明文格式。

在某些实施例中,源代码分析器252可创建一组源代码注释254。源代码 注释254可被用来以有意义的函数名和其它信息来装饰原始跟踪数据226。

源代码注释254可以是注释、标记、标签、或可从源代码取得的其它信息。 这样的信息可由编译器、调试工具、或其它源创建。在某些情况中,源代码注 释254可由专用源代码分析器252创建。

通信代理232可将经模糊的跟踪数据230发送到远程设备240用以处理。 远程设备240可位于可由防火墙236以及其它安全措施保护的安全环境之外。 通信代理232可将经模糊的跟踪数据230通过防火墙236和网络238发送到远 程设备240。

远程设备240可在硬件平台242上操作。硬件平台242可类似于硬件平台 204。在某些实例中,硬件平台242可以是虚拟机、云计算系统、计算群集、 或某些其它执行环境。

通信代理246可从设备202接收经模糊的跟踪数据230并处理经模糊的跟 踪数据230。分析器248可针对经模糊的跟踪数据244执行分析以生成各种分 析结果,该结果可以是调试和执行信息、优化信息、或任何其它类型的分析结 果。

经模糊的跟踪数据244可包含来自多个设备202的跟踪数据。在某些实施 例中,来自两个或更多个设备的跟踪数据可被组合,以创建比可能仅从一个设 备创建的跟踪数据更为复杂的跟踪数据集。

在某些实施例中,来自远程设备240的结果可被发送到设备202以用于进 一步检查和使用。在这样的实施例中,查找数据库234可用经模糊的和原始数 据元素填充。在从远程设备240接收到结果时,查找数据234可被用来从经模 糊的结果转换到更有意义的结果。

图3是示出用于安装并监视可执行代码的方法的实施例300的流程图示。 实施例300在左列示出了客户端设备302的操作在右列示出了远程设备304的 操作。

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

实施例300示出了安全位置中的设备302和可能在安全位置外的远程设备 304之间的交互。跟踪数据在设备302上被收集、模糊、并被发送到远程设备 304。远程设备304可仅处理经模糊的数据来创建特定结果,该结果被返回设 备302并被去模糊。

在设备302上,应用可在框306中执行。当应用执行时,跟踪数据可在框 308中收集。参数的一些或全部可使用散列、加密、查找表、随机化、或其它 模糊技术来被模糊。

经模糊的数据可在框312中被发送到远程设备304,远程设备304可在框 314中接收经模糊的数据。

远程设备304可在框316中对经模糊的跟踪数据执行分析以在框318中生 成分析结果。分析结果可在框320中被发送到设备302,设备302可在框322 中接收分析结果。

设备302可在框324中对数据去模糊以在框326中对分析结果动作。在框 324中的去模糊可采用从计算自经模糊的数据的结果来确定原始、初始值的机 制。

图4是示出并行跟踪系统的实施例400的图示。实施例400示出了具有分 发器的系统的高级视图,分发器可将工作的各单元发送到不同系统,所述不同 的系统包括用于性能测量以及细化的检测或剖析的系统。

实施例400可以是其中工作的各单元可在不同环境中执行的系统的示例, 其可包括在没有检测下的执行、执行级检测、以及细化的检测。在许多情况中, 增加检测的级别可导致性能下降。然而,更完整的有关应用的理解可将执行和 细化检测结果两者组合。通过从两个不同环境收集跟踪数据,执行相关数据可 不受细化跟踪的影响。

工作的单个单元可被两个不同系统分析。在这样的系统中,执行结果和细 化跟踪结果可针对工作的那些单元被组合。这样的系统可用标识符对跟踪结果 做标记,该标识符可以允许聚集器将结果匹配到工作的同一单元。

在其它实施例中,工作的单个单元可仅被分析一次。在这样的系统中,执 行和细化分析的结果可被组合以给出整体图片,而不需要能够直接对比工作的 各个单元。例如,在工作负载到每类分析的分发可具有统计上正态分布时,这 样的图片可以是统计上显著的。

请求者42可向分发器406发送请求404。请求404可以是要由执行环境的 群集处理的工作负载。在一个示例中,请求404可以是对应用编程接口的调用, 其中应用编程接口可由计算群集来执行。在另一示例中,请求404可以是高性 能计算系统内的工作负载。在又一个实施例中,请求404可以是计算机应用内 的函数或方法调用。

分发器406可分析请求404以确定如何路由请求404。在实施例400的示 例中,请求404可被路由到未检测系统410、经执行检测的系统412、或详细 检测的系统414。其它实施例可具有能够执行请求404的更多或更少的系统。

分发器406可具有那个定义分发器406可如何执行其分发功能的配置408。 配置408可具有其下细化的或执行跟踪可被执行的条件,以及定义何时无跟踪 可执行的条件。

条件408可包含过滤器,其将检测限制为仅针对可用请求的子集。过滤器 或目标可定义与输入流、采样频率相关的参数、或可定义检测如何发生及何时 发生的其它参数。目标可定义检测粒度,诸如功能组件、函数、处理、存储器 对象、或数据收集的细节的其它级别。作为与输入流相关的参数的示例,条件 408可指示检测可在包含具有特定值或值的范围的特定变量的请求时执行。其 它类型的配置定义的示例可为可能被检测的请求定义采样频率。

未检测系统410可用很少的或无跟踪或检测来处理请求404。在很多情况 中,未检测410可包含可监视系统的状态或其它行为的最少检测。未检测系统 410不能够生成可用从其它经检测系统收集的数据来分析的检测结果。

经执行检测的系统412可在收集性能相关度量时处理请求404。检测可被 设计以具有对系统性能的最小影响,使得性能度量可被认为是精确的。

经细化检测的系统414可在收集细化操作信息时处理请求404。在许多情 况中,这样的系统可跟踪函数调用、收集进程和函数之间传递的数据对象、收 集作为执行期间的特定点的对象值、和其它数据。在许多情况中,经细化检测 的系统414可能比执行系统412显著地慢。

在实施例400的示例中,三个系统被示为处理请求404。在某些实施例中, 这样的设备可以是具有相同或不同软件组件的相同的硬件设备,而在其它实施 例中,可使用具有不同硬件或软件组件的不同设备。这样不相同的系统可具有 设计用于高性能、细化检测或其它功能的专用硬件或软件组件。

应用输出416可从执行请求404的各系统被接收。应用输出416可被返回 到请求者402。

在两个系统执行相同请求的情况中,应用输出416可被比较以确定两个系 统是否收集了相同输出。在某些实施例中,当两个并行设备收集相同输出时, 输出可被看成是可靠的或实体化的。当来自两个系统的输出不相同时,输出值 之一可被选择、值被平均、或采取其它动作。

结果组合器418可从经执行检测的系统412和经细化检测的系统414两者 收集跟踪数据,并将结果存储在一组检测结果420中。在某些情况中,结果组 合器418可将在两个或更多个不同跟踪数据间的特定执行运行或特征进行匹 配。可在本说明书的稍后处找出这样的匹配的示例。

图5是示出其中不同执行系统可生成不同级别的跟踪数据的网络环境的实 施例500的图示。实施例500示出可实现实施例400以及其他实施例中描述的 操作的某些的硬件组件。

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

实施例500示出了处理通过外部网络504从请求者502接收到的请求系统 的示例。分发器系统506可解析进入的请求流并导致各种执行系统520执行请 求。对请求的应用输出或响应可被传回请求者502,而从执行系统520收集的 任何跟踪数据可被存储并由分析系统552使用。

实施例500中所示的各种设备的每一个可具有硬件平台。相应的硬件平台 可类似于实施例100中的硬件平台100。设备可以是任何类型的硬件平台,诸 如个人计算机、服务器计算机、游戏控制台、平板计算机、移动电话、或具有 可编程处理器的任何其它设备。

分发器系统506可接收并解析输入流,接着将工作的各单元引导到各种执 行系统520。分发器系统506可操作在硬件平台508上并包含经由外部接口512 接收工作请求的分发器510。分发器510可具有跟踪配置514和定义工作的各 单元如何分发的分发配置516。

跟踪配置514可定义算法、条件、或可定义如何及合适收集检测数据的其 它条件。跟踪配置514可包括粒度、采样率、采样大小、要收集的数据,和其 它信息。跟踪配置514还可包括何时跟踪或不跟踪的特定条件。

这样的条件可评估请求中的数据元素,以及来自外部源的数据元素。例如, 条件可导致详细跟踪在晚间在输入参数为“蓝”时发生。

分发配置516可定义用于分配其它工作单元的条件。分发配置516可定义 负载平衡算法,例如,该算法将工作分配给轻度负载的设备而避免将工作发送 给重度负载的工作。

本地网络518可将分发器系统506与各种执行系统520相连接。执行系统 520可具有操作系统524或执行环境530可在其上运行的硬件平台522。应用 534可在执行系统520上执行以响应于工作单元,并且各种跟踪器可在应用534 处理该工作单元时收集数据。

在某些实施例中,应用534可直接在操作系统524上执行。在这样的实施 例中,操作系统524可具有用于收集执行相关测量的轻量跟踪器526,以及可 在应用执行期间收集经细化信息的详细跟踪器528。

在其它实施例中,应用534可在执行环境530中执行。执行环境530可以 是虚拟机,诸如进程虚拟机,其管理执行并提供各种支持功能,诸如存储器分 配、垃圾收集、进程管理、消息传递、或其它功能。这样的执行环境可具有跟 踪器532。

可使用跟踪器配置536来配置各种跟踪器,跟踪器配置536可定义收集什 么信息以及在什么情况下信息可被收集。在某些实施例中,跟踪器配置53可 能是导致单个跟踪器表现为执行级跟踪器或详细跟踪器的足够信息。

跟踪数据538可以是本地地收集的跟踪器输出,其可被传递到分析系统 552。

在某些实施例中,分发器540可位于执行系统520内。在这样的实施例中, 系统520可执行应用534,应用534可部分通过将工作负载项分发到多个处理 实例来执行。处理实例可以是经细化检测的实例,而另一个处理实例可以是执 行跟踪实例在这样的情况中,实施例400的操作可在单个设备上执行。

分析系统552可从各种执行系统520收集跟踪数据538来收集集中式跟踪 数据544中的结果。分析系统552可操作在硬件平台542上,硬件平台542可 具有用于跟踪数据544的数据存储,以及组合器546、分析器548,和优化器 550。

分析系统552可从执行和经细化跟踪器两者收集并聚集跟踪数据。组合器 546可创建联合结果集。分析器548可执行结果的各种分析,诸如报告、提醒、 或其它输出。优化器550可为应用534生成经优化的设置或其它优化。

图6是示出用于应用执行和并行检测的方法的实施例600的流程图示。实 施例600在左手栏中示出分发器和组合器602的操作,在中央栏中示出执行环 境604,并在右手栏中示出经细化检测的环境606。分发器和组合器602可表 示分发器406和组合器408的操作,而执行环境604和详细执行环境606可分 别表示实施例400的经执行检测的系统412和经细化检测的系统414的操作。

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

在框608,应用可由分发器和组合器602启动,其可导致在框610应用在 执行环境604中开始执行,且在框612应用在详细执行环境606中开始执行。

从框608到612的操作示出了其中应用可被配置来执行,接着工作负载项 可被发送到应用供处理的实施例。在这样的实施例中,工作负载项可以是由应 用消费的数据项。在其它实施例中,工作负载向可以是可被传递到各种环境的 可执行命令。在这样的实施例中,从框608到612的操作可能不被执行。

在框614可接收输入流。在框616输入流可被解析以标识工作单元。工作 单元可以是数据块,可执行代码,或可由执行环境处理的其它工作负载。

在框618分发器可分析工作单元以确定工作单元是否可使用详细检测或不 使用详细检测来被处理。如果分发器在框618选择详细检测,工作负载可被传 送到详细检测环境606以在框620执行。如果分发器在框618不选择详细检测, 工作负载可被传送到执行环境604以在框622执行。

在某些情况中,分发器和组合器602可向执行环境604和详细执行环境606 两者发送相同工作负载项。

分发器可为工作单元创建标识符。在某些情况中,工作单元可将标识符(诸 如序列号或可被请求者使用的其它标识符)包括在请求内,以将应用结果与请 求进行匹配。在某些情况中,时戳、标识代码、或其它标识符可被分发器创建, 并被用来使来自从不同执行环境收集的两个或更多个跟踪数据的结果数据相 关

当在执行环境604中执行期间,某些跟踪结果可被收集,其可在框624中 被发送到分发器和组合器602并在框626接收。类似地,经细化检测的环境606 可生成跟踪结果,其可在框628被发送并由分发器和组合器602在框630接收。

结果可在框632组合并在框634存储。该过程可返回至框614以处理另工 作单元。

组合来自执行环境604和经细化检测环境606的跟踪数据的方法的示例可 在实施例700中被示出。

图7是示出用于组合来自以不同粒度级运行的跟踪的结果的方法的实施例 700的流程图示。实施例700示出了实施例600的框632或实施例400的结果 组合器418的组合操作的一个示例。

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

执行跟踪数据可在框702接收,且详细跟踪数据可在框704接收。在每组 结果中,一个或多个标识符可被呈现。这样的标识符可在在框706标识。

标识符可以是可被用来使在应用或工作单元的两个不同的跟踪操作之间 的数据进行相关的任何项。在某些情况中,每个工作单元可具有标识符,其可 被用来在工作单元已经被两种类型的跟踪器在分开的运行中执行时匹配经细 化和执行跟踪数据。

在另外的情况中,时戳、输入数据值、或其它信息可被用作标识符。

在框708中对每个标识符,执行结果可在框710中收集,而在框712中可 以收集详细结果。两组结果可在框714组合并在框716存储。

在组合两组结果后,可在框718中在更大的数据集上执行分析。

图8是示出用工作负载分发器来进行跟踪的系统的实施例800的图示。实 施例800示出了一般的过程,其中分发器可提供工作负载分发,并且还确定在 执行期间跟踪如何和何时发生。

实施例800可表示受管理的计算环境,诸如群集计算系统或多个设备可被 使用以递送应用的其它系统。尽管传统群集或负载平衡环境可被用作实施例 800中的示例,相同的原理可被应用到任何计算系统,其中工作负载可被分割 并分发到多个实例、线程、处理器、设备、或其它计算元素。

应用输入流802可被发送到分发器804,其可将工作项分割到各种未检测 系统808和经检测系统812。应用输出816可被任一类型的系统生产,但经检 测系统812可生成可被存储在结果数据库818中的跟踪数据。

工作器系统包括未检测系统808和经检测系统812。工作器系统可能能够 处理工作单元,其可以是应用的任何元素。在某些实施例中,应用可在应用编 程接口上接收请求项,接着将每个请求当做单个工作项来处理。在这样的实施 例中,进入的请求可以是被各自地和独立地处理的数据项。

在某些实施例中,应用可能能够并行执行,每个工作项是可以与其它工作 项交互或可以不与其它工作项交互的独立的计算元素。在这样的实施例中,进 入的请求可以是可执行代码或可执行代码和要被可执行代码处理的数据对象 的组合。

分发器804可使用配置806来定义如何跨工作器系统分配工作项。配置806 可定义负载平衡算法和参数,以及数据收集配置。

数据收集配置可定义数据项如何以及何时可被工作器系统上的任何检测 收集。在许多情况中,数据收集配置可定义指定对象,诸如要收集的数据项和 用于收集数据项的条件。

分发器804可创建跟踪器配置820,其可在经检测系统812上配置检测以 收集指定数据。某些实施例可为每个工作元素创建指定或定制的跟踪器配置 820。这样的实施例可允许系统用跟踪器配置820从运行到运行改变检测,允 许对数据收集的经细调的控制。

由于检测和负载平衡可被结合到分发器804中,检测可变成整个负载平衡 中的因素。例如,当系统上的负载重并且可能几乎没有可用资源时,分发器804 可能能够减少检测使得整个系统性能不受影响。类似地,在松弛期间且可能存 在多余资源,分发器804可增加检测。

在可实现跟踪器配置820的系统中,每个工作器系统可通过为特定工作项 更新跟踪器配置820来被配置为经检测或未检测系统。在某些这样的系统中, 全部工作器系统可被一致地配置。

某些工作器系统可具备其它未检测系统可能不具备的附加的检测能力。例 如,经检测系统812可具备不同的或附加的处理器、存储器、存储、网络连接 性以及甚至可支持检测的附加的软件资源。在某些这样的系统中,各种工作器 系统可能不一致。

工作器管理器822可通过注册工作器系统、确定工作器系统的可用性和其 它功能来管理各种工作器系统。在许多实施例中,工作器管理器822可部署双 向认证机制,其可允许分发器804向工作器系统认证且反之亦然。

工作器管理器822可通过周期性地查询工作器系统或以其它规则来收集状 态信息。状态信息可包括工作器系统的能力,其可包括硬件和软件能力以及配 置,连同当前负载或工作器系统的容量。某些元素(诸如系统处理新请求的能 力)可能实时改变,而其它元素(诸如硬件配置)可能是更静态的。

认证机制可帮助确定各设备假设相互通信。当工作器设备将其自身向分发 器认证时,分发器可依靠该认证来确定工作器不是恶意设备。当分发器将其自 身向工作器设备认证时,工作器设备可依靠该认证来确保分发器具有向工作器 设备发送工作的许可或授权。还可为其它情形部署认证机制,包括检测即服务 情形。

图9是示出工作负载分发器可在其中将工作单元发送给各工作器设备的网 络环境的实施例900的图示。实施例900示出可实现实施例800以及其他实施 例中描述的操作的某些的硬件和软件组件。

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

实施例900示出了其中多个工作器系统可执行由分发器设备确定的应用的 各部分。分发器902可接收工作负载项的流、将进入的流划分成工作单元,确 定哪个工作设备可处理每个工作单元、并使得那些工作单元被执行。

分发器902还可确定在给定工作单元上什么类型的检测可被执行。检测可 包括各种类型的跟踪、数据收集、性能监视、或可被用于诊断、调试、管理性 监视、优化或其它用途的其它数据。

检测可由分发器902配置。在某些情况中,分发器902可能能够将工作单 元路由到可被预配置的工作器设备以执行指定类型的跟踪或检测。例如,仪表 化系统932之一除了执行工作单元外,可被预配置以执行指定数据集收集。在 这样的示例中,分发器902可确定何时将工作单元发送到经检测系统932以及 何时将另一个工作单元发送到可能未配置有检测的工作器924。

在另一个示例中,分发器902可将配置文件或其它描述符发送到仪表化系 统932,其中配置文件可包含要收集的指定项、要执行的测试、或其它数据收 集活动。在这样的实施例中,经检测系统932上的检测或跟踪器可以是可配置 的。在某些情况中,这样的系统可能能够执行工作单元而很少或没有检测,接 着切换到针对下一个工作单元的高级检测,如在配置文件中所定义的。

实施例900中所示的各种设备的每一个可具有硬件平台。相应的硬件平台 可类似于实施例100中的硬件平台100。设备可以是任何类型的硬件平台,诸 如个人计算机、服务器计算机、游戏控制台、平板计算机、移动电话、或具有 可编程处理器的任何其它设备。

分发器902可以具有硬件平台904,在硬件平台004上可操作各种软件组 件。分发器906可接收来自负载接收器908的进入工作负载流并确定哪个工作 器设备将执行该工作单元。分发器906可使用可定义负载平衡目标、算法、或 用于管理服务质量或其它因素的其它定义的负载平衡配置910。分发器906可 参考可能包括各种工作器设备的可用性和状态的工作器数据库912。

分发者906可跨多个设备(包括经检测系统932和一般工作器924)来平 衡工作负载。工作负载平衡可并行使用多个设备以处理可能大于单个设备的容 量的工作负载。例如,大的网络规模的应用可由许多设备处理,在某些情况中 其规模可达数百台服务器计算机。分发器906的负载平衡方面可尝试分割工作 负载并将工作负载分发到可用设备。

跟踪器配置914可定义一组仪表检测目标,其可包括要收集的数据、采样 率、和许多其它因素。

在许多情况中,仪表检测目标可能与负载平衡目标关系紧张。一般而言, 检测和数据收集可达到某计算成本,意味着随着检测增加,系统的性能下降。 在高速、高吞吐量环境中,分发器906可针对处理进入的工作负载的处理容量 来平衡仪表检测目标。在某些实例中,分发器906可在高负载期间回缩仪表检 测目标,使得整体系统的服务度量的质量得到满足。在其它实例中,分发器906 可允许服务度量的质量达不到,使得仪表检测目标可得到满足。由分发器906 做出的决定可在各种配置文件中被定义。

跟踪器管理器918可管理检测以生成数据检测的总体目标。跟踪器管理器 918可使得不同数据元素从各种工作单元或经检测系统932被收集,接着收集 数据。在某些情况中,跟踪器管理器918可执行第一级别聚集、总结、或其它 初始处理。

跟踪器管理器918可使用人为负载生成器916来创建或修改工作单元用于 测试和数据收集。例如,人为负载生成器916可创建强调应用的指定部分的工 作单元。当这样的工作单元被执行时,检测可为工作单元收集数据。这样的工 作单元可生产应用结果,该结果可被仪表化系统932丢弃。

分发器902可包括工作器状态收集器920,工作器状态收集器920可与每 个工作器设备进行通信以确定当前状态。该状态可指示设备是否可用以接受工 作单元。在某些情况中,状态可包括静态的,诸如多余容量、当前工作负载、 或其它性能度量。

工作器管理器956可通过将设备添加到受管理设备池中并从其移除来管理 可用工作器设备。工作器管理器956可允许新设备连接、认证、并添加到受管 理设备的池。管理者可使用工作器管理器956以监视个体设备、配置设备、并 向池添加设备或从其移除设备。

在许多实施例中,工作器管理器956可向工作器设备发放认证密钥。认证 密钥可以是公共/私有加密密钥系统的部分,其中私有密钥可被存储在设备上 并并用来确保通信的安全,而公共密钥被发送到接收设备以解密通信。这的系 统可以是用于在设备间认证系统的一个示例,而其它实施例可使用其它系统。

工作器924可操作在硬件平台926上以在执行环境928内执行应用930。 应用930可以是预先安装的处理来自分发器906的工作项的一组可执行代码。 在某些情况中,应用930可在执行环境928内执行,执行环境928可以是操作 系统、虚拟机、框架、或其它支持软件组件。

工作器924可具有认证密钥954,其可被使用以认证与分发器902的通信。 密钥954可以是任何类型的认证组件,诸如公共/私有加密密钥集或其它组件。

仪表化系统932可向工作器924那样类似地配置。硬件平台934可支持执 行应用938的执行环境936。将检测的系统932可包括跟踪器940,其在执行 期间可以是或可不是被分发器902可配置的。仪表化系统932还可包括密钥952 用于向分发器902认证。

在某些实施例中,仪表化系统932可以是像工作器924相同的硬件和软件 配置。其它实施例可在仪表化系统932和工作器924之间具有不同硬件或软件 配置。

跟踪器940可收集检测或跟踪数据并将那些数据发送到分析系统942。

分析系统942可具有硬件平台944,数据收集器946可从各跟踪器收集跟 踪数据948。分析器950可处理跟踪器用于分析、优化、总结或其它功能。

分发器902的示例和其它组件示出了可具有多个功能的设备。在不同的实 施例中,各种所示组件的每一个可被部署在一分开的设备上或一组设备上。例 如,工作器管理器956、工作器状态收集920、跟踪者管理器918,和其它功能 可被部署在各设备上或各组设备上。

图10是示出用于配置工作器设备池并接着以负载平衡和检测平衡的方式 操作工作器设备的方法的实施例1000的流程图。实施例1000可示出可在实施 例800和900等等所示系统中实现的一个示例进程。

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

实施例1000在框1002示出了用于建立并管理工作器资源的池操作序列, 接着在框1004示出了用于解析输入流并将工作单元分发到工作器资源的操作 模式。在实施例900的示例中,工作器资源可以是各个设备,但是在其它实施 例中工作器资源可以是任何用于处理工作单元的资源。在某些情况下,工作器 资源可以是子设备资源,诸如处理器、调度器、线程、或其它对象。在其它情 况下,工作器资源可以是多个设备一起行动,诸如群集、受管理服务、或其它 资源组。

在框1002的管理模式中,各种执行环境可在框1006中被标识。执行环境 可指用于处理工作单元的任何资源。在许多情况中,执行环境可以是设备、处 理器、或其它计算工作器。

对于框1008中的每个执行环境,在框1010中尝试可被作出以与环境通信 并认证。如果在框1012中认证不成功,则在框1014中将环境标记为不可用。

在框1012中成功认证之后,环境的配置和可用性可在框1016被测试。如 果在框1018中配置和可用性不行,则在框1020中将环境标记为不可用。当环 境在框1012中成功认证且配置和可用性在框1018中行,则在框1022执行环 境可被标记为可用。

框1006-1022的过程可表示管理功能,其可在将工作分发给各执行环境 前被执行。在某些情况中,框1006-1022的过程可与框1004的操作模式并行执 行。在这样的情况中,管理模式的操作可以是各种执行环境的正在进行的及重 复检查。

框1004的操作模式可通过在框1024接收跟踪器配置和负载平衡器配置来 开始。

在框1026输入流可被接收。在框1028输入流可被解析以标识工作项。对 于给定的工作项,可在框1030作出对标识要处理工作项的设备的确定。在某 些情况中、跟踪器配置可在框1030被创建,其定义任何数据收集参数。一旦 在框1030中作出确定,则在框1032中工作项可被发送到所选执行环境。该过 程可返回至框1026以处理下一工作项。

图11是示出跟踪即服务的实施例1100的图示。实施例1100示出了系统 的一个配置,其中远程服务1104可与顾客场所1102上的系统集成,其中远程 访问1104可提供仪表化执行环境以处理工作负载并生成跟踪数据。

顾客场所1102可在用户的控制下执行应用。顾客场所1102可以是物理场 所,诸如用户可访问的建筑物或商店。在某些情况中,顾客场所1102可包括 在第三方场所拥有并位于第三方场所的但由用户控制的一个或多个计算机。这 样的系统的示例可以是主存在云上的执行系统,在那里用户可购买计算资源。 资源可被第三方拥有,但是用户可控制那些资源如何部署。

远程服务1104可接收工作项并使用经检测环境1114来执行那些工作项。 仪表化环境1114可具有可在工作项执行时捕捉各种跟踪数据的硬件和软件组 件。在某些情况中,仪表化环境可包括工具、测量算法、探测、和安装、管理、 执行、或以其他方式部署不方便或成本高的其它组件。

在顾客场所1102内,应用输入流1106可以被传递到分发器1108。分发器 系统1108可解析来自输入流的工作项并将工作项传递到各种执行环境1110。 执行环境1110的输出可以是应用输出1112。

分发器1108可将某些或全部工作项传送到经检测环境1114(其可为远程 访问1104的部分)。在一些情况中,可以使用经检测环境1114的多个实例。

负载生成器1128可创建可被注入输入流1106的测试负载。测试负载可以 是可被经检测环境1114处理以练习应用的数据。在许多情况中,测试负载可 以以比典型或随机输入流复杂得多的方式联系应用。这样的测试负载可执行单 元测试或可被设计来练习各种极端情况和条件的其它测试。在某些情况中,测 试负载可使应用经受可压迫系统性能的大负载。这样的测试负载可帮助标识性 能瓶颈并测量在峰值负载时间期间整个吞吐量或响应时间。

远程访问1104可包括认证、授权、以及记账系统1116,其可管理远程服 务1104的各种管理方面。管理用户接口可允许用户创建帐户、定义支付机制、 并管理仪表化环境1114。

检测市场1122可以是网站或其它界面,用户通过它可浏览预先配置的经 检测系统1124和预先配置的负载生成器1126。各种预先配置的系统的每一个 可针对指定类型的数据收集来被定制。某些预先配置的系统可具备附加特征、 算法、或在其它预先配置的系统上不可用的能力。如此,某些预先配置的系统 可具备与其它预先配置的系统不同的成本结构。

用户可能能够选择预先配置的经检测系统1124和预先配置的负载生成器 1126作为配置针对给定应用的测试制度的开始点。在某些实施例中,用户可选 择预先配置的系统接着添加、移除、或编辑各种设置来获得特定目的。

在某些实施例中,用户可能能够将预先配置的仪表化系统保存在检测市场 1122中供重新使用。在某些这样的实施例中,第三方可能能够将它们自己的仪 表化系统上传以供在在检测市场1122中销售。

图12是示出其中远程服务可提供检测或跟踪的网络环境的实施例1200的 图。实施例1200示出可实现实施例1100以及其他实施例中描述的操作的某些 的硬件和软件组件。

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

实施例1200中所示的各种设备的每一个可具有硬件平台。相应的硬件平 台可类似于实施例100中的硬件平台100。设备可以是任何类型的硬件平台, 诸如个人计算机、服务器计算机、游戏控制台、平板计算机、移动电话、或具 有可编程处理器的任何其它设备。

实施例1200可示出环境,其中检测系统可从远程服务提供,接着添加到 用户系统的计算流水线。检测系统可包括负载生成器以及数据收集器,其可根 据用户的应用来操作以在执行期间收集关于应用的各种数据。

用户可通过管理用户界面与远程服务进行交互。用户可能能够执行各种管 理认为,诸如建立帐户和支付方式,以及选择并配置可被集成到用户应用中去 的测试组件。远程服务可包括检测市场,其中用户可浏览各种预先配置的负载 生成器和预先配置的仪表化工作器。一旦选择,用户可能能够配置或定制组件, 接着管理组件如何可被部署。

用户系统可包括工作负载分发器1202和在内部网络1210中连接的各种工 作器1212。工作负载分发器1202可接收应用的工作单元,接着将工作单元分 发到各种工作器1212。这样的系统的示例可以是群集工作环境。

在实施例1200的示例中,用户的系统被示为可对大应用的执行作出贡献 的多个设备。在其它实施例中,各组件可被部署在单个设备上。

分发器1202可以在硬件平台1204上操作,硬件平台1204可包括分发器 1206。分发器1206可以是可接收输入流、将输入流解析为工作单元、接着使 得工作单元在各种工作器1212上执行的软件组件。

分发器1202可包括配置1207,其可包括负载平衡和检测目的两者。配置 1207还可包括可被用来将工作单元的某些或全部分发到一个或多个经检测工 作器1222的信息,工作器1222可执行工作负载并收集关于执行的数据。

认证系统1208可允许分发器1202建立与远程系统组件的受信的,且在某 些情况中,安全的通信。

工作器1212可包括硬件平台1214和可执行各种工作项的执行环境1216。 实施例1200中的工作器1212可通过内部网络1210连接到分发器1202。在许 多系统中,内部网络1210内的连接可以被看成受信和安全的,因为防火墙1218 和其它安全措施。如此,工作器1212可被部署而无需认证系统。

防火墙1218可在直接在用户的控制下的设备和可由第三方提供的设备或 服务之间定义边界。在某些实施例中,各种检测组件可跨外部网络1220(可包 括互联网)可用。在许多情况下,可使得各种远程服务对许多不同用户可用。

第三方可通过建立与用户系统内的分发器1206的连接来向用户提供负载 生成和检测服务。

分发器1206可在应用中的期望检测的位置操作。在某些情况下,分发器 1206可以是函数调用或可被插入应用的其它指令。这样的指令可被编程者添加 到用户应用。

经检测工作器1222可执行应用的一部分,如分发器1206所定义的。仪表 化工作器1222可具有执行环境1226可在其上执行来自分发器1206的工作单 元的硬件平台1224。在执行工作单元时,跟踪器1228可收集数据,其可被分 析器1230分析。现在在实施例1200中示出的可能是可收集并存储跟踪数据的 单独的设备。

仪表化系统1222可包括可包括密钥1234的认证系统1232。密钥1234可 能是任何类型的令牌、密钥、口令短语,或可被用来向分发器1202上的认证 系统1208认证经检测工作器1222的其它项。在某些情况下,密钥1234可以 是一组公共/私有加密密钥。

负载生成器1260可以是另一检测组件,其可被当做远程服务来配置和部 署。负载生成器1260可生成可被待测试的应用执行的人为负载或其它输入。 在某些情况下,负载生成器1260可创建单元测试或可练习应用的其它输入。 在其它情况中,负载生成器1260可生成可练习应用的大负载,以确定性能瓶 颈或其它对性能的限制。

负载生成器1260可以具有带负载生成器1264的硬件平台1262。配置1266 可定义负载生成器1264如何操作,包括要生成的数据的类型,连同定时、频 率、和其它操作方面。

认证系统1268可键负载生成器1260向分发器1202认证。认证系统1268 可包括一个或多个密钥1270用于与分发器1202进行通信。

管理服务器1236可执行许多设置、配置、和管理操作来部署各种经检测 工作器1222和负载生成器1260。管理服务器1236被示为操作在单个硬件平台 1238上,尽管其它实施例可在不同平台上部署各种组件。

管理用户界面1240可以是网站、应用、或其它用户界面,通过该用户界 面用户可执行许多管理任务。用户可建立帐户并使用认证和授权系统1242创 建各种认证组件。密钥生成器1246和密钥数据库1244可分别被创建并存储可 被部署到检测组件和用户系统的各种认证密钥。

记账系统1240和支付系统1250可以是远程服务可通过它收集钱以供操作 的机制。记账系统1240可标识各检测组件的每个用途,而支付系统1250可将 钱从用户传送到服务提供方以交换对系统的使用。

许多不同的支付方案可被部署以向用户开具远程服务的账单。例如,按月 订购可为一个或多个仪表化系统支付。在另一个示例中,仪表化系统1222和 负载生成器1260可基于处理器周期、按计算小时、按消费的存储、或其它基 础来开账单。

检测市场1254可以是界面,用户通过它可浏览各种预先配置的经检测系 统1256和预先配置的负载生成器1258。用户可能接着那个选择并在部署预先 配置的组件前进一步配置该组件。

图13是示出用于配置检测系统的实施例1300的流程图示。实施例1300 示出了用户与管理服务器交互以配置、部署、并管理检测系统的过程的一个示 例。

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

实施例1300示出了用户可通过建立并部署检测系统的方法。检测系统可 以是仪表化工作器设备、负载生成器、或其它组件。

用户可在框1302开始会话,在框1304建立用户帐户,并在框1306建立 支付方法。用户账户可允许用户在以后的时间登录并添加、移除、和编辑各种 检测系统的操作。支付方法可以是通过它可对提供检测访问的第三方进行支付 的机制。

用户可在框1308中浏览预先配置的检测系统。预先配置的系统可具有不 同的能力。例如,一个仪表化执行环境可具备性能监视能力,而另一个仪表化 执行环境可具备处理或调用跟踪的能力。在另一个示例中,一个负载生成器可 被配置用于产生HTTP请求,而另一个负载生成器可被配置用于TCP/IP请求。

在框1310选择检验系统之后,要被收集的数据可在框1312被定义,且各 种收集参数和逻辑在框1314被定义。在框1312和1314定义的配置变量可在 框1316被存储以允许检测系统在框1318被部署。

要在框1312收集的数据可定义指定参数、参数的类型、或其它关于数据 收集的信息。在负载生成器的情况中,框1312的参数可定义要被生产的负载, 其可与由对应的经检测执行环境执行的数据收集协作。

在框1314中的收集参数和逻辑可定义条件,在此条件下数据可被收集。 条件可以是事件、参数值、时间帧、采样率、或其它可定义数据何时可被收集 的定义。在某些情况中,条件可被分发器解释以确定哪些工作单元被发送到仪 表化执行环境。

在定义要被收集的数据以及数据何时及如何可被收集之后,在框1316配 置可被存储。在某些情况中,经存储的配置可作为另一个预先配置的经检测系 统被添加在检测市场中。这样的存储可被全体公众访问或可被限于仅可被创建 配置的用户访问。

仪表化系统可在框1318被部署并与用户的系统进行接口。

如果在框1320有另一系统要被配置,该过程可以返回到框1308。一旦全 部的系统被部署,用户可在框1322浏览并查看部署的系统。用户可在框1324 选择系统,并且如果用户想要在框1326作出改变,该过程可返回框1312。

图14是示出用于部署仪表化系统的方法的实施例1400的流程图示。实施 例1400示出了仪表化系统的部署的一个示例,诸如可在实施例1300的框1318 中可执行的。

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

实施例1400可示出可被执行以部署仪表化系统的过程的一个示例。仪表 化系统可以是负载生成器、仪表化工作器、或其它组件。

在框1402用于仪表化系统的配置文件可被创建,且在框1404仪表化系统 可被实例化。在某些实施例中,每个仪表化系统可以是虚拟机或可在数据中心 环境内被实例化并管理的其它组件。

在框1406可创建用于认证密钥,且密钥可在框1408被发送到系统。在框 1406和1408,任何协议或其它配置可被执行以连接到分发器或管理系统。

可在框1410作出尝试以连接到顾客的系统上的分发器。如果在框1412连 接不成功,则分发器可通过在框1414标识检测点并在框1416将分发器添加到 顾客系统而被安装并配置。在许多情况中,编程者可添加函数调用或对顾客的 应用作出其它改变以添加分发器。分发器可在框1418被配置来与仪表化系统 通信。该过程可继续至框1420。

在分发器在框1418被配置之后或在框1412存在成功连接,检测系统可作 为可用系统在框1420被添加到分发器。在框1422处可建立认证机制,并且系 统可在框1424处开始操作。

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

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号