计算系统中的诊断框架的制作方法

文档序号:14203767阅读:173来源:国知局
计算系统中的诊断框架的制作方法



背景技术:

云计算通常利用一组虚拟机或其他远程服务器来处理、管理或存储用户数据。通信网络可以互连远程服务器以形成计算结构。在操作期间,计算结构的一个或多个远程服务器可以彼此协作以提供支持各种用户软件应用的执行并且提供其他计算服务的分布式计算环境。



技术实现要素:

提供本“发明内容”是为了以简化的形式介绍将在以下“具体实施方式”中进一步描述的一些概念。本“发明内容”不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。

在某些云计算环境中,云服务提供商可以向多个用户或租户提供计算设施(例如,租户站点)以执行用户软件应用。这种布置的一个困难是云服务提供商通常不能访问个体租户站点的操作参数、事件日志、性能指标或其他操作数据。因此,当租户经历服务中断、性能下降或其他操作问题时,云服务提供商可能没有足够的信息来进行诊断、排除故障或执行操作问题的根本原因分析。

所公开的技术的若干实施例提供了一种诊断系统和框架,其使得租户或云服务提供商能够有效地诊断、排除故障或执行租户站点或支持租户站点的计算结构的操作问题的根本原因分析。在某些实施例中,诊断系统可以包括在操作上彼此耦合的分析组件、增强组件和解释组件。分析组件可以被配置为检查租户站点或计算结构的至少一部分的历史和/或实时操作数据。通过检查,诊断系统可以在正常操作条件下识别操作模式(例如,状态或事件的序列)或者关联某些性能指标(例如,高速缓存数据大小、网络流量等)。增强组件可以被配置为从例如计算结构或租户站点的开发者或管理员接收注释。注释可以包括导致违反正常操作条件下的操作模式或性能指标的相关性的可能的原因、理由或预测。性能指标的注释的操作模式和/或相关性然后可以形成操作简档。

解释组件可以被配置为利用操作简档来确定在操作期间是否违反了任何操作模式或性能指标的相关性。响应于确定操作模式之一或性能指标的相关性之一被违反,解释组件可以被配置为基于操作简档中的注释来确定与违反相关联的原因、可能理由或预测。解释组件还可以将违反的时段与租户经历操作问题的时段相关联。这样,诊断系统可以有效和自动地标识与租户经历的操作问题相对应的可能的原因、理由或预测。在其他实施例中,解释组件还可以被配置为基于所标识的可能的原因、理由或预测来提供缓解建议、自动操作调整和/或执行其他合适的操作。

附图说明

图1是示出具有根据所公开的技术的实施例配置的诊断系统的计算框架的示意图。

图2是示出适合于图1的诊断系统并且根据所公开的技术的实施例的软件组件的框图。

图3和图4是分别示出根据所公开的技术的实施例的适合于图2的分析组件和解释组件的示例软件模块的框图。

图5是示出根据所公开的技术的实施例的执行操作诊断的过程的实施例的流程图。

图6是示出根据所公开的技术的实施例的生成操作模式的过程的实施例的流程图。

图7是示出根据所公开的技术的实施例的执行操作数据的解释的过程的实施例的流程图。

图8是示出根据所公开的技术的实施例的示例操作模式的示意图。

图9是示出根据所公开的技术的实施例的性能指标的示例图表的示意图。

图10是示出根据所公开的技术的实施例的具有增强的注释的示例操作模式的示意图。

图11a-11c是示出根据所公开的技术的实施例的操作问题与系统健康水平的示例相关性的示意图。

图12是适合于图1中的计算框架的某些组件的计算设备。

具体实施方式

下面描述用于计算系统中的诊断、故障排除或根本原因分析的系统、设备、组件、模块、例程和过程的某些实施例。在以下描述中,包括组件的具体细节以提供对所公开的技术的某些实施例的透彻理解。相关领域的技术人员也将理解,所公开的技术可以具有附加的实施例,或者可以在没有参考图1-12描述的实施例的若干细节的情况下实践。

如本文中使用的,术语“计算结构”通常是指具有通过通信网络以“weave”或其他合适的配置互连的多个节点的计算系统。计算结构中的“节点”通常是指计算元件。在某些实施例中,计算元件可以包括具有一个或多个计算处理器、存储器设备和/或外围设备的物理服务器。在其他实施例中,计算机元件可以包括具有虚拟化的处理器、存储器和/或存储设备的虚拟机或其他合适的虚拟化实体。物理计算机网络和/或一个或多个虚拟计算机网络可以互连计算结构的节点。

本文中还使用的术语“租户站点”通常是指由计算结构提供的支持各种用户软件应用的执行以便向用户或租户提供计算服务的分布式计算环境。租户站点可以被托管在计算结构的一个或多个节点上,并且可以在计算结构的节点之间可移动。在某些实施例中,租户站点可以包括一个或多个虚拟机。在其他实施例中,租户站点可以包括虚拟网络控制器和/或其他合适的组件。

如本文中使用的,术语“操作模式”通常是指在例如租户站点处观察到的操作的时间序列。例如,一个操作模式可以包括以下序列:接收用户查询、基于用户查询搜索数据库和向用户查询传输响应。可选地,操作模式还可以包括操作序列中的每对操作之间的时间间隔。在前述示例中,操作模式还可以包括在接收用户查询与搜索数据库之间的第一时间间隔(例如,20毫秒)以及在搜索数据库与传输响应之间的第二时间间隔(例如,1秒)。

