生产应用的自动化性能调试制造技术

技术编号:21041487 阅读:35 留言:0更新日期:2019-05-04 10:09
生产应用中的性能异常可以被分析,以确定相同或不同计算机上的托管进程随时间的动态行为。有问题的调用位点(是性能瓶颈或正导致挂起的调用位点)可以被标识。替代依赖于静态代码分析和开发阶段负载测试来标识性能瓶颈或应用挂起,轻量级采样策略收集表示生产场景中的主要性能数据的谓词。性能谓词提供关于主题的信息(例如,性能问题是什么、什么导致了性能问题等)。数据可以被馈送到基于决策树的模型中以标识运行有问题的调用位点的关键线程。结果连同主要性能数据一起可以被用来构建用于分析调用堆栈模式的调用图前缀二叉树。数据收集、分析和结果的可视化可以被执行。

Automation Performance Debugging of Production Applications

【技术实现步骤摘要】
【国外来华专利技术】生产应用的自动化性能调试背景云计算是一种基于互联网的按需(on-demand)计算类型,其中包括网络、服务器、存储、应用、服务等的可配置处理资源池在许多客户之间被共享。云计算和存储解决方案为用户和企业提供了在第三方数据中心中储存和处理数据的多种能力。云计算由于各种原因而已变得非常流行,所述原因包括高端计算技术的可用性、低成本、良好性能、可扩展性等等。在云计算环境中进行调试可能具有挑战性。如果出现性能异常(例如,响应减速),通常根本不清楚什么正在导致该异常。概述客户源代码或非框架代码在生产环境中的自动化性能调试可以通过使用轻量级采样技术收集性能数据来被执行。性能数据是示出生产应用正如何执行的数据。例如,其可以引用但不限于引用关于性能调试上下文中的CPU利用率、线程及它们的调用堆栈追踪的信息。框架代码是用作操作系统的抽象层以提供通用功能性的可执行代码。通常,框架代码可以通过附加的用户编写的代码(不是框架代码且不是操作系统代码的代码)来被选择性地改变,从而提供因应用而异的功能性。框架代码通常具有库、工具集和应用编程接口(API)支持,以便于软件应用的开发。非框架代码(例如,用户编写的代码)是用户创建以满足特定功能和/或业务需求的可执行代码。非框架代码可以包括用户实现的对框架代码的扩展。性能数据可以被收集。性能数据可以被序列化到存储中。数据可以被离线地分析。数据可被用来标识关键线程。数据可被馈送到基于决策树的模型中,以标识与处理减速相关联的关键线程。调用图前缀(callgraphprefix)二叉树可以被构建来分析关键线程的调用堆栈模式以突出热点。热点上所流逝的墙钟时间的视图可以被提供。通过观察包括调用堆栈模式视图的分析结果,热点(致使性能减速的代码)可被标识。除了调试之外,该信息可被用于性能调节。性能调节可以改进应用性能。经标识的热点的调用帧可以包括模块名称和方法名称以及与减速相关联的代码的所流逝的时钟时间。因此,静态代码复查可以被容易地用作仅复查所指示的方法代码段的施展余地。因此,本文中所公开的主题可以被利用以调节生产应用性能。提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的概念的选集。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,亦非旨在用于限制所要求保护的主题的范围。附图简述在附图中:图1a解说了系统100,其包括根据本文中所描述的主题的各方面的用于生产应用的自动化性能调试系统的示例;图1b解说了系统101的另一视图,其包括根据本文中所描述的主题的各方面的用于生产应用的自动化性能调试系统的示例;图1c解说了系统103,其包括根据本文中所描述的主题的各方面的用于生产应用的云自动化性能调试系统的示例;图2a解说了根据本文中所描述的主题的各方面的用于生产应用的性能调试的方法200的示例;图2b是根据本文中所描述的主题的各方面的生产应用的性能调试的框图;图2c解说了根据本文中所描述的主题的各方面的程序的调用图;图2d解说了根据本文中所描述的主题的各方面的CallSiteinn∈{0…11}的调用堆栈的示例;图2e解说了根据本文中所描述的主题的各方面的构建调用图前缀二叉树的示例;图2f解说了根据本文中所描述的主题的各方面的生产应用的性能调试的分析结果的示例;以及图3是根据本文中所描述的主题的各方面的计算环境的示例的框图。详细描述概览通常,在云计算中,应用跨多个物理层和/或在多个网络边界之上运行。一些系统是本地(on-premises)和云系统的复杂混合体。许多应用支持数千或数百万的并发用户请求。它们通常与可以用可能来自不同供应商的不同技术构建的各种其他系统交互。例如,混合云系统可以开始于来自瘦或厚客户端的请求,所述请求通过云服务前端流向本地web服务,去往被构建在具有与数据库层交互的数据访问组件的各种技术上的第三方业务范围(lineofbusiness)应用。附加服务(诸如社交身份提供商、请求路由、认证、授权等等)有可能开始起作用。如果出现性能异常(例如,响应减速),根本不清楚哪个层正在导致该异常。传统的调试活动通常涉及设置调试工具、在减速期间相继地捕捉若干轮挂起模式转储以及使用用户模式调试器对它们进行分析。挂起模式转储是完全用户模式转储,其包括进程的整个存储器空间、程序的可执行映像本身、句柄表、和将会对调试器有用的其他信息。用户模式调试器是被用来调试运行可执行代码的进程的调试器,所述运行可执行代码的进程通过OS(操作系统)与其他进程分开。调试器和被调试对象(正被调试的可执行文件)通常运行在相同的用户模式系统上。尽管使用存储器转储进行深入调试非常强大,但它也是冗长且耗时的,因为可能存在数百个进程,这些进程中的每一者可能具有在它们内运行的数百个线程。而且,因为存储器转储是进程的快照,所以存储器转储由于进程的完整简档无法被组装而通常不提供能够推断进程的运行时动态行为的足够信息。最后,为非常大的生产过程捕捉挂起模式转储可能需要几分钟,在此期间所有线程的执行被挂起(意味着用户的系统停止响应)。当应用对任何请求变得无响应同时主控应用的进程正消耗很少或不消耗CPU(中央处理单元)时间时,应用被称为处于低CPU挂起状态。高CPU挂起是无响应性的类型,其中主控可执行文件的进程正消耗大量的(诸)系统处理器CPU时间(通常接近100%)并且进程正缓慢执行、冻结或甚至关闭。本文中所描述的主题涉及低和高CPU挂起两者。根据本文中所描述的主题的各方面,生产应用的整体性能异常可被标识。相同或不同计算机上的托管进程随时间的动态行为可以被分析。可能是性能瓶颈或可能导致挂起的调用位点(callsite)可被标识。替代依赖于静态代码分析和开发阶段负载测试来标识性能瓶颈或应用挂起,轻量级采样策略可以收集表示生产场景中的主要性能数据的谓词。性能谓词可以提供关于主题的信息(例如,性能问题是什么、什么导致了性能问题等)。数据可被馈送到模型(例如,诸如但不限于基于决策树的模型)中以标识运行有问题的调用位点的关键线程。结果连同主要性能数据一起可以被用来构建用于分析调用堆栈模式的调用图前缀二叉树。数据收集、分析和结果的可视化可以被执行。根据本文中所描述的主题的各方面,自动化性能调试和调节可被应用于生产应用。以下特征中的一个或多个可以被包括:保证有限的运行时开销(如本文所使用的,有限的运行时开销是包括小于现实大规模应用(包括企业服务器应用)的总开销的5%的开销)。即时(on-the-fly)分析和离线报告可以被执行。仅具有基本应用和系统知识的人可以理解进程在监视周期期间正在做什么。根据本文中所描述的主题的各方面,自动化性能调试可以被同时应用于大规模分布式系统中的所有进程,以标识整体性能异常的原因。根据本文中所描述的主题的各方面,自动化性能调试可被应用于随黑盒运行的应用。黑盒是用户具有关于其的甚少知识的组件。为了进一步阐述主要性能数据是关于什么的,假设进程P的随时间的(over-time)性能度量被定义为向量并且被定义为进程P中的线程i的随时间的性能度量。因此:i∈{TID}其中TID是所有线程的ID的集合令采样持续时间为x且采样周期为因此:是样本n中的线程i的性能度量。所以其中CPUin是样本n中的线程i的用户时间;CallS本文档来自技高网...