本文中还使用的术语“性能指标”通常是指每个与计算系统的性能水平相对应的一个或多个操作参数。示例性能指标可以包括可用存储器的大小、数据高速缓存大小、网络利用百分比、一段时间内的服务请求的数目等。性能指标可以与一个或多个其他性能指标相关。在某些实施例中,可以为一对性能指标计算相关性系数。相关性系数可以具有用于指示一对性能指标是相关(例如,具有大约为1的值)还是不相关(例如,具有大约为-1的值)的值(例如,-1到1)。在其他实施例中,成对的性能指标可以以其他合适的方式相关。

如本文中使用的,对操作模式或性能指标的相关性的“注释”通常是指从例如计算结构或租户站点的开发者或管理员接收的输入。在某些实施例中,注释可以包括当特定的操作模式或性能指标的相关性被违反时的可能的原因、理由或预测。在其他实施例中,注释还可以包括针对违反的所建议的缓解或校正动作。例如,如果在接收用户查询之后的时段内没有执行数据库搜索,则在上述示例中可以向操作模式添加注释,即数据库服务器处于离线状态。本文中还使用的术语“操作简档”通常是指操作模式和/或性能指标与对应注释的相关性的数据记录。

在某些云计算环境中,云服务提供商可以向租户提供分布式计算设施或租户站点以提供期望的计算服务。但是,云服务提供商通常无法访问个体租户站点处的事件日志、性能指标或其他操作数据,因为租户可以控制对应的租户站点。因此,当租户针对服务中断或其他操作问题而请求云服务提供商的帮助时,云服务提供商可能没有足够或任何信息来诊断、排除故障或执行操作问题的根本原因分析。所公开的技术的若干实施例可以提供使得租户或云服务提供商能够有效地诊断、排除故障或执行操作问题的根本原因分析的诊断系统和框架,如下面更详细地描述的。

图1是示出具有根据所公开的技术的实施例配置的诊断系统的计算框架100的示意图。如图1所示,计算框架100可以包括通过计算机网络103互连的客户端设备102(分别被单独地标识为第一客户端设备102a和第二客户端设备102b)、计算结构104和诊断系统108。计算机网络103可以包括因特网、局域网、城域网、广域网和/或其他合适类型的网络。为了说明的目的,图1中示出了计算框架100的特定组件。在其他实施例中,计算框架100还可以包括附加的和/或不同的计算、联网或其他合适类型的组件。

客户端设备102每个可以包括台式计算机、膝上型计算机、平板计算机、智能电话和/或其他合适类型的计算设备。例如,如图1所示,第一客户端设备102a可以包括台式计算机。第二客户端设备102b可以包括膝上型计算机。在其他实施例中,客户端设备102还可以包括其他合适的硬件和/或软件组件。在任何前述实施例中,客户端设备102可以支持用户或租户101(分别被单独地标识为第一租户101a和第二租户101b)访问由计算结构104提供的对应租户站点142,如下面更详细地描述的。

如图1所示,计算结构104可以包括多个服务器106(分别被单独地标识为第一服务器106a和第二服务器106b),每个服务器106具有在操作上彼此耦合的处理器132、存储器134和输入/输出组件136。处理器132可以包括微处理器、现场可编程门阵列和/或其他合适的逻辑器件。存储器134可以包括被配置为存储从处理器132接收的数据以及针对处理器132的指令的易失性和/或非易失性介质(例如,rom;ram、磁盘存储介质;光存储介质;闪存设备、和/或其他合适的存储介质)和/或其他类型的计算机可读存储介质。输入/输出组件136可以被配置为从操作者和/或自动化软件控制器(未示出)接受输入并且向其提供输出。

第一服务器106a和第二服务器106b可以单独地在存储器134中包含指令,指令在由处理器132执行时引起个体处理器132提供管理程序140(单独地标识为第一管理程序140a和第二管理程序140b)和操作监测器141(单独地标识为第一操作监测器141a和第二操作监测器141b)。管理程序140和操作监测器141在图1中被示出为软件组件。然而,在其他实施例中,管理程序140和/或操作监测器141还可以包括固件和/或硬件组件。尽管管理程序140和操作监测器141在图1中被示出为分开的组件,但是在其他实施例中,操作监测器141可以是管理程序140或者在对应的第一服务器106a或第二服务器106b上执行的操作系统(未示出)的一部分。

管理程序140可以单独地被配置为生成、监测、终止和/或以其他方式管理被组织为租户站点142的一个或多个虚拟机144。例如,如图1所示,第一服务器106a可以提供分别管理第一租户站点142a和第二租户站点142b的第一管理程序140a。第二服务器106b可以提供分别管理第一租户站点142a'和第二租户站点142b'的第二管理程序140b。租户站点142每个可以包括与特定租户101相关联的多个虚拟机144。例如,第一服务器106a和第二服务器106b可以为第一租户101a托管租户站点142a和142a',并且为第二租户101b托管租户站点142b和142b'。每个虚拟机144可以执行对应的操作系统、中间件和/或应用。

还在图1中示出,计算结构104还可以包括跨多个主机106互连租户站点142a和142b的一个或多个虚拟网络146。例如,第一虚拟网络142a互连第一服务器106a和第二服务器106b处的第一租户站点142a和142a'。第二虚拟网络146b互连第一服务器106a和第二服务器106b处的第二租户站点142b和142b'。尽管单个虚拟网络146被示出为对应于一个租户站点142,但是在其他实施例中,多个虚拟网络146(未示出)可以被配置为对应于单个租户站点146。

操作监测器141可以被配置为监测相应租户站点142和/或计算结构104的操作数据112。在某些实施例中,操作数据112可以包括租户站点142或计算结构104的操作模式和/或性能指标。例如,操作数据112可以包括来自租户站点142和/或计算结构104的警告日志、事件日志、操作报告和/或其他合适的数据。在某些实施例中,操作监测器141、管理程序140或服务器106的其他合适的组件也可以将先前获取的操作数据112作为历史数据116存储在例如服务器106的存储器134中。然后历史数据116可以被提供给诊断系统108用于离线分析。在其他实施例中,操作监测器141可以被配置为将操作数据112传输到诊断系统108用于在线分析和/或监测。基于操作数据112和/或历史数据116,诊断系统108可以被配置为生成操作简档并且监测租户站点142和/或计算结构104的操作,如下面更详细地描述的。

如图1所示,诊断系统108可以包括在操作上彼此耦合的处理器142、存储器144和输入/输出组件146。处理器142可以包括微处理器、现场可编程门阵列和/或其他合适的逻辑器件。存储器144可以包括被配置为存储从处理器142接收的数据以及针对处理器142的指令(例如,用于执行下面参考图5-7讨论的方法的指令)的易失性和/或非易失性介质(例如,rom;ram、磁盘存储介质;光存储介质;闪存设备、和/或其他合适的存储介质)和/或其他类型的计算机可读存储介质。输入/输出组件136可以包括被配置为从操作者和/或自动化软件控制器(未示出)接受输入并且向其提供输出的显示器、触摸屏、键盘、鼠标、打印机和/或其他合适类型的输入/输出设备。

诊断系统108可以被配置为在离线或在线的基础上执行对操作数据112和/或历史数据116的分析。在一个实施例中,诊断系统108可以解析操作数据112并且识别租户站点142和/或计算结构104的操作模式。参考图8更详细地描述一个示例操作模式。在另一实施例中,诊断系统108可以从操作数据112中获取性能指标并且计算针对性能指标的相关性系数。参考图9更详细地描述性能指标的一个示例相关性。在另外的实施例中,诊断系统108还可以被配置为执行前述分析和/或其他合适的分析的组合。

诊断系统108还可以被配置为接收针对一个或多个所识别的操作模式或者性能指标的相关性的注释。注释可以与操作模式中的每个操作或操作模式中的一组操作相关联。类似地,注释可以与一个或多个性能指标的相关性相关联。参考图10更详细地描述接收针对操作模式的注释的一个示例。然后,操作模式和性能指标的相关性与对应的注释可以一起作为性能简档存储在例如数据库110(图2所示)中。

诊断系统108还可以被配置为基于所生成的性能简档来监测租户站点142和/或计算结构104的操作。例如,在某些实施例中,诊断系统108可以接收附加操作数据112并且对其执行分析以识别一个或多个附加的操作模式和/或性能指标的相关性。然后,诊断系统108可以将附加的操作模式和/或性能指标的相关性与性能简档中的那些相比较。

基于比较,诊断系统108还可以确定和/或量化租户站点142或计算结构104的健康水平。例如,在一个实施例中,可以在一时段中接收到第一数量(例如,100个)的用户查询。如果根据通常类似于性能简档中的那些操作模式的操作模式来处理所接收的第二数量(例如,99个)的用户查询,则诊断系统108可以被配置为基于第一数量和第二数量计算健康水平(例如,99%)。

在确定当前健康水平之后,在某些实施例中,诊断系统108可以被配置为在当前健康水平下降至阈值以下的情况下发出警告或生成事件日志。例如,诊断系统108可以生成向管理员报告违反和/或健康水平的电子邮件、文本消息或其他合适的消息。在其他实施例中,诊断系统还可以被配置为至少部分基于与操作模式和/或性能指标的相关性相关联的注释来提供用于缓解违反或改善健康水平的校正动作的建议作为结果114。例如,结果114可以包括建议,即增加分配给租户101的网络带宽、向特定虚拟机144或租户站点142分配更多的存储器空间和/或其他合适的动作。

在另外的实施例中,诊断系统108可以被配置为基于报告的操作问题和观察到的违反来进行根本原因分析。在一个实施例中,诊断系统108可以被配置为在一时段上聚合操作问题(例如,请求超时、高速缓存服务器不可用等)以生成操作问题时间线。诊断系统108还可以被配置为在相同的时段上聚合观察到的违反以生成系统问题时间线。然后,诊断系统108可以将所生成的操作问题时间线与系统问题时间线对准、并置或比较,以将观察到的操作问题与违反相关。在标识与操作问题相关的违反之后,诊断系统108可以被配置为基于与违反相关联的注释来确定与观察到的操作问题有关的根本原因和/或提供缓解建议。下面参考图11a-11c更详细地描述根本原因分析的一个示例。

在又一些实施例中,诊断系统108还可以被配置为预测租户站点142和/或计算结构104的操作的恶化、恢复、重复或其他未来状况。例如,在一个实施例中,诊断系统108可以基于操作模式或性能指标的相关性的违反来预测网络或服务器故障即将来临。在另一实施例中,诊断系统108还可以预测,尽管检测到违反,但是操作可能会返回到正常。在又一些实施例中,诊断系统108可以被配置为自动调整租户站点142的操作和/或计算结构104的操作。例如,诊断系统108可以被配置为请求计算结构104的结构控制器(未示出)向特定租户站点142分配附加网络带宽、存储器空间或其他资源。