【技术保护点】
1.一种计算设备,包括:处理器;被连接到所述处理器的存储器,所述处理器被配置成:提供程序模块,所述程序模块使用轻量级采样策略来收集用于在生产环境中执行的应用的主要性能数据;分析所述主要性能数据以标识关键线程;分析所述关键线程的调用堆栈模式;以及提供包括在所述生产环境中执行的所述应用的调试信息的分析结果。

【技术特征摘要】
【国外来华专利技术】1.一种计算设备,包括:处理器;被连接到所述处理器的存储器,所述处理器被配置成:提供程序模块,所述程序模块使用轻量级采样策略来收集用于在生产环境中执行的应用的主要性能数据;分析所述主要性能数据以标识关键线程;分析所述关键线程的调用堆栈模式;以及提供包括在所述生产环境中执行的所述应用的调试信息的分析结果。2.根据权利要求1所述的计算设备,其特征在于,所述主要性能数据包括来自所述应用的执行的数据。3.根据权利要求1所述的计算设备,其特征在于,所述轻量级采样策略包括将数据收集代理注入到执行所述应用的进程中,数据收集模块采用对被注入到所述进程中的线程的使用。4.根据权利要求1所述的计算设备,其特征在于,进一步包括:将所述主要性能数据馈送到决策树模型中以标识关键线程,所述关键线程运行调用位点,导致所述应用的性能减速。5.根据权利要求1所述的计算设备,其特征在于,进一步包括:通过对忙线程进行排序来标识在采样持续时间内的任何两个时间点之间的忙线程。6.一种方法,包括将计算设备的处理器配置成:接收用于生产应用的自动化调试的主要性能数据,分析所述主要性能数据以标识关键线程,所述关键线程包括运行调用位点的线程,所述调用位点导致所述生产应用的性能减速;使用调用图前缀二叉树分析所述关键线程的调用堆栈模式;以及提供分析结果。7.根据权利要求6所述的方法,其特征在于,进一步包括:通过对忙线程进行排序来标识在采样持续时间内的任何...

【专利技术属性】
技术研发人员:王亚伟
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1