在操作中,租户101可以经由计算机网络103单独地访问具有客户端设备102的对应的租户站点142处的计算设施。在操作期间,计算结构104的操作监测器141或其他合适的组件可以获取和/或记录操作数据112。操作数据112或任何先前获取的历史数据116可以被提供给诊断系统108用于分析。在某些实施例中,诊断系统108可以执行对历史数据116的离线分析以生成如上所述的性能简档。在其他实施例中,诊断系统108可以执行对操作数据112的在线分析以生成性能简档。在另外的实施例中,诊断系统108还可以执行对操作数据112的附加的在线或离线分析以在连续或周期性的基础上更新和/或以其他方式修改性能简档。如上所述,诊断系统108然后可以基于所生成的性能简档来执行对租户站点142和/或计算结构104的操作监测。

即使诊断系统108被示出为与图1中的计算结构104分开,但是在其他实施例中,诊断系统108可以是计算结构104的一部分。例如,诊断系统108可以被托管在计算结构104中的一个或多个服务器106上。在另外的实施例中,诊断系统108也可以是租户站点142或管理程序140的一部分。此外,诊断系统108的存储器144可以包含在由处理器142执行时引起处理器142提供用于执行诊断系统108的前述功能中的一个或多个的各种软件组件的指令。参考图2更详细地描述这样的软件组件的一个示例。

图2是示出了适合于图1的诊断系统并且根据所公开的技术的实施例的软件组件的框图。在图2中和在本文中的其他附图中,个体软件组件、对象、类、模块和例程可以是以c、c++、java和/或其他合适的编程语言编写为源代码的计算机程序、过程或进程。组件可以包括但不限于一个或多个模块、对象、类、例程、属性、进程、线程、可执行文件、库或其他组件。组件可以是源代码或二进制形式。组件可以包括以下各方面:在编译之前的源代码(例如,类、属性、过程、例程)、编译的二进制单元(例如,库、可执行文件)或在运行时实例化和使用的构件(例如,对象、进程、线程)。

系统内的组件可以在系统内采取不同的形式。作为一个示例,包括第一组件、第二组件和第三组件的系统可以但不限于包括第一组件是以源代码的属性、第二组件是二进制编译的库并且第三组件是在运行时创建的线程的系统。计算机程序、过程或进程可以被编译成对象、中间或机器代码,并且被呈现用于由个人计算机、网络服务器、膝上型计算机、智能电话和/或其他合适的计算设备的一个或多个处理器执行。同样,组件可以包括硬件电路。本领域普通技术人员将认识到,硬件可以被认为是固化的软件,并且软件可以被认为是液化的硬件。仅举一个示例,组件中的软件指令可以被烧录到可编程逻辑阵列电路,或者可以被设计为具有适当的集成电路的硬件电路。同样,硬件可以通过软件来模拟。源、中间和/或目标代码和相关联的数据的各种实现可以存储在计算机存储器中,包括只读存储器、随机存取存储器、磁盘存储介质、光存储介质、闪存设备和/或除了传播信号之外的其他合适的计算机可读存储介质。

如图2所示,诊断系统108的处理器142可以包括在操作上彼此耦合的分析组件152、增强组件154和解释组件156。尽管图2中示出了处理器142的特定组件,但是在其他实施例中,处理器142还可以包括输入/输出、联网、通信和/或其他合适类型的组件。在另外的实施例中,分析组件152、增强组件154或解释组件156中的至少一个可以由除了诊断系统108的处理器142之外的其他处理组件(例如,图1中的虚拟机144)提供。

如图2所示,分析组件152、增强组件154或解释组件156还可以在操作上耦合到包含操作简档122的记录的数据库110。在一个实施例中,数据库110可以驻留在诊断系统108的存储器144(图1)中。在其他实施例中,数据库110可以驻留在计算结构104(图1)的网络存储服务器(未示出)和/或其他合适的存储组件、或者外部计算系统中。

如图2所示,分析组件152可以被配置为接收和处理与租户站点142(图1)或计算结构104的至少一部分相关的操作数据112和/或历史数据116。在某些实施例中,分析组件152可以被配置为基于例如包含操作类型的列表的用户输入117(图3所示)来识别被包含在操作数据112和/或历史数据116中的某些计算、网络或其他适当类型的操作。基于所识别的操作,分析组件152然后可以确定操作的一个或多个序列以及其间的时间间隔。

在其他实施例中,分析组件152还可以被配置为识别被包含在操作数据112和/或历史数据116中的一个或多个性能指标。分析组件152然后可以确定成对的性能指标之间的一个或多个相关值。基于相关值,分析组件152可以指示第一操作指标(例如,可用存储器大小)是否与第二操作指标(例如,高速缓存数据大小)相关。分析组件152然后可以将所确定的一个或多个操作序列和性能指标的相关性作为操作模式120提供给增强组件154用于进一步处理。下面参考图3更详细地描述适合于分析组件152的软件模块的一个示例。

增强组件154可以被配置为接收注释118并且将所接收的注释118与操作模式120中的对应的操作和/或相关性相关联。在一个实施例中,注释118可以包括可以导致违反操作模式120中的操作序列的可能原因。例如,注释118可以标识网络流量是所接收的用户请求的排队的延迟的原因。在另一实施例中,注释118还可以包括可以导致违反操作模式120中的性能指标的所识别的相关性的可能理由。例如,注释118可以标识鉴于通常不变的高速缓存数据大小的可用存储器的连续减少的可能理由是存储器泄漏。在另外的实施例中,注释118还可以包括可能的缓解、补救或与违反操作模式120中的操作序列或性能指标的相关性相关联的其他合适的数据。增强组件154可以被配置为组合具有对应的注释118的操作模式120作为要存储在数据库110中和/或要提供给解释组件156的操作简档122。

在某些实施例中,解释组件156可以被配置为实时地接收操作数据112并且实时地监测租户站点142或计算结构104的操作。在其他实施例中,解释组件156还可以被配置为接收历史数据116并且分析针对操作问题的潜在原因。在另外的实施例中,解释组件156可以被配置为以其他合适的方式分析操作数据112和/或历史数据116。

在任何前述实施例中,解释组件156可以被配置为从操作数据112和/或历史数据116确定一个或多个操作模式。然后,解释组件156可以将所确定的操作模式与操作简档122中的对应的操作模式相比较。响应于确定违反操作模式,解释组件156可以被配置为查找相关联的注释118以提供理由、根本原因和/或缓解建议。在其他实施例中,解释组件156还可以被配置为基于检测到的操作模式的违反的数目、操作的总数和/或其他合适的参数来计算租户站点142或计算结构104的健康水平。解释组件156还可以接收所报告的租户问题113,其包括租户101(图1)经历的一个或多个操作问题。然后,解释组件156可以在一时段上聚合租户问题113,并且将聚集的租户问题113与在相同时段上检测到的操作模式的违反相比较。解释组件156可以提供针对所报告的租户问题113的理由、根本原因和/或缓解建议。下面参考图4更详细地描述适合于解释组件156的软件模块的一个示例。

图3是示出根据所公开的技术的实施例的适合于图2的分析组件152的示例软件模块的框图。如图3所示,分析组件152可以包括在操作上彼此耦合的输入模块160、计算模块166、报告模块162和模式模块164。尽管图3中示出了特定模块,但是在其他实施例中,分析组件152还可以包括输出、网络或其他合适类型的模块。

输入模块160可以被配置为接收操作数据112、历史数据116和用户输入117。输入模块160还可以被配置为识别一个或多个事件、问题、例外、状态、性能指标或者被包含在操作数据112和/或历史数据116中的其他合适的操作条件。例如,在一个实施例中,输入模块160可以基于被包含在用户输入117中的一组规则来生成操作条件。这组条件规则可以包括一个或多个关键字、字符串或其组合。例如,示例关键字或字符串包括“高速缓存服务停止”、“无法创建高速缓存实例”、“网络超时”等。与高速缓存操作事件相关的一个示例条件规则可以如下:

在上述示例中,当在操作数据112和/或历史数据116中识别出状态名称“cacheinstanceissue”时,可以识别出用于创建高速缓存实例失败的模式。基于这组条件规则,输入模块160然后可以扫描操作数据112和/或历史数据116以生成具有对应的时间戳的一组操作特征。在其他实施例中,上述功能也可以经由机器学习、正则表达式或其他合适的技术来完成。

输入模块160还可以被配置为基于一组健康规则来识别系统健康从例如健康状态到不健康状态的转变,或反之亦然。这组健康规则可以包括一个或多个健康条件。例如,在一个实施例中,以下健康规则示出包括高速缓存服务被启动的事件的健康条件:

如果这个健康条件被满足,则输入模块160可以被配置为识别系统健康从不健康状态到健康状态的转变。在另一示例中,输入模块160可以指示当满足cpu处于满负荷下的健康条件时从健康状态到不健康状态的转变。

输入模块160还可以被配置为将某些性能指标映射到系统健康状态。例如,在一个实施例中,当可用存储器大小小于阈值(例如,50mb);每秒存储器页面错误的数目超过另一阈值(例如,每秒600);等等时,输入模块160可以指示从健康状态到不健康状态的转变。在其他实施例中,输入模块160还可以将其他性能指标映射到其他合适的系统健康状态。

计算模块166可以包括被配置为执行某些类型的计算以支持其他模块的操作的例程。在一个示例中,计算模块166可以包括累加操作条件或健康状态的转变的数目的计数器。在另一示例中,计算模块166可以包括计算持续不健康状态的持续时间的累加例程。在另外的示例中,计算模块166可以被配置为计算一对性能指标之间的相关性系数。在另外的示例中,计算模块166可以包括线性回归、多项式回归、内插、外推和/或其他合适的子例程。

模式模块164可以被配置为确定操作条件和/或性能指标的相关性的时间序列。在一个实施例中,模式模块164可以基于来自输入模块160的经处理的操作数据112和/或历史数据116来识别事件序列。用于确定时间序列的一个示例例程(“temporalrule”)可以如下:

(<temporalrule>

<ruleevents>

<a:string>put</a:string>

<a:string>replicationqueued</a:string>

<a:string>pending</a:string>

<a:string>replicationacked</a:string>

</ruleevents>

<timetonexevent>

<a:long>0</a:long>

<a:long>5</a:long>

<a:long>50</a:long>

<a:long>100</a:long>

</timetonexevent>

<violationclasses>

<a:string>connection$networkbottlenecks</a:string>

<a:string>toomuchload$contentions$gcissues</a:string>

<a:string>networkbottlenecks$wcfissues</a:string>

<a:string>putissues$networkbottlenecks$reconfiguration</a:string>

</violationclasses>

</temporalrule>)

(<时间规则>

<规则事件>

<a:字符串>放置</a:字符串>

<a:字符串>复制排队</a:字符串>

<a:字符串>未决</a:字符串>

<a:字符串>复制确认</a:字符串>

</规则事件>

<到下一事件的时间>

<a:长整型>0</a:长整型>

<a:长整型>5</a:长整型>

<a:长整型>50</a:长整型>

<a:长整型>100</a:长整型>

</到下一事件的时间>

<违反类>

<a:字符串>连接$网络瓶颈</a:字符串>

<a:字符串>负载太多$竞争$垃圾收集问题</a:字符串>

<a:字符串>网络瓶颈$wcf问题</a:字符串>

<a:字符串>放置问题$网络瓶颈$重新配置</a:字符串>

</违反类>

</时间规则>)

以上示例例程可以从租户站点142(图1)或计算结构104(图1)的一个或多个成功的压力、功能或性能运行中自动得出。如上所示,“ruleevent”例程被配置为识别在操作数据112和/或历史数据116中指示的事件“put”、“replicationqueued”、“pending”和“replicationacked”的序列。“timetonexevent”例程被配置为确定以例如毫秒或秒为单位的上述事件之间的时间间隔。上面的示例指定“put”到“replicationqueued”之间的时间间隔不应当超过5毫秒。“violationclass”例程被配置为在违反以上识别的序列时定义某些违反类。

在另一实施例中,模式模块164可以被配置为基于例如来自计算模块166的所计算的相关性系数来指示成对的性能指标的相关性。例如,在一个实施例中,相关性模块162可以基于大约为-1的相关性系数来指示可用存储器大小与数据高速缓存大小反向相关。在另一示例中,模式模块164可以基于大约为1的相关性系数来指示网络利用水平与服务请求的数目相关。用于相关性能指标的一个示例例程可以如下:

如上所示,示例例程定义了性能指标“网络带宽使用”、“高速缓存带宽使用”和“平均二次响应时间”应当与在(-1到1)的范围内的相关性系数值0.998相关。如果违反了这种相关性,则违反与违反类“networkbottlenecks$externalprocessusage”相关联。

模式模块164然后可以将操作条件和/或性能指标的相关性的序列组合成以xml文件、电子表格或其他合适类型的数据文件的操作模式120的记录。模式模块164还可以被配置为将操作模式120提供给增强组件154。

然后,增强组件154可以将注释118与操作模式120相关联以生成操作简档122。在一个实施例中,每个健康规则可以与表示违反类的注释118相关联,从而表明违反规则的理由。理由可以是特定于用户软件应用的,或者对于计算结构104中的分布式计算环境是通用的。例如,高速缓存操作可以具有诸如过度驱逐、放置问题、存储器清理问题等失败理由。示例通用理由可以包括抖动(trash)、系统正在分页、低ram、网络节流等。上面的示例序列可以如下与注释118相关联:

<a:string>toomuchload$contentions$gcissues</a:string>

(<a:字符串>负载太多$竞争$垃圾收集问题</a:字符串>)

这个前面的注释118指示,如果在“replicationqueued”(时间序列中的第二个事件)存在对上面的示例序列的违反,则理由之一是负载太多、竞争或垃圾收集问题(“gcissues”)。

当违反健康规则时,可以用对应的缓解建议来指示某个健康状态。例如,如果存储器页面错误的数目超过阈值,则可以指示存储器抖动,并且避免存储器抖动的缓解建议是增加存储器分配。在其他实施例中,每个违反类可以与多个缓解建议相关联,多个缓解建议可以基于有效性、成本或其他合适标准的排序被提供给检测到的健康状态。例如,上面的每个失败理由可以与校正操作相关联,校正操作可以包括对用户要做什么和/或采取校正动作(例如,增加网络带宽限制,终止不需要的应用等)的自动化系统(例如,与计算结构104相关联的结构控制器)的输入的描述。

报告模块162可以被配置为总结在分析操作数据112和/或历史数据116时发现的问题。报告模块162可以基于例如服务器侧问题、客户端侧问题或者基于其他合适的标准来聚合所识别的操作条件。例如,报告模块162可以被配置为示出在特定时段期间检测到的问题,诸如例如,请求超时的百分比、串行化例外、复制队列满等。在其他实施例中,报告模块162也可以提供相同时段中的系统健康状况的总结。例如,报告模块162可以标识:已经标识出崩溃、已经遇到网络问题、在一时段上cpu处于满负荷下等。报告模块162还可以标识系统健康何时从健康转变为不健康,或反之亦然。例如,报告模块162可以如下将系统健康表示为状态机:

·从下午10:10到10:15的cpu使用高;以及

·从下午10:13到10:20pm发生分区移动。

基于来自报告模块162的输出,管理员或操作者可以发现潜在的性能问题,而无需搜遍事件日志的大量数据。

图4是示出根据所公开的技术的实施例的适合于图2的解释组件156的示例软件模块的框图。解释组件156可以被配置为离线或在线系统。例如,在某些实施例中,解释组件156可以被配置为接收和处理操作数据112的离线系统。在其他实施例中,解释组件156也可以被配置为作为用户软件应用或与用户软件应用并行运行的分开的服务的一部分的在线系统。

如图4所示,解释组件156可以包括在功能和/或结构上与图3中的分析组件152的模块总体上类似的某些模块。因此,图4中的类似模块用类似的附图标记来标识。在某些实施例中,解释组件156可以包括在操作上彼此耦合的输入模块160、计算模块166、分析模块172和控制模块174。在其他实施例中,解释组件156还可以包括其他合适的模块和/或例程。

在某些实施例中,输入模块160和计算模块166可以协作以基于接收到的操作数据112来确定一个或多个操作模式和/或性能指标的相关性。分析模块172可以被配置为将所确定的操作模式和/或性能指标的相关性与操作简档122中的对应的操作模式和/或性能指标的相关性相比较。然后,分析模块172可以确定是否存在对操作模式和/或相关性的任何违反。基于所确定的违反(如果有的话),分析模块172可以标识这样的违反的理由,并且基于与违反相关联的注释118(图3)来提供校正措施的指导或建议。

例如,在以上参考图3讨论的示例序列中,由于没有看到replicationcompleted(复制完成),所以违反了示例序列(即,put、replicationqueued、pending和replicationcompleted)。此外,还检测到违反了网络带宽使用、高速缓存带宽使用和平均二次响应时间之间的相关性。基于上述违反,分析模块172可以确定针对这些违反的理由可能是由于网络瓶颈。分析模块172然后可以将分析结果提供给控制模块174,控制模块174被配置为生成结果114,结果114提供例如违反的标识和校正动作的任何建议。例如,在上述示例中,结果114可以建议减少负载或增加网络容量。

在其他实施例中,分析模块172还可以被配置为在一时段上聚合租户问题113(例如,请求超时、高速缓存服务器不可用等)以生成操作问题时间线。分析模块172还可以被配置为在相同的时间段上聚合观察到的违反以生成系统问题时间线。然后,分析模块172可以将所生成的操作问题时间线与系统问题时间线对准、并置或比较,以将观察到的操作问题与违反相关。在标识与操作问题相关的违反之后,诊断系统108可以被配置为基于与违反相关联的注释来确定与观察到的操作问题有关的根本原因和/或提供缓解建议。

图5是示出根据所公开的技术的实施例的执行操作诊断的过程200的实施例的流程图。尽管以下参考图1的计算框架100和图2-4的软件组件来描述过程200,但是在其他实施例中,过程200可以在其他合适的计算系统、设备或框架中实现。

如图5所示,过程200可以包括在阶段202基于操作数据112和/或历史数据116(图1)生成操作模式。在某些实施例中,操作模式可以包括事件的时间序列。在其他实施例中,操作模式还可以包括时间序列中的连续事件之间的时间间隔。在另外的实施例中,操作模式还可以包括计算系统的两个或更多个性能指标的相关性。下面参考图6更详细地描述用于生成操作模式的示例操作。

如图5所示,过程200还可以包括在阶段204生成操作简档。操作简档可以包括从阶段202生成的操作模式以及从开发者、管理员或其他合适的实体接收的相关联的注释。过程200可以包括在阶段206基于操作简档来解释操作数据。解释操作数据可以从对应的计算系统在线或离线地执行。下面参考图7更详细地描述用于解释操作数据的示例操作。

图6是示出根据所公开的技术的实施例的生成操作模式的过程204的实施例的流程图。如图6所示,过程204可以包括在阶段210接收历史数据。然后,过程204可以包括在阶段212解析历史数据。解析历史数据可以通过例如基于用户提供的规则来标识事件、条件、性能指标来执行,如上面参考图2和3所描述的。然后,过程204可以包括在阶段214识别时间序列,并且在阶段216将性能指标相关,如上面参考图2和3所描述的。然后,过程204可以包括在阶段218输出操作模式。操作模式可以包括分别在阶段214和216生成的时间序列和/或性能指标的相关性。

图7是示出根据所公开的技术的实施例的执行操作数据的解释的过程206的实施例的流程图。如图7所示,过程206可以包括在阶段220接收操作数据。接收操作数据可以在在线或离线的基础上。然后,过程206可以包括在阶段222确定系统健康水平。在一个实施例中,确定系统健康水平包括确定操作简档中的操作模式或性能指标的相关性的一个或多个违反。在其他实施例中,确定系统健康水平还可以包括基于具有违反的操作的数目和一时间段中的操作的总数来计算违反比率。

然后,过程206可以包括在阶段224将系统健康水平与所报告的租户问题相关。在一个实施例中,可以通过将系统健康水平的时间线与租户问题相比较来将系统健康水平与租户问题相关。在其他实施例中,可以通过线性回归、手动比较和/或其他合适的技术来将系统健康水平与租户问题相关。然后,过程206可以包括在阶段226输出用于租户问题的可能的原因和/或校正建议。如上面参考图1-4所述,可以通过查找与检测到的违反相对应的注释来确定可能的原因和/或校正建议。

图8是示出根据所公开的技术的实施例的在正常操作条件下的计算系统的示例操作模式300的示意图。如图8所示,操作模式300可以包括操作、事件或状态的一个或多个序列。在所示的实施例中,操作模式300可以包括具有放置操作302、排队操作304和未决状态306的第一序列。操作模式300还可以包括具有put操作302、排队操作304、复制请求(repl_req)310、复制完成状态312、提交状态308和确认(ack)316的第二序列。操作模式300还可以包括成对的操作或状态之间的一个或多个时间间隔。例如,如图8所示,放置操作302与未决状态306之间的时间间隔是5毫秒。放置操作302与提交状态308之间的另一时间间隔对于大小高达100kb的有效载荷是50毫秒。如下面参考图10更详细地描述的,序列的违反或者序列的一个或多个时间间隔可以与一个或多个注释相关联。

图9是示出图表400的示意图,图表400示出了根据所公开的技术的实施例的示例性能指标。如图9所示,示例图表400示出了随着时间的可用存储器、高速缓存数据大小、网络使用和服务请求度量的图表。如参考图2和3更详细地讨论的,两个或更多个性能指标可以彼此相关。例如,可用存储器似乎与高速缓存数据大小反向相关。服务请求度量似乎与网络使用相关。

图10是示出根据所公开的技术的实施例的具有增强的注释的示例操作模式的示意图。如图10所示,一个或多个潜在的理由、原因或校正建议可以与序列的违反相关联。例如,如果放置操作302之后没有排队操作304,则注释可以与这个条件相关联以指示可能的原因可以包括在网络中负载竞争太多。在另一示例中,如果提交操作308之后没有确认316,则可以将另一注释与这个条件相关联以指示可能的原因是放置操作的问题,并且校正建议是修改放置操作的配置。

图11a-11c是示出根据所公开的技术的实施例的用于将操作问题与系统健康水平相关的示例界面的示意图。如图11a所示,可以聚合系统健康水平并且在时间线上绘制为块或其他合适的表示。图11a所示的示例健康水平包括网络节流和cpu崩溃。聚合的系统健康水平也可以扩展,以示出系统简档的细节和对应的严重性。如图11b所示,诸如租户101(图1)所经历的操作问题也可以被聚合并且绘制在时间线上。类似地,操作问题也可以扩展,以示出更多的细节和对应的严重性。如图11c所示,图11a和图11b中的两个时间线可以对准、并置或以其他方式相比较,以将操作问题与系统健康水平相关。如以上参考图1-4更详细地描述的,基于这样的比较,可以提供针对操作问题的可能原因或理由和校正建议。

图12是适合于图1中的计算框架100的某些组件的计算设备800。例如,计算设备800可以适合于图1的客户端设备102、服务器106或诊断系统108。在非常基本的配置802中,计算设备800通常包括一个或多个处理器804、和系统存储器806。存储器总线808可以用于在处理器804与系统存储器806之间的通信。

取决于期望的配置,处理器804可以是任何类型,包括但不限于微处理器(μp)、微控制器(μc)、数字信号处理器(dsp)或其任何组合。处理器804可以包括一个或多个级别的高速缓存(诸如一级高速缓存810和二级高速缓存812)、处理器内核814和寄存器816。示例处理器内核814可以包括算术逻辑单元(alu)、浮点单元(fpu)、数字信号处理内核(dsp内核)或其任何组合。示例存储器控制器818也可以与处理器804一起使用,或者在一些实现中,存储器控制器818可以是处理器804的内部部分。

取决于期望的配置,系统存储器806可以是任何类型,包括但不限于易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或其任何组合。系统存储器806可以包括操作系统820、一个或多个应用822、和程序数据824。程序数据824可以包括例如操作简档122s。图8中通过内部虚线内的那些组件示出了这个所描述的基本配置802。

计算设备800可以具有附加的特征或功能以及附加的接口,以支持基本配置802与任何其他设备和接口之间的通信。例如,总线/接口控制器830可以用于支持基本配置802与一个或多个数据存储设备832之间经由存储接口总线834的通信。数据存储设备832可以是可移除存储设备836、不可移除存储设备838或其组合。可移除存储设备和不可移除存储设备的示例包括诸如软盘驱动器和硬盘驱动器(hdd)等磁盘设备、诸如光盘(cd)驱动器或数字多功能盘(dvd)驱动器等光盘驱动器、固态驱动器(ssd)和磁带驱动器等。示例计算机存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。

系统存储器806、可移除存储设备836和不可移除存储设备838是计算机可读存储介质的示例。计算机可读存储介质包括一个或多个存储硬件或设备,其示例包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或者可以用于存储期望的信息并且可以由计算设备800访问的任何其他介质。任何这样的计算机可读存储介质可以是计算设备800的一部分。术语“计算机可读存储介质”排除了传播的信号和通信介质。

计算设备800还可以包括用于支持经由总线/接口控制器830从各种接口设备(例如,输出设备842、外围设备接口844和通信设备846)到基本配置802的通信的接口总线840。示例输出设备842包括可以被配置为经由一个或多个a/v端口852与诸如显示器或扬声器等各种外部设备通信的图形处理单元848和音频处理单元850。示例外围设备接口844包括可以被配置为经由一个或多个i/o端口858与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如,打印机、扫描仪等)等外部设备通信的串行接口控制器854或并行接口控制器856。示例通信设备846包括可以被布置为支持经由一个或多个通信端口864通过网络通信链接与一个或多个其他计算设备862的通信的网络控制器860。

网络通信链接可以是通信介质的一个示例。通信介质通常可以通过计算机可读指令、数据结构、程序模块或以调制数据信号(诸如载波或其他传输机制)的其他数据来实施,并且可以包括任何信息传递介质。“调制的数据信号”可以是使得其一个或多个特性以能够在信号中对信息进行编码方式被设置或改变的信号。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接等有线介质、以及诸如声学、射频(rf)、微波、红外和其他无线介质等无线介质。本文中使用的术语“计算机可读介质”可以包括存储介质和通信介质。

计算设备800可以被实现为诸如蜂窝电话、个人数据助理(pda)、个人媒体播放器设备、无线web手表设备、个人头戴式耳机设备、专用设备、或包括上述功能中的任何一种的混合设备等小型便携式(或移动)电子设备的一部分。计算设备800还可以被实现为个人计算机,包括膝上型计算机和非膝上型计算机配置两者。

上面为了说明的目的描述了本技术的具体实施例。然而,可以在不偏离前述公开的情况下进行各种修改。另外,一个实施例的很多元素可以与其他实施例组合,作为其他实施例的元素的补充或代替。因此,除了所附权利要求之外,本技术不受限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1