云计算架构中的计算资源泄漏的检测的制作方法

文档序号:17286431发布日期:2019-04-03 03:36阅读:277来源:国知局
云计算架构中的计算资源泄漏的检测的制作方法

服务提供商可以实现云计算架构以向客户提供服务。通常,云计算架构包括大量物理计算设备。在一些情形中,云计算架构可以包括数十万个物理计算设备(或者数百万或更多),这些物理计算设备可以跨数据中心中的不同物理位置布置。每个物理计算设备可以运行一组服务或代理以用于基础设施管理目的。在物理计算设备中运行的服务实例或代理实例的数量可以是数百万。云计算架构的物理计算设备可以主控虚拟机或容器。在各种实现中,每个物理计算设备可被用来实现一个或多个虚拟机或容器。因此,在一些实例中,被包括在云计算架构中的虚拟机的数量可以是数百万。每个虚拟机或容器可以运行一组客户服务,客户服务实例的数量可以是数千或更多。

基础设施服务/代理实例或客户服务实例可以利用多个计算资源来执行与向客户提供服务相关的操作。例如,或者在云计算架构的物理计算设备上执行的其他软件组件(诸如操作系统的实例)可以利用处理器周期、易失性存储器存储空间、非易失性存储器存储空间、网络容量等来向客户提供服务。在一些实例中,物理计算设备的软件组件所使用的计算资源可以相对慢的方式增加,并且与通常用于向服务提供商的客户提供服务的计算资源不成比例。在一些情形中,计算资源的利用率的增加可能由软件缺陷造成,例如,来自计算操作系统的已分配存储器或句柄在正常使用之后不被释放。在云计算架构的物理计算设备上执行的软件组件对计算资源的不成比例的使用可能影响云计算架构的性能并且导致在向服务提供商的客户提供服务时的中断。

概述

描述了用于检测数百万个云服务实例的计算资源使用的缓慢增加模式的技术和系统。在许多情形中,此类模式指示由软件缺陷造成的资源泄漏,例如,一块存储器在正常使用之后没被释放。在一些实现中,第一数据可被获得,该第一数据指示云计算架构中所包括的一组计算设备对诸如非易失性存储器、易失性存储器、处理器周期或网络资源之类的计算资源的使用。第一数据可被用来确定参考数据,该参考数据可以包括该组计算设备对计算资源的使用的值的分布。第二数据也可以被收集,该第二数据指示该组计算设备在随后的时间帧期间对计算资源的使用。可以针对参考数据评估第二数据,以确定指示计算资源的使用的增加模式的一个或多个条件是否被满足。一个或多个校正动作可以至少部分地基于检测到计算资源的使用的异常增加模式来被标识。另外,一个或多个用户界面可以提供关于与计算资源的泄漏相关联的计算设备的信息和/或指示由计算设备执行的可能与计算资源的泄漏相关联的软件组件的信息。

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

附图简述

参考附图来阐明详细描述,附图中,附图标记最左边的数字标识该附图标记首次出现的附图。在相同或不同附图中使用同一附图标记指示类似或相同的项或特征。

图1是用于检测计算资源的泄漏的示例环境的图。

图2是用于检测计算资源的泄漏的附加示例环境的图。

图3解说了用于组织和聚集指示云计算架构的计算设备对计算资源的使用的数据的示例过程的框架。

图4是用于确定计算资源泄漏的持续时间的示例过程的流程图。

图5是用于确定计算资源泄漏的分数并确定用于减轻计算机资源泄漏的校正动作的示例过程的流程图。

图6是示出计算资源的使用的值随时间的变化的图。

图7是解说用于检测云计算架构中的计算资源的泄漏的示例系统的框图。

图8是用于检测云计算架构中的计算资源的泄漏的第一示例过程的流程图。

图9是用于检测云计算架构中的计算资源的泄漏的第二示例过程的流程图。

图10是指示在云计算架构中执行的软件组件对计算资源的使用的第一示例用户界面。

图11是指示在云计算架构中执行的软件组件对计算资源的使用的第二示例用户界面。

图12是指示在云计算架构中执行的软件组件对计算资源的使用的第三示例用户界面。

图13是解说能够实现检测云计算架构中的计算资源的泄漏的各方面的示例分布式计算环境的示意图。

图14描绘了能够执行本文中所描述的用于实现云计算架构中的计算资源的泄漏的检测的软件组件的示例分布式计算环境。

详细描述

本文中所描述的是用于检测云计算架构中增加的计算资源使用的模式的系统和过程。在一些情形中,计算资源泄漏可以在该计算资源泄漏已经发生达阈值时间段时被标识。此类计算资源泄漏的模式可以指示计算资源泄漏的可能性。具体而言,本文中所描述的系统和过程可以比传统系统和过程更准确地标识计算资源泄漏。

在特定实现中,服务提供商可以使用云计算架构的计算资源向客户提供服务。对云计算架构的各部分所作的计算资源使用的检测可以提供以下指示:云计算架构的各部分所使用的计算资源可以大于被用来向客户提供服务的计算资源的典型量。例如,本文中所描述的系统可以确定计算资源的使用模式可以增加并且大于计算资源的典型使用模式达至少阈值时间段。对计算资源的增加的使用可导致云计算架构的各部分的性能降低。云计算架构的性能的降低可导致被提供给服务提供商的客户的服务的中断。

服务提供商的云计算架构可以包括多个物理计算设备,该多个物理计算设备主控多个虚拟机以向服务提供商的客户提供服务。如本文中所使用的,术语“虚拟机”指代物理计算环境的软件实现。在一些情形中,虚拟机的多个实例可以在单个物理机上执行。附加地,物理计算设备的群集可被用来为服务提供商的客户主控虚拟机的多个实例。云计算架构的物理计算设备还可以执行软件组件的各实例以向服务提供商的客户提供服务。软件组件可以包括基础设施服务/代理的实例和/或客户服务实例。在一些情形中,基础设施服务/代理的多个实例、多个客户服务实例、或两者可以在单个物理计算设备上执行。

服务提供商可以从客户获得关于计算服务的多个规范,并且将虚拟机的多个实例配置成向客户提供计算服务。在一些情形中,在向客户提供计算服务的过程中,一个或多个计算资源的使用可以增加到高于用于实现客户规范的预期使用。例如,实现基础设施服务/代理的实例、客户服务实例、或被用来向客户提供规范的其他软件组件的物理计算设备上所分配的随机存取存储器(ram)的量可以增加超过ram使用的阈值量。在另一示例中,由实现被用来向客户提供规范的虚拟机的实例的物理计算设备所使用的处理器周期的量可以增加超过处理时间的阈值量。

在特定情况下,计算资源的高于预期使用的增加的使用可以在本文中称为计算资源“泄漏”或计算资源的“泄漏”。在一些场景中,计算资源泄漏可能由以下导致:计算资源被分配用于基础设施服务/代理的一个或多个实例、客户服务实例的一个或多个实例、或用来执行一个或多个操作的物理计算设备,但是计算资源并不响应于一个或多个操作的完成而被解除分配。当计算资源未被解除分配达一时间段时,计算资源的使用可以增加到影响一个或多个虚拟机、一个或多个物理计算设备、或两者的操作的水平。

在本文中所描述的各实现中,描述了监视云计算架构中的计算资源的使用以标识其中计算资源的使用已偏离计算资源的预期使用的情况的系统和技术。在特定实现中,系统可以在一时间段内从云计算架构的多个物理计算设备收集指示物理计算设备对一个或多个计算资源的使用的数据。该数据可被用来产生参考数据,该参考数据可以用作物理计算设备的预期计算资源使用的基线。归因于各组物理计算设备之间的配置中的差异、由各组物理计算设备执行的软件中的差异、由各组物理计算设备实现的虚拟机中的差异、各组物理计算设备的工作负载中的差异、或其组合,基线数据对于不同的各组物理计算设备而言可以是不同。

当云计算架构的物理计算设备收集关于物理计算设备对计算资源的使用的数据时,可以参考基线数据对计算资源使用数据进行分析,以确定表征正常使用模式的一组参数,该组参数将被进一步用于检测是否正在发生计算资源的泄漏。一个或多个条件可被指定以至少部分地基于基线数据指示计算资源的泄漏。本文中所描述的技术和系统涉及相对于指示计算设备对计算资源的基线使用的参考数据来评估从云计算架构的物理计算设备获得的计算资源使用数据,以便确定指示计算资源的泄漏正在发生的概率的预定条件是否被满足。

本文中所描述的技术和系统不同于传统的基于阈值的系统。传统的基于阈值的系统简单地设置计算资源的使用的阈值量,并且当该阈值被达到时,计算资源的泄漏被指示。传统的基于阈值的系统未能将不同的各组物理计算设备可以使用的计算资源的不同量纳入考虑。传统的基于阈值的系统未能考虑物理计算设备在不同时间对计算资源的使用以及物理计算设备对计算资源的使用可以如何随时间改变。附加地,传统系统所使用的阈值可能难以确定并且通常是不准确的。因此,传统的基于阈值的系统可以在其中计算资源泄漏未实际发生的情况下提供计算资源泄漏的指示。而且,传统的基于阈值的系统可能无法标识由于阈值被不正确地设置而导致的计算资源泄漏。此外,本文中所描述的技术和系统是高度可扩展的,并且可被用来有效且准确地标识跨云计算架构中的数千到数百万个计算设备的计算资源的泄漏。

通过阅读下面的描述并审阅相关联的附图,这些及各种其他示例特征将变得显而易见。然而,所要求保护的主题不限于解决任何或所有缺点或提供本公开的任何部分中所提到的任何益处的实现。

图1是用于检测计算资源的使用的示例环境100的图。环境100包括云计算架构102。云计算架构102可被用来向客户提供计算服务。在一些情形中,计算服务可以与主控客户的一个或多个网站以及管理去往和来自这些网站的流量相关。在其他情况下,计算服务可以与为客户执行复杂计算和/或大量计算相关联,其中数十或数百个计算设备(或者更多)被用来并发地执行操作以在客户所指定的时间帧内处理数据。附加地,计算服务可涉及为客户储存可以经由网络在各种不同位置访问的数据。例如,云计算架构102可储存可以由一个或多个客户经由耦合到云计算架构102的网络访问的媒体文件。此外,云计算架构102可以提供数据库管理服务,使得数据可以使用云计算架构102来被储存和搜索。在附加的示例中,云计算架构102可被用来基于一个或多个数据集提供与预测分析相关的服务。云计算架构102还可被用来主控用户可访问的应用。在特定实现中,云计算架构102可以提供虚拟专用网络(vpn)服务,该vpn服务提供对可以由云计算架构102执行的一个或多个应用的访问。在另一些其他实现中,云计算架构102可以提供与云计算架构102所储存的数据的加密相关的服务,并且将对云计算架构102所储存的数据的访问限制到具有适当的认证凭证的用户。

云计算架构102可以包括一组或多组物理计算设备,诸如一组计算设备104。该组计算设备104可以包括第一计算设备106直到第n计算设备108。在一些实现中,该组计算设备104可被放置在位于特定地理区域中的数据中心中。虽然图1的说明性示例示出了该组物理计算设备104包括三个计算设备,但是在其他实现中,该组物理计算设备104可以包括更多数量的计算设备或物理计算设备。

该组物理计算设备104可以实现虚拟机112的多个实例。虚拟机112的实例可以使用该组计算设备104的计算设备106、108、110的至少一个的计算资源来执行操作。第一计算设备106可以主控一个或多个第一虚拟机实例110。在一些情形中,云计算架构102可以与服务提供商相关联,并且第一虚拟机实例110可以执行操作以向服务提供商的客户提供服务。在特定实现中,第一虚拟机实例110可以执行与为服务提供商的客户的网站托管和/或应用托管相关的操作。具体而言,第一虚拟机实例110可以实现一个或多个第一客户服务实例112。第一客户服务实例112可以执行针对向服务提供商的客户提供服务的操作。第一客户服务实例112可以利用第一计算设备106的计算资源来向服务提供商的客户提供服务。附加地,第n计算设备108可以主控实现一个或多个第n客户服务实例116的一个或多个第n虚拟机实例114,以向与云计算架构102相关联的服务提供商的一个或多个客户提供服务。

该组计算设备104的计算设备106、108可以包括相应的软件组件和监视代理。例如,第一计算设备106可以包括第一软件组件118和第一资源数据收集代理120,并且第n计算设备108可以包括第n软件组件122和第n资源数据收集代理124。虽然图1的说明性示例示出第一资源数据收集代理120与第一软件组件118分离并且第n资源数据收集代理124与第n软件组件122分离,但是在其他实现中,第一资源数据收集代理120可被包括在第一软件组件118中,并且第n资源数据收集代理124可被包括在第n软件组件122中。在另一些其他实现中,第一软件组件118中的一个或多个可以执行由第一资源数据收集代理120执行的操作的至少一部分,并且第n软件组件中的一个或多个可以执行第n资源数据收集代理124的操作的至少一部分。

在特定实现中,软件组件118、122可以包括一个或多个软件组件,该一个或多个软件组件获得与事件日志、跟踪、句柄、其组合等相关的数据。在说明性实现中,软件组件118、122可以包括用于云管理目的的云基础设施服务/代理的实例集。软件组件118、122还可以包括一个或多个软件组件,该一个或多个软件组件获得与计算设备106、108对计算资源的使用相关的数据。例如,软件组件118、122可以获得指示硬盘空间分配、处理器周期、ram分配、网络资源分配、或其组合的数据。附加地,软件组件118、122可以包括执行负载平衡以分发与计算设备106、108对虚拟机实例110、114的主控相关的操作的一个或多个组件。此外,软件组件118、122可以包括涉及管理去往和来自计算设备106、108的数据流的一个或多个软件组件。在一些实现中,软件组件118、122可以包括与对经由虚拟机实例110、114托管的应用的远程访问相关联的一个或多个软件组件。为了解说,软件组件118、122可以包括远程桌面软件组件。另外,软件组件118、122可以包括控制对使用认证规程的信息的访问的一个或多个软件组件。软件组件118、122还可以包括与虚拟机实例110、114所使用的对信息的加密和对信息的解密相关的一个或多个软件组件。在各种实现中,软件组件118、122可以包括将计算设备106、108配置成主控虚拟机实例110、114的一个或多个软件组件。例如,软件组件118、122可以包括用于部署要由计算设备106、108执行的特定操作系统和/或特定软件包的一个或多个软件组件。在另一示例中,软件组件118、122可以包括用于配置计算设备106、108的通信接口的一个或多个软件组件。

资源数据收集代理120、124可以获得指示计算设备106、108对计算资源的使用的数据。在特定实现中,计算设备106、108对计算资源的使用可以由第一客户服务实例112、第n客户服务实例116、第一软件组件118、第n软件组件122、或其组合来执行。由资源数据收集代理120、124获得的数据可被用来检测计算资源的泄漏。资源数据收集代理120、124可以与软件组件118、122相结合地操作,以获得指示计算设备106、108对计算资源的使用的数据。在一些情形中,资源数据收集代理120、124可以独立于软件组件118、122获得指示计算设备106、108对计算资源的使用的数据。

资源数据收集代理120、124和/或软件组件118、122中的一个或多个可以将资源使用数据126发送到资源泄漏检测系统128。资源泄漏检测系统128可以在130处执行对资源使用数据126的分析。对资源使用数据126的分析可以包括确定可被用来检测计算资源泄漏的参考数据。例如,资源泄漏检测系统128可以分析资源使用数据126以确定计算设备106、108在指定时间段内所作的计算资源使用。在一些情形中,参考数据可以提供当尝试检测计算资源的泄漏时后续计算资源使用将针对其被比较的基线。当新的资源使用数据被从计算设备106、108获得时,参考数据可以被持续地更新或被周期性地更新以反映该新的资源使用数据对基线计算设备资源使用的影响。

在特定实现中,资源泄漏检测系统128可以分析资源使用数据126以确定计算设备106、108在指定时间段期间在虚拟机实例110、114的托管以及客户服务实例112、116的实现方面对一个或多个计算资源的平均使用。在其他实现中,资源泄漏检测系统128可以分析资源使用数据126以确定计算设备106、108在指定时间段期间在虚拟机实例110、114的托管以及客户服务实例112、116的实现方面对一个或多个计算资源的中值(median)使用。附加地,资源泄漏检测系统128可以分析资源使用数据126以确定计算设备106、108在虚拟机实例110、114的托管以及客户服务实例112、116的实现方面所作的计算资源使用的标准偏差。资源使用数据126可以在一时间段内被收集,使得资源使用数据的历史可以被泄漏检测系统128使用以确定关于计算设备106、108在虚拟机110、114的托管和客户服务实例112、116的实现方面所作的计算资源使用的中值、平均值、和/或标准偏差。在附加实现中,资源泄漏检测系统128可以分析资源使用数据126以确定计算设备106、108在指定时间段内在虚拟机实例110、114的托管以及客户服务实例112、116的实现方面对一个或多个计算资源的使用的分布。例如,计算设备106、108对一个或多个计算资源的使用的分布可以指示计算设备106、108在虚拟机实例110、114的托管以及客户服务实例112、116的实现方面对一个或多个计算资源的使用的高斯分布。

资源泄漏检测系统128还可以分析计算设备106、108在特定软件组件118、122方面对一个或多个计算资源的使用。为了解说,资源泄漏检测系统128可以确定与由计算设备106、108执行的负载平衡代理相关的一个或多个计算资源的使用。在另一示例中,资源泄漏检测系统128可以确定与将计算设备106、108配置成主控虚拟机实例110、114的软件组件相关的一个或多个计算资源的使用。

资源泄漏检测系统128可以产生资源使用数据分析132。资源使用数据分析132可以包括指示计算资源在一时间段内的使用的第一表示134。另外,资源使用数据分析132可以包括指示计算资源的使用的参考水平的第二表示136,所述参考水平诸如计算资源的使用的中值和标准偏差或者计算资源的使用的平均值。资源使用数据分析132还包括可以包括计算资源的泄漏的候选开始时间的第一时间的第一表示138。此外,资源使用数据分析132包括可以包括当前时间的第二时间的第二表示140。

在142处,资源泄漏检测系统128可以确定计算资源泄漏已发生达指定的时间段。例如,资源泄漏检测系统128可以确定由第一表示138指示的第一时间与由第二表示140指示的第二时间之间的差异。当资源泄漏检测系统128确定第一时间和第二时间之间的差异大于预定时间段时,资源泄漏检测系统128可以确定计算资源的可能泄漏正在发生。另外,资源泄漏检测系统128可以确定计算资源在第一时间处的值与计算资源在第二时间处的值之间的差异。资源泄漏检测系统128还可以至少部分地基于计算资源在第一时间处的使用的值与计算资源在第二时间处的值之间的差异来确定计算资源的可能泄漏正在发生。

在一些实现中,资源泄漏检测系统128可以基于确定一组计算设备对计算资源的使用模式不同于参考使用模式达阈值量来标识计算资源的泄漏。参考模式可以指示计算设备对计算资源的典型或正常使用。此外,资源泄漏检测系统128可以基于计算资源的使用模式在阈值时间段内偏离参考模式达指定量来标识计算资源的泄漏。在一些情形中,当计算资源的使用模式不同于参考模式达小于阈值时间段时,可能不发生计算资源的泄漏。

响应于确定计算资源的泄漏正在发生,资源泄漏检测系统128可以标识一个或多个校正动作以减轻计算资源泄漏。在一些情形中,资源泄漏检测系统128可确定计算设备106、108的重启可以减轻计算资源泄漏。在其他情况下,资源泄漏检测系统128可确定软件更新可以减轻计算资源泄漏。在特定实现中,资源泄漏检测系统128可确定由服务提供商的客户提供的由虚拟机实例112执行的软件的更新可以减轻计算资源泄漏。在附加的实现中,资源泄漏检测系统128可确定软件组件118、122中的一个或多个的更新可以减轻计算资源泄漏。在标识用于减轻计算资源泄漏的校正动作之后,资源泄漏检测系统128可以将校正动作信息144发送到计算设备106、108。计算设备106、108可以利用校正动作信息144来减少计算设备106、108对一个或多个计算资源的使用并减轻计算资源泄漏。

图2是用于检测云计算架构中的计算资源的泄漏的附加示例环境200的图。环境200包括一个或多个云计算架构202和图1的资源泄漏检测系统128。云计算架构202可包括多个物理计算设备。另外,云计算架构202可以与通过利用云计算架构202的物理计算设备的计算资源向客户提供服务的一个或多个服务提供商相关联。在一些实现中,云计算架构202可以包括图1的云计算架构102。

云计算架构202可以将计算资源使用数据204发送到资源泄漏检测系统128。计算资源使用数据204可以指示云计算架构202的物理计算设备对多个计算资源的使用的量。例如,计算资源使用数据204可以指示云计算架构202的物理计算设备在一时间段内对ram的分配。在另一示例中,计算资源使用数据204可以指示云计算架构202的物理计算设备在一时间段内所完成的处理器周期的数量。在附加示例中,计算资源使用数据204可以指示云计算架构202的物理计算设备在一时间段内对磁盘空间的分配。在进一步的示例中,计算资源使用数据204可以指示云计算架构202的物理计算设备在一时间段内对网络资源的分配。

在一些情形中,计算资源使用数据204可以与由云计算架构202的物理计算设备执行的特定软件组件相关。例如,计算资源使用数据204可以指示由云计算架构202的物理计算设备执行的一个或多个服务实例对计算资源的使用。在另一示例中,计算资源使用数据204可以指示由云计算架构202的物理计算设备执行的一个或多个云基础设施代理/组件对计算资源的使用。以此方式,如下面更详细解释的,资源泄漏检测系统128可以针对由云计算架构202的物理计算设备执行的特定软件组件执行数据减少和聚集、参考数据确定、和资源泄漏检测。

资源泄漏检测系统128可以执行计算资源数据聚集和组织206。计算资源数据聚集和组织206可以生成经修改的计算资源使用数据208。资源泄漏检测系统128可以通过减少与云计算架构202的物理计算设备对一个或多个计算资源的使用相关联的数据集来产生经修改的计算资源使用数据208。资源泄漏检测系统128可以通过以小于计算资源使用数据204曾以此被收集的速率的速率聚集计算资源使用数据204来减少与计算资源相关联的数据集。例如,计算资源使用数据204可以包括每一秒收集到的ram分配。在该情况下,资源泄漏检测系统128可以通过标识以不同时间间隔收集的ram分配值来产生经修改的计算资源使用数据208。为了解说,泄漏检测系统128可以以一分钟、5分钟、10分钟、20分钟、30分钟、40分钟、50分钟、60分钟、90分钟、120分钟、150分钟、或180分钟的间隔从计算资源使用数据204中标识ram分配值。以此方式,正由资源泄漏检测系统128处理的数据量被减少,并且由资源泄漏检测系统128用来检测计算资源的泄漏的计算资源也被减少。附加地,通过减少由资源泄漏检测系统128处理的数据量,与分析计算资源使用数据204以检测计算资源的泄漏相关联的噪声量也被减少,这提供了对计算资源泄漏的更准确的确定。换言之,计算资源使用数据204中的无关(outlying)数据点的数量和/或不可用数据点的数量在经修改的计算资源使用数据208中被减少。附加地,计算资源使用的最大值可被用来减少正由资源泄漏检测系统128分析的计算资源使用数据204的量。在一些情形中,可以根据以下等式过滤计算资源使用数据204:

此外,可以通过其他技术减少计算资源使用数据204中的无关数据点的数量和/或不可用数据点的数量。在一些情形中,这些数据点在本文中可称为“噪声”。在一些实现中,移动平均值可以被计算以减少检测计算资源泄漏时的噪声量。例如,可针对第一时间段来确定计算资源使用的值的平均并且可由资源泄漏检测系统128来对该值的平均进行分析。随着时间的推移,资源泄漏检测系统128可以将被用来确定平均计算资源值的时间段向前移位所指定的量。因此,在第一时间段期间获得的计算资源的值的至少一部分不再被资源泄漏检测系统128用来检测计算资源泄漏。相反,在随后的时间段期间收集的值被用来计算平均计算资源使用以及确定计算资源的泄漏是否正在发生。

计算资源数据聚集和组织206还可以包括对计算资源使用数据204的各部分进行分组。在特定实现中,资源泄漏检测系统128可以标识云计算架构202的某些各组物理计算设备的计算资源使用的模式。资源泄漏检测系统128可以根据随时间产生类似计算资源使用模式的各组物理计算设备来组织计算资源使用数据。在说明性示例中,资源泄漏检测系统128可以标识与主控虚拟机的实例来为服务提供商的特定客户提供服务相关联并且具有计算资源分配的类似模式的一组物理计算设备,所述计算资源分配的类似模式诸如易失性存储器分配的类似模式、非易失性存储器分配的类似模式、处理器周期使用的类似模式、网络资源分配的类似模式、其组合等等。

资源泄漏检测系统128可以以多种方式利用经修改的计算资源使用数据208。在特定实现中,资源泄漏检测系统128可以使用经修改的计算资源使用数据208的至少一部分来执行参考数据确定210。参考数据确定210可以包括确定计算设备对计算资源的使用的参考数据,该参考数据可被用来确定计算资源的泄漏正在发生。例如,参考数据确定210可以产生可被用作基线计算资源使用数据的参考数据,该参考数据可以与当前计算资源使用数据进行比较以确定计算资源泄漏是否正在发生。在一些情形中,参考数据可以包括云计算架构202中所包括的一组或多组计算设备的计算资源的使用的基线模式。

资源泄漏检测系统128可以使用在一时间段内收集的计算资源使用数据来确定参考数据。例如,资源泄漏检测系统128可以至少部分地基于至少5天的计算资源使用数据、至少10天的计算资源使用数据、至少20天的计算资源使用数据、至少30天的计算资源使用数据、至少40天的计算资源使用数据、至少50天的计算资源使用数据、至少60天的计算资源使用数据、至少75天的计算资源使用数据、或至少90天的计算资源使用数据来确定云计算架构的一组计算设备的参考数据。在各种实现中,资源泄漏检测系统128可以利用在指定时间段期间获得的最近的计算资源使用数据来确定参考数据。以此方式,参考数据可以在新的计算资源参考数据被获得时被更新。因此,在其中资源泄漏检测系统128使用60天的计算资源使用数据确定参考数据的情况下,资源泄漏检测系统128可以在确定参考数据时丢弃60天以上的计算资源使用数据。

参考数据确定210可以包括资源泄漏检测系统128在一时间段内为特定计算资源和为特定计算设备收集计算资源使用数据。资源泄漏检测系统128可以分析经修改的计算资源使用数据208以确定云计算架构202的计算设备对计算资源的中值使用。资源泄漏检测系统128还可以分析经修改的计算资源使用数据208以确定云计算架构202的计算设备对计算资源的平均使用。附加地,资源泄漏检测系统128可以确定云计算架构202的计算设备对计算资源的使用的标准偏差。

此外,资源泄漏检测系统128可以确定云计算架构202的计算设备对计算资源的使用的分布。在特定实现中,资源泄漏检测系统128可以为计算资源的使用量确定大于或等于经修改的计算资源使用数据208中所包括的计算资源的使用的总值的1%的值。资源泄漏检测系统128还可以为计算资源的使用量确定大于或等于经修改的计算资源使用数据208中所包括的计算资源的使用量的总值的25%的值。附加地,资源泄漏检测系统128可以为计算资源的使用量确定大于或等于经修改的计算资源使用数据208中所包括的计算资源的使用的总值的70%的值。此外,资源泄漏检测系统128可以为计算资源的使用量确定大于或等于经修改的计算资源使用数据208中所包括的计算资源的使用的值的99%的值。资源泄漏检测系统128还可以为计算资源的使用量确定其他阈值,诸如为计算资源的使用量确定大于或等于经修改的计算资源使用数据208中所包括的计算资源的使用的总值的10%、30%、40%、60%、75%、80%、和/或90%的值。在一些情形中,由资源泄漏检测系统128执行的参考数据确定210可以包括产生计算资源使用的高斯分布。

参考数据确定210还可以包括确定计算资源使用的各个值之间的差异。在计算资源使用的各个值之间的差异在此可被称为“差异信息”。例如,泄漏检测系统128可以确定计算资源在第一时间处的使用的值与计算资源在第二时间处的使用的值之间的差异。为了解说,资源泄漏检测系统128可以根据以下公式分析经修改的计算资源使用数据208:

diffi=vi-vi-1,

其中vi-1是计算资源在第一时间处的使用的值,而vi是计算资源在第一时间之前发生的第二时间处的使用的值。在各种实现中,计算资源的使用的值vi和vi-1可以是在一系列计算资源的使用的值中毗邻的一对计算资源的使用的值。资源泄漏检测系统128可以使用云计算架构202的计算设备对计算资源的使用的值的差异信息来确定中值。另外,资源泄漏检测系统128可以使用云计算架构202的计算设备对计算资源的使用的值的差异信息来确定平均值。此外,资源泄漏检测系统128可以使用云计算架构202的计算设备对计算资源的使用的值的差异信息来确定标准偏差。

资源泄漏检测系统128可以确定云计算架构202的计算设备对计算资源的使用的值的差异信息的分布。在特定实现中,资源泄漏检测系统128可以为计算资源的使用量确定大于或等于经修改的计算资源使用数据208中所包括的计算资源的使用的总差异值的1%的差异值。资源泄漏检测系统128还可以为计算资源的使用量确定大于或等于经修改的计算资源使用数据208中所包括的计算资源的使用的总差异值的25%的差异值。附加地,资源泄漏检测系统128可以为计算资源的使用量确定大于或等于经修改的计算资源使用数据208中所包括的计算资源的使用的总差异值的70%的差异值。此外,资源泄漏检测系统128可以为计算资源的使用量确定大于经修改的计算资源使用数据208中所包括的计算资源的使用的总差异值的99%的差异值。资源泄漏检测系统128还可以为计算资源的使用量确定其他阈值差异值,诸如为计算资源的使用量确定最大差异值、最小差异值、大于经修改的计算资源使用数据208中所包括的计算资源的使用的总差异值的10%、30%、40%、60%、75%、80%、和/或90%的相应差异值。在一些情形中,由资源泄漏检测系统128执行的参考数据确定210可以包括产生由云计算架构202的计算设备所作的计算资源使用的差异值的高斯分布。

在一些情形中,资源泄漏检测系统128可以确定用于特定计算资源的参考数据。例如,资源泄漏检测系统128可以确定用于由云计算架构202的计算设备所作的易失性存储器分配的参考数据。在另一示例中,资源泄漏检测系统128可以确定用于由云计算架构202的计算设备所作的非易失性存储器分配的参考数据。在附加的示例中,资源泄漏检测系统128可以确定用于由云计算架构202的计算设备所作的处理器周期使用的参考数据。在进一步的示例中,资源泄漏检测系统128可以确定用于由云计算架构202的计算设备所作的网络资源使用的参考数据。附加地,资源泄漏检测系统128可以确定用于云计算架构202的计算设备对计算资源的使用的组合的参考数据。为了解说,资源泄漏检测系统128可以确定用于非易失性存储器、易失性存储器、处理器周期、网络资源、或输入/输出资源中的至少一个的使用的参考数据。

资源泄漏检测系统128还可以确定用于由云计算架构202的计算设备执行的特定软件组件的参考数据。在一些情形中,资源泄漏检测系统128可以确定用于云计算架构202的计算设备的一个或多个软件组件对一个或多个计算资源的使用的参考数据。例如,资源泄漏检测系统128可以确定用于由云计算架构202的计算设备执行的一个或多个服务实例和/或一个或多个云基础设施组件/代理的参考数据。在特定实现中,资源泄漏检测系统128可以确定用于由云计算架构202的计算设备执行的负载平衡软件组件、网络通信软件组件、配置软件组件、诊断软件组件、计算资源分配软件组件、远程访问软件组件、认证软件组件、或其组合的参考数据。

在特定实现中,参考数据确定210还可以包括计算资源的使用的值中的增加的阈值量以及可被用来确定关于计算资源的泄漏何时发生的阈值时间量。例如,资源泄漏检测系统128可以确定各时间段内可致使对经由云计算架构202提供的服务的中断的计算资源的使用的值中的增加。此外,参考数据确定210可以在新的计算资源使用数据被从云计算架构202获得时继续。换言之,从参考数据确定210产生的参考数据可以基于从云计算架构202获得的新的计算资源使用数据来被更新。

资源泄漏检测系统128可以使用经修改的计算资源使用数据208执行针对资源泄漏检测212的操作。具体而言,资源泄漏检测系统128可以利用参考数据和经修改的计算资源使用数据208来检测计算资源泄漏。例如,在214处,资源泄漏检测系统128可以确定计算资源泄漏的候选开始时间。在一些情况下,候选开始时间可以至少部分地基于与计算资源使用相关的一个或多个条件来被标识。该一个或多个条件可以与计算资源使用在一时间段内的值相对于计算资源使用的一个或多个先前值的变化的量相关。候选开始时间可以随着计算资源使用随时间变化而被修改。

另外,在216处,资源泄漏检测系统128可以确定计算资源在一时间段内的使用中的增加。为了解说,泄漏检测系统128可以确定在被包括在经修改的计算资源使用数据208中的计算资源的使用的当前值之间的差异大于计算资源在先前时间处的使用的值。在一些情形中,泄漏检测系统128可以使用计算资源随时间的使用中的增加来确定计算资源使用度量。具体而言,计算资源随时间的使用相对于参考值的增加可被用来标识计算资源的泄漏。在特定实现中,参考值可以包括在大于一组计算资源使用值的75%的计算资源的使用值与大于该组计算资源使用值的25%的计算资源的使用值之间的差异。此外,在218处,资源泄漏检测系统128可以确定计算资源的使用正在增加的时间段的持续时间。除了利用来自214的计算资源在一时间段内的使用中的增加以检测计算资源的泄漏之外,泄漏检测系统128还可以利用计算资源的使用正在增加的时间段的持续时间。

资源泄漏检测系统128可以在220处确定资源泄漏检测分数。资源泄漏检测分数可以指示一组计算设备对一个或多个计算资源的使用与该组计算设备对该一个或多个计算资源的使用的基线/参考模式的相似性。资源泄漏检测分数可以至少部分地基于指示计算资源泄漏可能影响由云计算架构202提供的服务的多个因素。在一些实现中,资源泄漏检测分数可以至少部分地基于计算资源在一时间段内的使用中的增加来被确定。而且,资源泄漏检测分数可以至少部分地基于计算资源的使用正在增加的时间段的持续时间来被确定。在各种实现中,被用来确定资源泄漏检测分数的因素可以与相应的加权相关联。被用来确定资源泄漏检测分数的各因素的加权可以指示对应因素在确定可致使对经由云计算架构202提供的服务的中断的计算资源的泄漏是否正在发生时的相对重要性。

在一些实例中,资源泄漏检测系统128可以至少部分地基于资源泄漏检测分数来确定可能中断经由云计算架构202提供的服务的计算资源泄漏正在发生。例如,资源泄漏检测系统128可以确定资源泄漏检测分数高于阈值分数以标识可能正在导致或可能潜在地导致对由云计算架构202提供的服务的中断的计算资源的泄漏。在确定资源泄漏检测分数高于阈值分数之后,资源泄漏检测系统120可以确定可被执行以减轻计算资源泄漏的一个或多个校正动作。

资源泄漏检测系统128还可以执行计算资源泄漏报告222。计算资源泄漏报告222可以包括提供指示云计算架构202的计算设备对计算资源的使用的一个或多个用户界面。在一些情形中,由资源泄漏检测系统128产生的该一个或多个用户界面可以指示云计算架构202的计算设备所利用的计算资源的泄漏。由资源泄漏检测系统128产生的该一个或多个用户界面可以是与服务提供商相关联的用户可访问的,该服务提供商利用云计算架构202中的一个或多个来向客户提供服务。在特定实现中,由资源泄漏检测系统128产生的该一个或多个用户界面可以是对服务提供商的客户而言可访问的,该服务提供商利用云计算架构202中的一个或多个来向客户提供服务。

图3解说了用于组织和聚集指示云计算架构的计算设备对计算资源的使用的数据的示例过程的框架300。在一些实现中,框架300可以与图2的计算资源数据聚集和组织206的一个或多个部分相关。框架300包括第一组计算设备302。该组计算设备302包括第一计算设备304、第二计算设备306、和第三计算设备308,计算设备304、306、308可以正在执行利用计算资源的软件组件。另外,计算设备304、306、308可以产生用于在计算设备304、306、308上执行的一个或多个软件组件的计算资源使用的模式。在一些示例中,计算设备304、306、308可以执行利用计算资源的云计算架构的一个或多个服务实例。在其他示例中,计算设备304、306、308可以执行利用计算资源的一个或多个云基础设施代理/组件。

第一组计算设备302可以包括位于同一物理位置的计算设备。在一些情形中,第一组计算设备302可以包括主控提供相同服务或相同类型的服务的虚拟机的一个或多个实例的计算设备。另外,第一组计算设备302可以包括主控为相同客户提供服务的一个或多个虚拟机的计算设备。第一组计算设备302还可具有类似的工作负载要求。例如,第一组计算设备302可具有类似的存储器分配规范、类似的处理器周期规范、类似的网络资源规范、或其组合。此外,第一组计算设备302可以具有类似的配置。为了解说,第一组计算设备302可以执行相同的软件组件。在一些情形中,软件组件可以包括服务实例以向与云计算架构和/或云基础设施组件/代理相关联的服务提供商的客户提供服务。在另一种解说中,第一组计算设备302可以包括类似的硬件组件。在一些实现中,第一组计算设备302可以包括类似的通信网络接口、类似的非易失性存储器设备、类似的易失性存储器设备、类似的处理器、或其组合。

第一组计算设备302可以在执行与主控虚拟机的实例相关的软件组件并经由云计算架构提供服务时利用一个或多个计算资源。例如,计算设备304、306、308可以在执行与主控虚拟机的实例相关的软件组件并经由云计算架构提供服务时分配非易失性存储器空间。在另一示例中,计算设备304、306、308可以在执行与主控虚拟机的实例相关的软件组件并经由云计算架构提供服务时分配易失性存储器空间。在一附加示例中,计算设备304、306、308可以在执行与主控虚拟机的实例相关的软件组件并经由云计算架构提供服务时分配处理器周期。在进一步的示例中,计算设备304、306、308可以在执行与主控虚拟机的实例相关的软件组件并经由云计算架构提供服务时分配网络资源。

框架300还在310处包括从多个计算设备收集计算资源使用的值。计算资源使用的值可以指示计算设备在特定时间处对一个或多个计算资源的使用。在一些情形中,计算资源使用的值可以指示一个或多个计算资源在一时间间隔处的使用。例如,计算资源使用的值可以以0.5秒、1秒、5秒、10秒、30秒、1分钟、2分钟、5分钟、10分钟等的间隔来被收集。在图3的说明性示例中,计算资源使用的值可以包括与第一计算设备304对计算资源的使用相对应的第一组计算资源使用值312、与第二计算设备306对计算资源的使用相对应的第二组计算资源使用值314以及与第三计算设备308对计算资源的使用相对应的第三组计算资源使用值316。在说明性示例中,被包括在计算资源使用值的分组312、314、316中的值v1-v9可以表示以5秒间隔分配的易失性存储器的量。在另一说明性示例中,被包括在计算资源使用值的分组312、314、316中的值v1-v9可以表示以5秒间隔分配的非易失性存储器的量。在一附加的说明性示例中,被包括在计算资源使用值的分组312、314、316中的值v1-v9可以表示以5秒间隔完成的处理器周期的数量。在进一步的说明性示例中,被包括在计算资源使用值的分组312、314、316中的值v1-v9可以以5秒间隔表示网络资源使用(例如,用带宽表达)。

框架300还在318处包括聚集计算资源使用的值。在一些实现中,被包括在计算资源使用值的分组312、314、316中的值的数量可被减少至附加的组,诸如对应于第一组312的第四组320计算资源使用值、对应于第二组314的第五组322计算资源使用值、以及对应于第三组316的第六组324计算资源使用值。例如,计算资源使用值的分组312、314、316中所包括的计算资源使用值的数量可以从9个值减少到计算资源使用值的分组320、322、324中的3个值。在一些实现中,分组312、314、316中所包括的值的数量可以通过以相比分组312、314、316中所包括的值曾被收集的时间间隔更大的时间间隔从这些分组中的每一者选择计算资源使用值来被减少。在图3的说明性示例中,这些计算资源使用值的分组320、322、324可包括计算资源的使用的3个值,而非计算资源使用值的分组312、314、316中所包括的9个值。

在特定说明性实现中,分组312、314、316中所包括的值可以以5秒间隔被收集,并且分组320、322、324中所包括的值的数量可以通过从分组312、314、316的每一者中每15秒获得值来被减少。在一些情形中,针对分组312、314、316的每一者中所包括的计算资源的使用的特定时间间隔的最大值可被选择以产生被包括在分组320、322、324的每一者中的计算资源使用值。在其他实例中,分组312、314、316的每一者中所包括的计算资源的使用的对于15秒的间隔的平均值可被确定以产生被包括在分组320、322、324中的计算资源使用值。其他实现可以利用不同的准则以用于获得被包括在分组320、322、324中的值,诸如每15秒确定大于分组312、314、316的每一者中所包括的值的至少40%的值,或者每15秒确定大于分组312、314、316的每一者中所包括的值的75%的值。在其他实现中,要被包括在第二分组320、322、324中的计算资源的使用的值可以以每5分钟、每10分钟、每20分钟、每30分钟、每40分钟、每50分钟、每60分钟、每2小时、每6小时、每10小时、或每12小时的间隔来被选择。

在确定第二组计算资源使用数据320、322、324之后,框架300可以在326处包括为第一组计算设备302中所包括的计算设备304、306、308中的每一个确定随时间的计算资源的使用的分布。在各种实现中,第一计算设备304的计算资源的使用的分布可以利用被包括在第四组320中的计算资源的使用的值来确定中值、平均值、标准偏差、大于第四组320中所包括的值的1%的值、大于第四组320中所包括的值的25%的值、大于第四组320中所包括的值的75%的值、大于第四组320中所包括的值的99%的值、被包括在第四组320中的值的最大值、或其组合。以类似的方式,计算设备306、308对计算资源的使用的中值、平均值、标准偏差、1%的值、25%的值、75%的值、和/或99%的值也可以使用来自分组322、324的数据来被确定以产生计算设备306、308对计算资源的使用的分布。

附加地,框架300在328处可以使用被包括在分组320、322、324中的值来确定计算设备304、306、308所作的对计算资源使用的差异值的分布。例如,各分组中所包括的各个值之间的差异可被确定,并且这些差异值可被用来确定计算设备304、306、308对计算资源的使用的分布。为了解说,对于第一计算设备304,计算资源使用值v1和v4之间的第一差异值可被确定,并且计算资源使用值v4和v7之间的第二差异值可被确定。第一差异值和第二差异值可被用来确定中值差异值、平均差异值、差异值的标准偏差、大于第四组320中所包括的差异值的1%的差异值、大于第四组320中所包括的差异值的25%的差异值、大于第四组320中所包括的差异值的75%的差异值、大于第四组320中所包括的差异值的99%的差异值、被包括在第四组320中的差异值的最大差异值、或其组合,以产生为第四组320确定的差异值的分布。以类似方式,可以使用利用分组322、324所确定的差异值来为计算设备306、308确定差异值的分布。

此外,框架300在330处可以在第一组计算设备302内标识具有类似计算资源使用模式的计算设备以产生第二组计算设备332。第二组计算设备332可以至少部分地基于计算设备的计算资源使用模式之间的相似性来被标识。在图3的说明性示例中,第一计算设备304对计算资源的利用可以由第一计算资源使用模式334表示,第二计算设备306对计算资源的利用可以由第二计算资源使用模式336表示,而第三计算设备308对计算资源的利用可以由第三计算资源使用模式338表示。附加地,在一些实现中,计算资源使用模式334、336、338可以指示由计算设备304、306、308执行的一个或多个软件组件对计算资源的使用。在特定实现中,计算资源使用模式334、336、338可以指示由计算设备304、306、308执行的服务实例对计算资源的使用。在其他场景中,计算资源使用模式334、336、338可以指示由计算设备304、306、308执行的云架构代理/组件的实例对计算资源的使用。

在特定实现中,图1和图2的资源泄漏检测系统128可以比较计算资源使用模式334、336、338并且确定计算资源使用模式334、336、338相对于彼此的相似性度量。资源泄漏检测系统128可接着根据为计算资源使用模式334、336、338确定的相似性度量对计算设备304、306、308进行分组。在一些情形中,为计算资源使用模式334、336、338确定的相似性度量可以指示计算资源使用模式334、336、338中的一个或多个在阈值量内与计算资源使用模式334、336、338中的另一个相对应。在图3的说明性示例中,第二组计算设备332基于第一计算资源使用模式334和第三计算资源使用模式338之间的相似性而包括第一计算设备304和第三计算设备308。

通过实现图3的说明性示例中所描述的操作,资源泄漏检测系统(诸如图1和图2的资源泄漏检测系统128)可以测量一个或多个云计算架构或者一个或多个云计算架构的各部分的健康。例如,资源泄漏检测系统128可以至少分析第一计算资源使用模式334和第三计算资源使用模式338,以确定关于第一计算设备304、第三计算设备308、由第一计算设备304执行的软件组件、和/或由第三计算设备308执行的软件组件的计算资源泄漏是否正在发生。

图4是用于确定计算资源泄漏的持续时间的示例过程400的流程图。在402处,过程400包括获得包括计算资源的使用的第一值和计算资源的使用的第二值的数据。计算资源可以与实现由云计算架构的计算设备执行的软件组件的一个或多个实例相关联。计算资源可以包括易失性存储器的分配、非易失性存储器的分配、已完成的处理器周期、网络资源的使用、或其组合。在一些情形中,第一值可以与第一时间相关联,而第二值可以与第一时间之后的第二时间相关联。例如,计算资源的值可以在指定的时间间隔处被顺序地收集,并且计算资源的使用的第二值可以在自计算资源的使用的第一值被收集的时间起已流逝了的该指定时间间隔之后被收集。附加地,第一值和第二值可以包括从已在指定时间间隔内被获得的多个值中选择的值。为了解说,计算资源的使用的第一值可以包括来自在第一时间间隔期间获得的多个值的最大值,并且计算资源的使用的第二值可以包括来自在跟随该第一时间间隔的第二时间间隔期间获得的多个值的最大值。在另一种解说中,计算资源的使用的第一值可以包括从在第一时间间隔期间获得的计算资源的使用的多个值确定的平均值或中值,并且计算资源的使用的第二值可以包括从在跟随第一时间间隔的第二时间间隔期间获得的计算资源的使用的多个值确定的平均值或中值。

过程400还在404处包括确定第一值和第二值之间的差异。第一值和第二值之间的差异可以在一次或多次计算中被用来确定计算资源的泄漏是否正在发生。例如,以下等式可被用来确定可以被用来确定计算资源泄漏的持续时间的值(诸如参考数据的值):

d=distance(v75%-v25%),

δt=t-t0,

其中v75%是大于数据集中所包括的计算资源的值的75%的计算资源的值,并且v25%是大于该数据集中所包括的计算资源的值的25%的计算资源的值。在一些情形中,该数据集可以是被用来确定参考数据的训练数据集,该参考数据提供用于确定资源泄漏正在发生的基线。另外,vt是计算资源在当前时间t处的值,而vt0是计算资源在初始时间t0处的值。t0可以指示计算资源的泄漏的候选开始时间。

在406处,过程400包括确定计算资源泄漏的候选开始时间。确定计算资源泄漏的候选开始时间可以包括确定多个准则是否被满足。例如,在408处,过程400可包括确定v中的减少在小于时间阈值内是否大于第一阈值。第一阈值可以是相对大量的计算资源。例如,第一阈值可以是至少一个标准偏差、至少两个标准偏差、至少三个标准偏差、至少四个标准偏差、或至少五个标准偏差。附加地,时间阈值可以是相对短的时间段,诸如小于8小时、小于4小时、小于2小时、小于1小时、或小于30分钟。以此方式,操作408可被用来确定是否发生了计算设备的重启、是否已发生关于计算设备的配置改变(例如,软件升级)、计算设备的非易失性存储器的至少一部分是否已被清除(例如,存储器转储)、或其组合,因为这些事件可导致计算资源使用方面的相对大的减少。在其中v中的减小在小于时间阈值内大于第一阈值的情况下,候选泄漏开始时间可以被设置为当前时间t。在其中v中的减小在时间阈值内小于第一阈值的情况下,过程400可移动到410。在410处,过程400包括确定δv是否大于第二阈值。第二阈值可以是预定的值,该预定的值是通过在一时间段内分析一组计算设备对计算资源的使用而确定的参考数据的一部分。在其中δv大于第二阈值的情况下,资源的使用可以继续增加。因此,候选泄漏开始时间可以保持为初始时间t0,并且不被改变为当前时间t。

在其中δv不大于第二阈值的实例中,过程400可以移动到412以确定计算资源在当前时间处的值是否具有小于第三阈值的值。在一些情形中,第三阈值可指示计算资源从当前时间到先前时间的使用的值之间的减少。至少部分地基于确定从先前时间到当前时间计算资源的值已减少,候选泄漏开始时间可被设置为当前时间。以此方式,计算资源的使用的值中的减少可以指示计算资源的泄漏没有正在发生,因为计算设备的使用的值减少。在其中计算资源的使用的值中的变化不大于第二阈值或小于第三阈值的情况下,过程400可以移动到414。在414处,过程400包括确定δv的绝对值是否小于第四阈值并确定δt是否大于第五阈值。具体而言,第四阈值可被设置成使得确定δv的绝对值是否小于第四阈值可以指示计算资源的使用的值是否已保持相对恒定或在指定范围内达一时间段。以此方式,对计算资源的相对一贯的使用不指示资源泄漏正在发生,并且计算资源泄漏的候选开始时间被设置为当前时间。附加地,确定δv的绝对值是否小于第四阈值并且δt是否大于第五阈值还可以指示计算资源的使用已增加达一时间段,但随后回归。因此,在这种情况下,候选泄漏开始时间被设置为当前时间。在其他情况下,δv的绝对值可以大于第四阈值并且δt可以小于第五阈值,在这种情形中,计算资源的泄漏可能正在发生并且候选开始时间可以保持为初始候选开始时间。

在确定计算资源的可能泄漏的候选开始时间要么是当前时间要么是初始时间之后,过程400可以移动到416,其中计算资源的可能泄漏的持续时间被确定。在一些情形中,确定计算资源的潜在泄漏的持续时间可以包括重复操作402、404、406、408、410、412、414中的一个或多个的执行。例如,当新数据被接收时,404、406、408、410、412、414的操作可以被重复以确定计算资源的泄漏的候选开始时间是要被更新为新的当前时间还是要保持为初始候选开始时间。计算资源的潜在泄漏的持续时间可被用来确定计算资源的泄漏是否正在发生,如参考图5更详细地解释的。

图5是用于确定计算资源泄漏的分数并确定用于减轻计算资源泄漏的校正动作的示例过程500的流程图。在502处,过程500包括确定计算资源的泄漏的候选开始时间处的计算资源的使用的值与当前时间处的计算资源的使用的值之间的差异。在一些实现中,操作502可被用来计算值δv。另外,在504处,过程500包括确定计算资源的泄漏的候选开始时间与当前时间之间的持续时间。在各种实现中,操作504可被用来计算值δt。在506处,过程500包括确定在计算资源的泄漏的候选开始时间与当前时间之间增加了的计算资源的使用的值的百分比。在说明性示例中,可以使用以下等式确定正从计算资源泄漏的候选开始时间和当前时间增加的点的数量:

其中%i指示在计算资源泄漏的候选开始时间与当前时间之间的相对于先前数据点增加了的数据点的数量,totalpointst-t0指示在计算资源泄漏的候选开始时间和当前时间之间收集到的数据点的总数,并且decreasepointst-t0指示在计算资源泄漏的候选开始时间与当前时间之间收集到的相对于先前收集到的数据点减少了的数据点的数量。

附加地,在508处,过程500包括确定计算资源泄漏检测分数。计算资源泄漏检测分数可以至少部分地基于计算资源的泄漏的候选开始时间处的计算资源的使用的值与当前时间处的计算资源的使用的值之间的差异、计算资源的泄漏的候选开始时间与当前时间之间的持续时间、计算资源的泄漏的候选开始时间与当前时间之间收集到的计算资源的使用的值的数量、或其组合。在一些情形中,计算资源泄漏检测分数还可以基于一个或多个阈值。在特定实现中,计算资源泄漏检测分数可以至少部分地基于确定计算资源的泄漏的候选开始时间处的计算资源的使用的值与当前时间处的计算资源的使用的值之间的差异大于计算资源的使用的阈值。附加地,计算资源泄漏检测分数可以至少部分地基于确定计算资源的泄漏的候选开始时间与当前时间之间的持续时间大于阈值持续时间。此外,计算资源泄漏检测分数可以至少部分地基于确定计算资源的泄漏的候选开始时间与当前时间之间正在增加的计算资源的使用的值的数量大于点的阈值数量。

计算资源检测分数还可以至少部分地基于与被用来确定资源泄漏检测分数的一个或多个准则相关联的一个或多个权重。例如,资源泄漏检测分数可以至少部分地基于计算资源的泄漏的候选开始时间处的计算资源的使用的值与当前时间处的计算资源的使用的值之间的差异、计算资源的泄漏的候选开始时间与当前时间之间的持续时间、计算资源的泄漏的候选开始时间与当前时间之间正在增加的计算资源的使用的值的数量。该一个或多个权重可以指示被用来确定计算资源泄漏检测分数的准则中的一个或多个准则的相对重要性。在一些实现中,被用来确定资源泄漏检测分数的一个或多个权重可以使用先前获得的计算资源使用数据来被确定。具体而言,先前获得的计算资源使用数据可以从计算资源泄漏曾发生时的情况中得到分析,以确定指示计算资源泄漏的存在的一个或多个因素的相对重要性。在说明性示例中,资源泄漏检测分数可以使用以下等式来被确定:

resourceleakdetectionscore(资源泄漏检测分数)=αδv+β%i+γδt+θsigmoid(v/d),

其中α首先是与δv的值相关联的权重,β是与具有从计算资源泄漏的候选开始时间到当前时间的计算资源使用的增加值的点的数量相关联的第二权重,并且γ是与δt相关联的第三权重。第四权重θ可以与项sigmoid(v/d)相关联,该项旨在将其中对于计算资源泄漏的候选开始时间而言计算资源的使用的值可具有相对高的值的情况纳入考虑。在各种实现中,计算资源泄漏检测分数可以至少部分地基于三个条件被满足。例如,计算资源泄漏检测分数可能不指示计算资源泄漏正在发生,除非δv的值大于第一阈值,δt的值大于第二阈值,并且%i的值大于第三阈值。因此,过程500可被用来基于相对持续地增加超过计算资源的使用的基线模式达阈值时间段的计算资源使用的模式来标识计算资源泄漏。在一些情形中,阈值时间段可以是天、周或月的量级。在各种实现中,资源泄漏检测分数可以被表示为0、1,或者0和1之间的数字。在说明性示例中,如果δv的值小于第一阈值,则资源泄漏检测分数可以是0;如果δt的值小于第二阈值,则资源泄漏检测分数可以是0;如果%i的值小于第三阈值,则资源泄漏检测分数可以是0,如果资源使用的当前值小于平均值+指定值x乘以标准偏差,则资源泄漏检测分数可以是0,或其组合。

图6是示出计算资源的使用的值随时间的变化的图。图6中所示的计算资源的使用的值可以指示计算资源的使用的模式,并且可以参考计算资源的使用的基线模式来被分析。计算资源的使用的值解说了关于图4和图5所描述的许多情况。具体而言,图6包括与第一时间t1相关联的计算资源的使用的第一值v1,与第二时间t2相关联的计算资源的使用的第二值v2;与第三时间t3相关联的计算资源的使用的第三值v3,与第四时间相关联t4相关联的计算资源的使用的第四值v4,与第五时间t5相关联的计算资源的使用的第五值v5,与第六时间t6相关联的计算资源的使用的第六值v6,以及与第七时间t7相关联的计算资源的使用的第七值v7。

在图6的说明性示例中,计算资源的使用的值中的从v1到v2的相对大的减少可以从t1到t2发生。该情况对应于关于图4中的操作408所描述的情况。在该情形中,从t1到t2未检测到资源泄漏,因为计算资源的使用从t1到t2正在减少。另外,由于计算资源从t1到t2的使用中的减少,因此从t1到t2的时间不是候选泄漏开始时间。在特定实现中,计算资源的使用中的从v1到v2的减少可以至少部分地基于一个或多个计算设备的配置改变、一个或多个计算设备的重启、一定量的计算资源的释放、或其组合。

从时间t3到t4,计算资源的使用的值可以从v2减小到v3。因此,既然计算资源的使用从t3到t4正在减少,计算资源的泄漏就没有正在发生。另外,归因于计算资源从t3到t4的使用的值中的减少,因此从t3到t4的时间不是计算资源的泄漏的候选开始时间。从t4到t5,计算资源的使用的值可以从v3增加到v4。在该场景中,归因于计算资源从t4到t5的使用中的增加,时间t4可以被认为是计算资源泄漏的候选开始时间。随着时间从t5移动到t6,计算资源的使用的值不增加并且在时间t6处开始减小到v3。因此,资源泄漏检测系统(诸如图1和图2的资源泄漏检测系统128)可以确定计算资源的泄漏没有正在发生。

从t7到t8,计算资源的使用的值从v3增加到v5。在该说明性情况中,计算资源的使用的值中的变化可以大于阈值水平。因此,t7可以被认为是计算资源的泄漏的候选开始时间。从t7到t8的时间中的变化以及在t7和t8之间收集到的正在增加的点的数量可以不大于相应的阈值水平。另外,计算资源的使用的值在t8之后减小。在计算资源的使用的值开始减小之后,候选开始时间可以从t7改变到计算资源的使用的值开始增加的另一时间。相应地,资源泄漏检测系统可以确定在t7和t8之间计算资源的泄漏没有正在发生。从t9直到当前时间t,计算资源的使用的值也开始增加。因此,t9可以被认为是计算资源的泄漏的候选时间。由于计算资源的使用的值在当前时间t处增加到v6,因此泄漏检测系统可以确定计算资源的使用的值中的从v4到v6的变化是否大于阈值量、从t9到t的持续时间是否大于阈值持续时间、和/或对于计算资源的使用的值而言从t9到t增加的数据点的数量是否大于用于确定计算资源泄漏检测分数的点的阈值数量。在其中计算资源泄漏检测分数大于阈值分数的情形中,泄漏检测系统可以确定在t9和t之间计算资源的泄漏正在发生,并且确定一个或多个校正动作以减轻计算资源的泄漏。

图7是解说用于检测云计算架构中的计算资源的泄漏的示例系统700的框图。系统700包括计算设备702,该计算设备702可被用来执行用于检测云计算架构中的计算资源的泄漏的操作的至少一部分。计算设备702可以与向客户提供服务的服务提供商704相关联。在特定实现中,服务提供商704可以提供与应用的托管、网站的托管、数据存储、执行复杂计算、其组合等相关的服务。另外,服务提供商704可以实现关于资源泄漏检测服务(诸如图1和图2的资源泄漏检测服务128)所描述的操作中的一者或多者。由服务提供商704提供的服务可以经由客户计算设备706、客户用户计算设备708或两者来访问。客户计算设备706可以与从服务提供商704获得服务的客户相关联,并且可以向服务提供商704提供关于由客户从服务提供商704获得的服务的规范。例如,客户计算设备706可以代表客户为服务提供商704正主控的网站提供信息。在另一示例中,客户计算设备706可以提供由服务提供商704实现的与由客户从服务提供商704获得的服务相关的软件。

系统700还可以包括客户用户计算设备708,该客户用户计算设备708可以代表客户访问由服务提供商704提供的信息和/或服务。为了解说,客户用户计算设备708可以包括用于访问由服务提供商704主控的客户的网站的浏览器应用。在另一种解说中,客户用户计算设备708可以访问由服务提供商704主控的客户的应用。客户计算设备706、客户用户计算设备708、或两者可包括膝上型计算设备、平板计算设备、移动通信设备(例如,移动电话)、可穿戴计算设备(例如,手表、眼镜、健身跟踪设备、头戴式显示器、首饰)、便携式游戏设备、其组合等等。

计算设备702可以包括一个或多个网络接口(未示出),以经由一个或多个网络710与诸如客户计算设备706和/或客户用户计算设备708之类的其他计算设备通信。该一个或多个网络710可以包括互联网、有线网络、卫星网络、广域无线通信网络、有线局域网、无线局域网、或公共交换电话网络(pstn)中的一个或多个。

系统700还可以包括云计算架构712,该云计算架构712包括至少一组计算设备714。虽然图7的说明性示例示出了单组计算设备714,但是云计算架构712可以包括多组计算设备。该组计算设备714可以主控虚拟机的多个实例以向服务提供商704的客户提供服务。该组计算设备714可以具有关于向服务提供商704的客户提供服务的类似配置和/或类似的工作负载条件。附加地,该组计算设备714可以具有随时间的对一个或多个计算资源的类似的使用。该组计算设备714可以发送指示该组计算设备714对一个或多个计算资源的使用的数据。在一些情形中,云计算架构712可以与不同于服务提供商704的实体相关联。

计算设备702可以包括一个或多个处理器,诸如处理器716。该一个或多个处理器716可以包括至少一个硬件处理器,诸如微处理器。在一些情形中,该一个或多个处理器716可以包括中央处理单元(cpu)、图形处理单元(gpu)、或cpu和gpu两者、或其他处理单元。附加地,该一个或多个处理器716可包括可以储存程序模块、程序数据、和/或一个或多个操作系统的本地存储器。

另外,计算设备702可以包括一个或多个计算机可读存储介质,诸如计算机可读存储介质718。计算机可读存储介质718可以包括以用于存储信息的任何类型的技术实现的易失性和非易失性和/或可移动和不可移动介质,所述信息诸如计算机可读指令、数据结构、程序模块、或其他数据。此类计算机可读存储介质718可以包括但不限于ram、rom、eeprom、闪存存储器或其他存储器技术,cd-rom、数字多功能盘(dvd)或其他光学存储,磁带盒、磁带、固态存储、磁盘存储、raid存储系统、存储阵列、网络附连存储、存储区域网络、云存储、可移动存储介质、或可被用来储存所需信息且可由计算设备访问的任何其他介质。取决于计算设备702的配置,计算机可读存储介质718可以是有形计算机可读存储介质的类型并且可以是非瞬态存储介质。

计算机可读存储介质718可被用来储存通过一个或多个处理器716可执行的任何数量的功能组件。在许多实现中,这些功能组件包括指令或程序,这些指令或程序通过一个或多个处理器716可执行,并且当被执行时实现用于执行归属于计算设备702的操作的操作逻辑。可以在一个或多个处理器716上被执行以用于实现与如本文中所描述的检测云计算架构中的计算资源的泄漏相关的各种功能和特征的计算设备702的功能组件包括数据收集和组织模块720、训练模块722、泄漏检测模块724、校正动作模块726、和数据呈现模块728。这些模块720、722、724、726、728中的一个或多个可被用来实现图1的资源泄漏检测系统128。在特定实现中,这些模块720、722、724、726、728中的一个或多个可被用来实现图1的示例环境100的至少一部分、图2的示例环境200的至少一部分、框架300、过程400、过程500、或其组合。

计算设备702还可以包括或者被耦合到数据存储730,该数据存储730可以包括但不限于ram、rom、eeprom、闪存存储器、一个或多个硬盘、固态驱动器、光存储器(例如,cd、dvd)、或其他非瞬态存储器技术。数据存储730可以维护被计算设备702用来执行与检测云计算架构中的计算资源的泄漏相关的操作的信息。例如,数据存储730可以储存计算资源使用数据732。另外,数据存储730可以储存参考数据734。

计算资源使用数据732可以包括随时间收集的该组计算设备714对计算资源的使用的数据。在一些实现中,计算资源使用数据732可以包括该组计算设备714中所包括的计算设备对一个或多个计算资源的使用的值以及这些值被获得的相应时间。另外,当该一个或多个计算资源的使用的值被获得时,计算资源使用数据732可以指示该组计算设备714的配置。该组计算设备714的计算设备的配置可以指示由该组计算设备714的计算设备执行的软件组件、经由该组计算设备714提供给服务提供商704的客户的服务、由该组计算设备714为服务提供商704的客户主控的虚拟机的一个或多个实例、由服务提供商704的客户提供的用于代表该客户经由该组计算设备714提供的服务的规范、或其组合。在一些场景中,计算资源使用数据732可以与由该组计算设备714执行的服务实例和/或云基础设施组件/代理对计算资源的使用相对应。

参考数据734可以包括基线数据,该基线数据可以指示该组计算设备714的计算设备对一个或多个计算资源的使用。例如,参考数据734可以包括该组计算设备714对计算资源的使用的基线模式。可以从计算资源使用数据732计算参考数据734。在一些情形中,参考数据734可以为该组计算设备714的计算设备的一个或多个配置指示该组计算设备714对计算资源的典型使用。在特定实现中,参考数据734可以指示与向服务提供商704的客户提供服务相关联的该组计算设备714对计算资源的基线使用。参考数据734可以包括该组计算设备714对一个或多个计算资源的平均使用、该组计算设备714对一个或多个计算资源的中值使用、该组计算设备714对一个或多个计算资源的使用的标准偏差、与该组计算设备714对一个或多个计算资源的使用相关的分布、或其组合。

数据收集和组织模块720可以包括可通过处理器716执行以获得与该组计算设备714对计算资源的使用相关的数据的计算机可读指令。数据收集和组织模块720还可以包括可通过处理器716执行以组织与该组计算设备714对计算资源的使用相关的数据的计算机可读指令。在特定实现中,数据收集和组织模块720可以执行与图2的206的计算资源数据聚集和组织相关的操作和/或关于图3的框架300所描述的操作332、340。例如,数据收集和组织模块720可以利用一个或多个代理来监视该组计算设备714对计算资源的使用以及收集指示计算资源的使用的数据。指示计算资源的使用的数据可以从由该组计算设备714以规则的时间间隔执行的一个或多个软件组件获得,所述规则的时间间隔诸如0.5秒、1秒、5秒、10秒、30秒、1分钟、5分钟、10分钟、20分钟、30分钟、45分钟、60分钟、或90分钟。由数据收集和组织模块720获得的数据可以与由该组计算设备714执行的一个或多个服务实例和/或一个或多个云基础设施组件/代理所作的计算资源使用相关。

在一些情形中,数据收集和组织模块720可以减少被用来确定计算资源泄漏是否正在发生的数据的量。为了解说,数据收集和组织模块720可以从以某时间间隔收集到的多个值中间确定计算资源的使用的最大值。在说明性示例中,数据收集和组织模块720可以在5分钟的间隔中获得50个值,并且从这50个值中标识计算资源的使用的最大值。在另一说明性示例中,数据收集和组织模块720可以利用这50个值来标识计算资源的使用的平均值或计算资源的使用的中值。

训练模块722可以包括可通过处理器716执行以产生参考数据734的计算机可读指令。训练模块722还可以标识可被用来指示计算资源的泄漏可能正在发生的参数。在特定实现中,训练模块722可以分析由数据收集和组织模块720获得的数据,以确定计算资源的使用的平均值、计算资源的使用的中值、计算资源的使用的标准偏差、计算资源的使用的分布、或其组合。在一些情形中,计算资源的使用的分布可以指示高斯分布。在说明性示例中,训练模块722可以通过确定以下各项来确定计算资源的使用的分布:计算资源在一时间间隔内的使用的最小值、大于在该时间间隔内获得的计算资源的使用的值的1%的计算资源的使用的值、大于在该时间间隔内获得的计算资源的使用的值的25%的计算资源的使用的值、大于在该时间间隔内获得的计算资源的使用的值的70%的计算资源的使用的值、大于在该时间间隔内获得的计算资源的使用的值的99%的计算资源的使用的值,以及计算资源在该时间间隔内的使用的最大值。

附加地,当数据收集和组织模块720获得新数据时,训练模块722可以更新参考数据734和/或被用来标识计算资源泄漏的参数。因此,随着指示计算资源的使用的新数据被获得,参考数据734(诸如基线计算资源使用模式)以及被用来标识计算资源泄漏的其他参数可以被持续地更新。例如,计算资源的使用的平均值、计算资源的使用的中值、计算资源的使用的标准偏差、计算资源的使用的分布、或其组合可以至少部分地基于计算资源的使用的新的值来被修改。此外,在一些情况下,训练模块722可以处理可能已在当前时间之前大于指定的时间间隔被获得了的数据。换言之,比阈值年龄更旧的计算资源的使用的值可以在确定参考数据734的一个或多个部分时被免于考虑。在一些实现中,训练模块722可以利用分区增量离散化方法来减少被用来获得参考数据734的数据的量。在说明性示例中,训练模块可以利用以下等式来减少被用来确定参考数据734的数据:

其中δ与在确定参考数据734时被用来从考虑中移除数据的时间量相关。通过移除比阈值年龄更旧的计算资源的使用的值,训练模块722可以最小化被计算设备702用来检测云计算架构中的计算资源的泄漏的计算资源和存储器资源。

泄漏检测模块724可以包括可通过处理器716执行以检测云计算架构中的计算资源的泄漏的计算机可读指令。泄漏检测模块724可以利用来自包括计算资源的使用的值的计算资源使用数据732的当前数据,并且还可以利用参考数据734来确定计算资源的泄漏的候选开始时间。在一些情形中,泄漏检测模块724可以至少部分地基于计算资源的使用的值随时间的递增增加来标识计算资源的泄漏的候选开始时间。泄漏检测模块724可以至少部分地基于计算资源的使用继续增加来保持计算资源的泄漏的候选开始时间,直到指示计算资源泄漏正在发生的一个或多个准则被满足或直到确定计算资源的泄漏没有正在发生。

例如,泄漏检测模块724可以至少部分地基于确定计算资源的使用的值已增加了指定的量达特定时间段来确定计算资源的泄漏正在发生。在特定实现中,泄漏检测模块724可以确定用来指示计算资源的泄漏的概率的分数。在一些情况下,随着分数增加,计算资源的泄漏正在发生的概率也增加。泄漏检测模块724可以至少部分地基于计算资源随时间的使用的值中的增加的量、计算资源的使用的值一直在增加的时间段、在该时间段内收集到的计算资源的使用的多个值、或其组合来确定分数。泄漏检测模块724可以至少部分地基于对应于预定阈值分数的分数来确定计算资源的泄漏已经发生。

附加地,泄漏检测模块724可以维持计算资源的泄漏的候选开始时间,直到确定计算资源的使用的值中的减少发生或者直到确定计算资源的使用中的增加小于阈值量。在这些情况下,泄漏检测模块724可以将计算资源的泄漏的新候选开始时间确定到当前时间。以此方式,泄漏检测模块724可递增地重置计算资源的泄漏的候选开始时间,直到计算资源的使用的值开始增加到阈值量以上。

校正动作模块726可以包括计算机可读指令,该计算机可读指令可通过处理器716执行以至少部分地基于泄漏检测模块724确定计算资源的泄漏正在发生来确定可以减少计算资源的使用的一个或多个动作。在一些实现中,校正动作模块726可以确定软件更新可以减少与计算资源泄漏相关联的计算资源的使用。在其他实现中,校正动作模块726可确定被包括在一组计算设备中的一个或多个计算设备的重启可以减少与计算资源泄漏相关联的计算资源的使用。附加地,校正动作模块726可以将一个或多个信号、一个或多个指令、或两者发送到该组计算设备714中所包括的一个或多个计算设备,以实现用来减少与计算资源泄漏相关联的计算资源的使用的操作。

数据呈现模块728可以包括可通过处理器716执行以呈现与计算资源的使用相关的数据的计算机可读指令。在一些情形中,数据呈现模块728可以提供指示云计算架构中所包括的一组或多组计算设备对计算资源的使用的一个或多个用户界面。该一个或多个用户界面可以指示计算资源的泄漏正在云计算架构中所包括的一个或多个计算设备组中发生。该一个或多个用户界面可以包括可选择的选项,以提供关于与计算资源泄漏相关联的计算设备的配置、与计算资源泄漏相关联的计算设备对一个或多个计算资源的使用、或两者的增加的细节。在特定实现中,由数据呈现模块728产生的该一个或多个用户界面可以由与服务提供商704相关联的用户访问。此外,由数据呈现模块728提供的该一个或多个用户界面可以由客户计算设备706访问。

在图8和9的流程图中,每个框表示可以用硬件、软件、或其组合实现的一个或多个操作。在软件的上下文中,各个框表示当由一个或多个处理器执行时致使处理器执行既定操作的计算机可执行指令。一般而言,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、模块、组件、数据结构等。描述各个框的次序并不旨在被解释为限制,并且任何数量的所描述的操作可以按任何次序和/或并行地组合以实现该过程。出于讨论的目的,可以参考如以上所描述的图1、2、3、4、5、6或7来描述过程800和900,但是其他模型、框架、系统和环境可以实现这些过程。

图8是用于检测云计算架构中的计算资源的泄漏的第一示例过程800的流程图。在802处,过程800包括获得指示一个或多个计算设备在第一时间段内对计算资源的使用的第一量的第一数据。该一个或多个计算设备可被包括在云计算架构的至少一部分中,该云计算架构主控虚拟机的一个或多个实例以向服务提供商的客户提供服务。在一些情形中,计算资源的使用的值可以被周期性地(诸如以特定时间间隔)获得。附加地,第一数据可以包括从该一个或多个计算设备对计算资源的使用的多个值中间选择的计算资源的使用的值。在说明性示例中,可以从计算设备在一时间段内的使用的多个值中间获得最大值、中值、或平均值。

在一些实现中,第一数据可以包括来自多个计算设备的计算资源使用数据,该多个计算设备基于该多个计算设备的计算资源使用数据之间的相似性而被分组。例如,可以关于指示第一计算设备在一时间段内对计算资源的使用的数据和指示第二计算设备在该时间段内对计算资源的使用的附加数据来执行比较。相似性度量可以至少部分地基于该比较来被确定。在其中相似性度量高于阈值的情况下,来自第一计算设备的计算资源使用数据和来自第二计算设备的计算资源使用数据可以在确定参考数据时和/或在确定关于第一计算设备和第二计算设备对计算资源的使用的泄漏是否正在发生时被分组在一起。

在804处,过程800包括至少部分地基于第一数据来确定参考数据。参考数据可以至少包括计算资源在第一时间段内的使用的值的分布。参考数据还可以包括该一个或多个计算设备对计算资源的使用的中值、该一个或多个计算设备对计算资源的使用的平均值、该一个或多个计算设备对计算资源的使用的标准偏差、或其组合。在一些情形中,参考数据可以在从该一个或多个计算设备获得新的计算资源使用数据时被更新。附加地,先前被用来确定参考数据的计算资源使用数据中的一些可以在从该一个或多个计算资源获得新的计算资源使用数据时被丢弃。例如,从当前时间获得的超过阈值时间段的计算资源使用数据可以从被用来产生参考数据的数据集中被移除。

在806处,过程800包括获得指示该一个或多个计算设备在继第一时间段之后的第二时间段内对计算资源的使用的第二量的第二数据。第二数据可以包括在参考数据使用第一数据被产生之后从该一个或多个计算设备获得的新的计算资源使用数据。第二时间段可以包括开始时间、结束时间以及在开始时间和结束时间之间的一个或多个中间时间。在一些情形中,开始时间、一个或多个中间时间、或两者可以被认为是计算资源的泄漏的候选开始时间。附加地,在一些情形中,在第一时间段和第二时间段之间被从该一个或多个计算资源获得的计算资源使用数据可以包括计算资源泄漏的一个或多个候选开始时间。当在确定初始候选开始时间之后该一个或多个计算设备对计算资源的使用减少时或者当该一个或多个计算设备在一时间段内对计算资源的使用增加了小于阈值量时,计算资源的泄漏的候选开始时间可以被修改为后续时间。

在808处,过程800包括至少部分地基于计算资源在第二时间段内的使用中的增加的量和参考数据来确定计算资源使用度量的值。在说明性示例中,计算资源使用度量可以与先前所定义的项δv相对应。

在一些情形中,计算资源使用度量可被用来标识计算资源泄漏的候选开始时间。例如,在其中计算资源使用度量高于阈值达一时间段的情况下,与该时间段相关联的开始时间可以被认为是计算资源泄漏的候选开始时间。在其他情形中,计算资源的使用可以减少或增加小于阈值量。在这些场景中,附加时间段的计算资源使用度量可以具有小于一个或多个阈值的值。继续该示例,与附加时间段相关联的开始时间可以不被视为计算资源泄漏的候选开始时间,并且在一些实例中,该附加时间段的结束时间可以被认为是计算资源泄漏的候选开始时间,有待分析从该一个或多个计算设备获得的新的计算资源使用数据。

在810处,过程800包括至少部分地基于计算资源使用度量的值和第二时间段的持续时间来确定计算资源泄漏正在发生。在特定实现中,计算资源泄漏可以至少部分地基于计算资源使用度量的值高于阈值以及第二时间段的持续时间长于阈值时间段而发生。在一些情形中,一个或多个用户界面可被产生以显示与计算资源泄漏相关的信息。例如,指示关于正由该一个或多个计算设备执行的一个或多个软件组件的计算资源泄漏正在发生的用户界面可被产生。该一个或多个软件组件可以包括由虚拟机执行以向服务提供商的客户提供服务的服务实例和/或云基础设施组件/代理的实例集。为了解说,用户界面可以指示关于正在该一个或多个计算设备上执行的负载平衡软件组件的计算资源泄漏正在发生,或者关于正在该一个或多个计算设备上执行的监视软件组件的计算资源泄漏正在发生。附加地,一个或多个用户界面可以指示关于该一个或多个计算设备的一个或多个配置的计算资源泄漏正在发生。在说明性示例中,该一个或多个用户界面可以指示该一个或多个计算设备在与服务提供商的客户所提供的软件的测试阶段相关联的第一配置中所作的计算资源使用以及该一个或多个计算设备在与实现服务提供商的客户的软件的生产阶段相关联的第二配置中所作的计算资源使用。

在812处,过程800包括至少部分地基于计算资源泄漏发生来确定用来减少计算资源的使用的量的一个或多个动作。例如,该一个或多个动作可以包括重启该一个或多个计算设备。在另一示例中,该一个或多个动作可以包括更新正由该一个或多个计算设备执行的软件,因为一些计算资源泄漏可能由软件缺陷造成。在一些情形中,有缺陷的软件可由服务提供商的客户提供,其中服务提供商正在使用包括该一个或多个计算设备的云计算架构,以向客户提供与软件相关的服务。

图9是用于检测云计算架构中的计算资源的泄漏的第二示例过程900的流程图。在902处,过程900包括获得指示一个或多个计算设备在第一时间段内对计算资源的使用的量的计算资源使用数据。在904处,过程900包括至少部分地基于该计算资源使用数据来确定参考数据。参考数据可以至少包括该一个或多个计算设备在第一时间段内对计算资源的使用的量的值的分布。在一些情形中,参考数据可以至少部分地基于在第一时间段内获得计算资源使用数据之后被获得的计算资源使用数据来被更新。

在906处,过程900包括收集该一个或多个计算设备的计算设备在继第一时间段之后的第二时间段内对计算资源的使用的一系列值。在一些实现中,该一系列值中的每个值可以以预定的时间间隔来被收集。附加地,该系列中所包括的每对值可以与彼此进行比较以确定计算资源的使用正随着该系列的进展而增加,计算资源的使用正随着该系列的进展而减少,或者计算资源的使用关于该系列的某些部分而正在减少以及关于该系列的其他部分而正在增加。

在908处,过程900包括至少部分地基于计算设备在第二时间段内对计算资源的使用中的增加的量和参考数据来确定计算资源使用度量的值。计算资源使用度量的值可以取决于除了计算资源的使用中的增加和参考数据之外的因素。例如,在910处,过程900包括确定第二时间段的持续时间,并且在912处,过程900包括确定该系列中所包括的相对于该系列中的先前值增加了的值的数量。在确定该系列中所包括的相对于该系列中的先前值增加了的值时,成对的值被分析。为了解说,时间序列中的第一值可以在时间t处被收集,时间序列中的第二值可以在时间t+1处被收集,并且时间序列中的第三值可以在时间t+2处被收集。继续该解说,第三值和第二值之间的差异可以被确定,并且第二值和第一值之间的差异可以被确定。时间序列中的值可以在该值和在前值之间的差是正数时被确定为是增加的。在说明性场景中,第三值可以基于确定该第三值和第二值之间的差是正数而被确定为是该系列中的增加的值。

在914处,过程900包括至少部分地基于计算资源使用度量的值、第二时间段的持续时间、和该系列中所包括的相对于该系列中的先前值增加了的值的数量来确定计算资源泄漏检测分数。在一些情形中,计算资源使用度量的值可以与第一权重相关联,第二时间段的持续时间可以与第二权重相关联,并且该系列中所包括的相对于该系列中的先前值增加了的值的数量可以与第三权重相关联。在特定实现中,计算资源泄漏检测分数可以进一步至少部分地基于第一权重、第二权重和第三权重。

附加地,确定计算资源泄漏检测分数可以包括确定计算资源使用度量的值大于第一阈值;确定第二时间段的持续时间大于第二阈值;以及确定该系列中所包括的相对于该系列中的先前值增加了的值的数量大于第三阈值。在一些实现中,第一阈值、第二阈值和第三阈值可被设置成使得与确定计算资源泄漏检测分数相关联的条件在可能破坏被提供给服务提供商的一个或多个客户的服务的计算资源泄漏正在发生时超过阈值。泄漏检测分数可以至少部分地基于计算资源泄漏检测分数来指示关于一个或多个计算设备的计算资源的泄漏正在发生的概率。至少部分地基于资源泄漏检测分数高于阈值,一个或多个动作可被确定以减少一个或多个计算设备对计算资源的使用。

图10解说了指示在云计算架构中执行的软件组件对计算资源的使用的第一示例用户界面1000。具体而言,用户界面1000指示由云计算架构中所包括的计算设备执行的多个不同软件组件对计算资源的使用。在各种实现中,由用户界面1000指示的计算资源使用可以对应于云计算架构中所包括的计算设备的特定分组或群集。软件组件可以包括由虚拟机实现的服务实例,以向与云计算架构相关联的服务提供商的客户提供服务。软件组件还可以包括云基础设施组件/代理的实例。在图10的说明性示例中,软件组件包括第一代理、第二代理、第一服务和第二服务。附加地,正被软件组件使用的计算资源可以包括存储器分配、网络资源使用、处理器周期、其组合等。此外,用户界面1000指示由不同环境中的软件组件所作的计算资源使用。不同的环境可以与计算设备所提供的服务、计算设备的配置(例如,硬件配置、软件配置)、或两者相关。在图10的说明性示例中,用户界面1000指示在第一环境、第二环境、和第三环境中的计算资源使用。

软件组件所作的计算资源使用可以由饼图指示,诸如示例饼图1002。饼图的阴影可以指示其中计算资源泄漏可能正在发生的情况以及其中计算资源泄漏可能没有正在发生的情况。在其中计算资源的泄漏被检测到的情况下,导致计算资源泄漏的软件组件的实例可被标识为与计算资源泄漏相关联。在特定实现中,饼图的阴影可以指示关于云计算架构中所包括的一组计算设备的计算资源泄漏正在发生的概率。在一些情形中,饼图的阴影可以改变以反映一组计算设备的一个或多个计算设备可能正在经历计算机资源泄漏的概率。例如,第一饼图1004可包括第一部分1006和第二部分1008。在图10的说明性示例中,第一部分1006可以指示被包括在与计算资源的泄漏无关联的一组计算设备中的计算设备的量,诸如总计算设备的百分比。为了解说,由第一部分1006表示的计算设备所作的计算资源使用的模式可以在该组计算设备的计算资源使用的基线模式的阈值内。附加地,在图10的说明性示例中,第二部分1008可指示可以与计算资源的泄漏相关联的一组计算设备中所包括的附加计算设备的量。关于与第二部分1008相关联的附加计算设备,附加计算设备所作的计算资源使用的模式可以在该组计算设备的计算资源使用的基线模式的阈值之外。以此方式,用户界面1000可指示可以与计算设备资源的泄漏相关联的计算设备的数量,并且计算设备的操作可能需要被调查或修改以减少计算资源的使用。

用户界面1000还包括第二饼图1010,该第二饼图1010指示被包括在与云计算架构相关联的一组计算设备中的多个计算设备中的不同程度的计算资源泄漏。由第二饼图1010指示的计算资源的泄漏可以关于第二环境中的第二代理而发生。例如,第二饼图1010包括第一部分1012、第二部分1014、和第三部分1016。第一部分1012可以表示与计算资源的泄漏无关联的计算设备的数量。第二部分1014和第三部分1016可表示可以与计算资源的泄漏相关联的计算设备的数量。第二部分1014和第三部分1016可以指示满足或超过计算资源的泄漏可能正在发生的概率的不同阈值的计算设备的量。为了解说,第二部分1014可以表示与计算资源的泄漏可能正在发生的第一概率相关联的第一数量的计算设备,并且第二部分1016可以表示与计算资源的泄漏可能正在发生的不同于第一概率的第二概率相关联的第二数量的计算设备。

在各种实现中,输入设备可被用来选择用户界面1000中所包括的饼图或饼图的一部分。例如,鼠标设备可被用来点击饼图或饼图的一部分,手指或触控笔可被用来触摸饼图或饼图的一部分,或者输入设备可悬停在饼图或饼图的一部分上。响应于对饼图或饼图的一部分的选择,关于与所选择的饼图或饼图的一部分相关联的计算设备的附加信息可以被提供。在说明性示例中,对第一饼图1004的第二部分1008的选择可以导致包括与对应于第二部分1008的计算设备相关联的信息的附加用户界面被显示。在一些情形中,附加用户界面可以被显示在用户界面1000内,包括诸如计算设备的各分组的一个或多个标识符、该一个或多个分组内可能与计算资源的泄漏相关联的计算设备的数量、该一个或多个分组内可能与计算资源的泄漏无关联的计算设备的数量、被包括在该一个或多个分组中的计算设备的配置、被包括在该一个或多个组中的可能与计算设备的泄漏相关联的计算设备的一个或多个软件组件、或其组合等信息。

图11解说了指示在云计算架构中执行的软件组件对计算资源的使用的第二示例用户界面1100。在一些情形中,用户界面1100可以基于对图10的用户界面1000的用户界面特征的选择来被显示。用户界面1100指示由云计算架构中和某些环境中的计算设备执行的指定软件组件对特定计算资源的使用。在图11的说明性示例中,用户界面1100指示与第一代理、第二代理、和与第一环境和第二环境相关联的第一服务相关的计算资源的使用。附加地,用户界面1100指示在云计算架构的计算设备上操作的相应软件组件所使用的第一计算资源和第二计算资源。软件组件可以包括由虚拟机实现的服务实例,以向与云计算架构相关联的服务提供商的客户提供服务。软件组件还可以包括云基础设施组件/代理的实例。第一计算资源和第二计算资源可以包括存储器分配、网络资源使用、处理器周期、其组合等。第一环境和第二环境可以与计算设备所提供的服务、计算设备的配置(例如,硬件配置、软件配置)、或两者相关。

软件组件所作的计算资源使用可以由条形图指示,诸如与第一环境中的第一代理对第一计算资源的使用相关联的示例条形图1102。条形图的阴影可以指示其中计算资源泄漏可能正在发生的情况以及其中计算资源泄漏可能没有正在发生的情况。在特定实现中,条形图的阴影可以指示对于关于云计算架构中所包括的一组计算设备的特定计算资源而言计算资源泄漏正在发生的概率。在一些情形中,条形图的阴影可以改变以反映一组计算设备的一个或多个计算设备可能正在经历关于特定计算资源的计算机资源泄漏的概率。例如,第一条形图1104可包括第一部分1106和第二部分1108。在图11的说明性示例中,第一部分1106可以指示被包括在与关于第一环境中的第二代理对第二计算资源的使用的计算资源的泄漏无关联的一组计算设备中的计算设备的量,诸如总计算设备的百分比。为了解说,由第一部分1106表示的计算设备对第二计算资源的使用的模式可以在该组计算设备的第二计算资源的使用的基线模式的阈值内。附加地,在图11的说明性示例中,第二部分1108可指示可以与第二计算资源的泄漏相关联的一组计算设备中所包括的附加计算设备的量。关于与第二部分1108相关联的附加计算设备,附加计算设备对第二计算资源的使用的模式可以在该组计算设备的第二计算资源的使用的基线模式的阈值之外。以此方式,用户界面1100可指示可以与第二计算资源的泄漏相关联的计算设备的数量,并且计算设备的操作可能需要被调查或修改以减少第二计算资源的使用。

用户界面1100还包括第二条形图1110,该第二条形图1010指示被包括在与云计算架构相关联的一组计算设备中的多个计算设备中的第二计算资源的不同程度的泄漏。由第二条形图1110指示的第二计算资源的泄漏可以关于第二环境中的第二代理而发生。例如,第二饼图1110包括第一部分1112、第二部分1114、和第三部分1116。第一部分1112可以表示与第二计算资源的泄漏无关联的计算设备的数量。第二部分1114和第三部分1116可表示可以与第二计算资源的泄漏相关联的计算设备的数量。第二部分1114和第三部分1116可以指示满足或超过第二计算资源的泄漏可能正在发生的概率的不同阈值的计算设备的量。为了解说,第二部分1114可以表示与第二计算资源的泄漏可能正在发生的第一概率相关联的第一数量的计算设备,并且第二部分1116可以表示与第二计算资源的泄漏可能正在发生的不同于第一概率的第二概率相关联的第二数量的计算设备。

在各种实现中,输入设备可被用来选择用户界面1100中所包括的条形图或条形图的一部分。例如,鼠标设备可被用来点击条形图或条形图的一部分,手指或触控笔可被用来触摸条形图或条形图的一部分,或者输入设备可悬停在条形图或条形图的一部分上。响应于对条形图或条形图的一部分的选择,关于与所选择的条形图或条形图的一部分相关联的计算设备的附加信息可以被提供。在说明性示例中,对第一条形图1108的第二部分1104的选择可以导致包括与对应于第二部分1108的计算设备相关联的信息的附加用户界面被显示。在一些情形中,附加用户界面可以被显示在用户界面1100内,包括诸如计算设备的各分组的一个或多个标识符、该一个或多个分组内可能与计算资源的泄漏相关联的计算设备的数量、该一个或多个分组内可能与计算资源的泄漏无关联的计算设备的数量、被包括在该一个或多个分组中的计算设备的配置、被包括在该一个或多个分组中的可能与计算设备的泄漏相关联的计算设备的一个或多个软件组件、或其组合等信息。

图12解说了指示在云计算架构中执行的软件组件对计算资源的使用的第三示例用户界面1200。在一些实现中,用户界面1200可以基于对图10的用户界面特征或图11的用户界面特征的选择来被显示。在特定实现中,用户界面1200可以包括关于可以与计算资源的泄漏相关联的计算设备的分组或群集的信息。例如,用户界面1200包括列“计算设备分组标识符”,其包括可以与计算资源的泄漏相关联的计算设备的分组的标识符。这些标识符可以是被分配给计算设备的特定分组的唯一标识符。在一些情况下,计算设备的分组可以与特定配置、特定服务、或两者相关联。

附加地,用户界面1200包括指示可以与泄漏相关联的特定计算资源的列“计算资源”。在图11的说明性示例中,用户界面1100包括关于可以与第一计算资源的泄漏相关联的计算设备的分组的信息。用户界面1200还包括列“最差计算设备标识符”,其指示正在根据与计算资源的基线使用模式偏离最多的模式利用计算资源的每个相应分组中所包括的计算设备的标识符。用户界面1200包括列“开始泄漏值”和“开始泄漏时间”。“开始泄漏值”列指示第一计算资源在第一计算资源的泄漏的可能开始时间处的使用的值。“开始泄漏时间”列包括第一计算资源的泄漏开始或可能已经开始(即,计算资源泄漏正在发生的概率可能低于特定阈值,但高于一个或多个附加的阈值)的日期和/或时间(未示出)。

此外,用户界面1200包括“最后点值”列和“最后点时间”列。“最后点值”列包括在第一计算资源的使用的值被收集的最新近的时间处的第一计算资源的使用的值。第一计算资源的使用的值被收集的最新近时间被包括在“最后点时间”列中。用户界面1200还可以包括其他信息,诸如计算设备的特定分组中的可以与第一计算资源的泄漏相关联的计算设备的数量、计算设备的特定分组中的可能与第二计算资源的泄漏无关联的计算设备的数量、关于可能与计算资源的泄漏相关联的多个计算设备的相对于其他计算资源的计算资源的排名、指示计算资源的泄漏正在发生的概率的分数、或其组合。在一些场景中,可以从用户界面1000、用户界面1100、或用户界面1200中的一个或多个访问附加用户界面。例如,包括关于可以与计算资源的泄漏相关联的特定计算设备的信息的用户界面可以被生成,诸如包括特定计算设备的标识符的用户界面、特定计算设备是其一部分的一组计算设备的标识符、与泄漏或可能的泄漏相关联的计算资源、计算资源的使用的值、泄漏或可能的泄漏开始的时间、或其组合。

图13示出了用于计算机的示例计算机架构1300的附加细节,所述计算机诸如能够执行以上所描述的用于利用计算机实现的代理向各个个体传达信息的程序组件的计算设备106、108、110、计算设备702、客户计算设备706、和/或客户用户计算设备708。因此,图13所解说的计算机架构1300例示了服务器计算机、移动电话、pda、智能电话、台式计算机、上网本计算机、平板计算机、膝上型计算机、和/或可穿戴计算机的架构。计算机架构1300是可被用来全部或部分地执行本文中所呈现的软件组件的各方面的示例架构。

图13中所解说的计算机架构1300包括中央处理单元1302(“cpu”)、包括随机存取存储器1306(“ram”)和只读存储器(“rom”)1308的系统存储器1304、以及将存储器1304耦合到cpu1302的系统总线1310。基本输入/输出系统(“bios”)被储存在rom1308中,该系统包含帮助诸如在启动期间在计算机架构1300中的各元件之间传递信息的基本例程。计算机架构1300进一步包括用于储存操作系统1314、程序、(诸)模块1316(例如,图1和图2的资源泄漏检测系统128以及图7的模块720、722、724、726、728)的大容量存储设备1312。附加地、和/或替代地,大容量存储设备1312可以储存传感器数据1318、图像数据1320(例如,照片、计算机生成的图像、关于场景中的真实和/或虚拟对象的对象信息、关于任何前述的元数据等)、校准数据1322、内容数据1324(例如,计算机生成的图像、视频、场景等)等等,如本文中所描述。

大容量存储设备1312通过连接至总线1310的大容量存储控制器(未示出)连接至cpu1302。大容量存储设备1312及其相关联的计算机可读介质为计算机架构1300提供非易失性存储。大容量存储设备1312、存储器1304、和计算机可读存储介质718是根据本公开的计算机可读介质的示例。虽然对此处所包含的计算机可读介质的描述引用了诸如固态驱动器、硬盘或cd-rom驱动器之类的大容量存储设备,但是本领域的技术人员应该领会,计算机可读介质可以是可由计算机架构1300访问的任何可用的计算机存储介质或通信介质。

通信介质包括诸如载波或其他传输机制等已调数据信号中的计算机可读指令、数据结构、程序模块或其他数据并且包含任何传递介质。术语“已调数据信号”意指使其一个或多个特性以如在信号中编码信息的方式来被更改或设定的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、rf、红外及其他无线介质之类的无线介质。任何以上的组合应当也被包括在通信介质的范围内。

作为示例而非限制,计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机存储介质包括但不限于ram、rom、可擦除可编程只读存储器(“eprom”)、电可擦除可编程只读存储器(“eeprom”)、闪存存储器或其他固态存储器技术、紧凑碟只读存储器(“cd-rom”)、数字多功能盘(“dvd”)、高清晰度/密度数字多功能/视频碟(“hd-dvd”)、blu-ray(蓝光)碟、或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可被用来储存所需信息并且可由计算机架构1300访问的任何其他介质。出于权利要求的目的,短语“计算机存储介质”、“计算机可读存储介质”及其变体不包括通信介质。

根据各种配置,计算机架构1300可以使用通过网络1326和/或另一网络(未示出)的到远程计算机的逻辑连接来在联网环境中操作。计算机架构1300可以通过连接至总线1310的网络接口单元1328来连接到网络1326。应当领会,网络接口单元1328还可以被用来连接到其他类型的网络和远程计算机系统。计算机架构1300还可以包括输入/输出控制器1330,以用于接收和处理来自(诸)输入设备或(诸)输入接口的输入,以及向输出设备或输出接口提供输出。

应当领会,本文中所描述的软件组件在被加载到cpu1302中并且被执行时,可将cpu1302和整个计算机架构1300从通用计算系统转换为被定制为促成本文中所呈现的功能性的专用计算系统。cpu1302可以用任意数量的晶体管或其他分立电路元件(它们可以单独地或共同地采用任意数量的状态)来构建。更具体而言,cpu1302可响应于被包含在本文中所描述的软件模块中的可执行指令来作为有限状态机操作。这些计算机可执行指令可以通过指定cpu1302如何在各状态之间转换来变换cpu1302,由此变换了构成cpu1302的晶体管或其他分立硬件元件。在一些示例中,(诸)处理器716可以对应于cpu1302。

对本文中所呈现的软件模块进行编码也可变换本文中所呈现的计算机可读介质的物理结构。在本说明书的不同实现中,物理结构的具体变换可取决于各种因素。此类因素的示例可以包括但不仅限于用于实现计算机可读介质的技术、计算机可读介质被表征为主存储还是辅存储,等等。例如,如果计算机可读介质被实现为基于半导体的存储器,则本文中所描述的软件可以通过变换半导体存储器的物理状态而在计算机可读介质上被编码。例如,软件可以变换构成半导体存储器的晶体管、电容器、或其他分立电路元件的状态。软件还可以变换这些组件的物理状态以便在其上存储数据。

作为另一示例,本文中所描述的计算机可读介质可以使用磁或光技术来实现。在这些实现中,本文中所呈现的软件可以当在磁或光介质中编码了软件时变换所述磁或光介质的物理状态。这些变换可以包括改变给定磁介质内的特定位置的磁性。这些变换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变这些位置的光学特性。在没有偏离本说明书的范围和精神的情况下,物理介质的其他变换是可能的,前面提供的示例只是为了便于此讨论。

鉴于以上内容,应当领会,在计算机架构1300中发生许多类型的物理变换以便储存和执行本文中所呈现的各软件组件。还应领会,计算机架构1300可包括其他类型的计算实体,包括手持式计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员已知的其他类型的计算实体。还构想了,计算机架构1300可以不包括图13中所示的所有组件,可包括未在图13中显式地示出的其他组件,或者可利用与图13中所示的完全不同的架构。

图14描绘了能够执行本文中所描述的用于实现云计算架构中的计算资源的泄漏的检测的软件组件的示例分布式计算环境1400。因此,图14中所解说的分布式计算环境1400可被用来执行本文中所呈现的用于实现本文中所描述的技术的各方面的软件组件的任何方面。

根据各种实现,分布式计算环境1400包括在网络1404上操作、与该网络通信、或者作为该网络的一部分的计算环境1402。在至少一个示例中,计算环境1400中的至少一些可以对应于图1和图2的泄漏检测系统128和/或图7的计算设备702。网络1404可以是或可以包括(诸)网络710,如以上参考图7所描述的。网络1404还可包括各种接入网络。一个或多个客户端设备1406a-1406n(在下文中统称和/或通称为“客户端1406”)可经由网络1404和/或其他连接(在图14中未例示)来与计算环境1402通信。作为示例,图7的客户计算设备706和客户用户计算设备708可以对应于客户端设备1406a-1406q(统称为“客户端1406”)中的一个或多个,其中取决于所需的架构,q可以是大于或等于1的任何整数。在一个所解说的配置中,客户端1406包括诸如膝上型计算机、台式计算机、或其他计算设备之类的计算设备1406a,板式或平板计算设备(“平板计算设备”)1406b,诸如移动电话、智能电话、或其他移动计算设备之类的移动计算设备1406c,服务器计算机1406d,和/或诸如可穿戴计算设备之类的其他设备1406n。应当理解,任意数量的客户端1406可以与计算环境1402通信。这里参考图13解说和描述了客户端1406的示例计算架构。应当理解,所解说的客户端1406以及本文中所解说和描述的计算架构是说明性的,并且不应被解释为以任何方式进行限制。

在所解说的配置中,计算环境1402包括应用服务器1408、数据存储1410,以及一个或多个网络接口1412。根据各种实现,应用服务器1408的功能性可由作为网络1404一部分执行或者与该网络通信的一个或多个服务器计算机提供。

在至少一个示例中,应用服务器1408可以主控各种服务、虚拟机、门户、和/或其他资源。在所解说的配置中,应用服务器1408可以主控一个或多个虚拟机1414以用于执行应用或其他功能性。根据各种实现,虚拟机1414可以执行用于检测云计算架构中的计算资源的泄漏的一个或多个应用和/或软件模块。在一些情形中,应用服务器1408所提供的服务可以与服务提供商代表客户提供的服务相关。

应用服务器1408还可以主控或提供对一个或多个门户、链接页面、web站点、和/或其他信息(“web门户”)1416的访问。web门户1416可被用来与一个或多个客户端计算机通信。应用服务器1408可包括一个或多个邮箱服务1418。根据各种实现,应用服务器1408还包括一个或多个邮箱消息收发服务1420。邮箱服务1418和/或消息收发服务1420可以包括电子邮件(“email”)服务、各种个人信息管理(“pim”)服务(例如,日历服务、联系人管理服务、协作服务等)、即时消息收发服务、聊天服务、论坛服务、和/或其他通信服务。

应用服务器1408还可包括一个或多个社交联网服务1422。社交联网服务1422可包括各种社交联网服务,包括但不限于,用于共享或张贴状态更新、即时消息、链接、照片、视频、和/或其他信息的服务,用于评论或显示对文章、产品、博客、或其他资源的兴趣的服务,和/或其他服务。在一些配置中,社交联网服务1422可包括脸书社交联网服务、专业人士联网服务、社交联网服务、地理联网服务、办公同事联网服务等等,或者可以由上述服务提供。在其他配置中,社交联网服务1422可以由其他服务、站点、和/或可以显式或可以不显式地称为社交联网提供商的提供商提供。例如,一些网站允许用户在各种活动和/或上下文(诸如阅读已发表的文章、评论商品或服务、发表、协作、玩游戏等)期间经由电子邮件、聊天服务、和/或其他手段彼此交互。这些服务的示例包括但不限于来自美国华盛顿州雷蒙德市微软公司的windows服务和xbox服务。其他服务也是可能的且是可构想的。

社交联网服务1422还可以包括评论、博客、和/或微博服务。这种服务的示例包括但不限于评论服务、审阅服务、企业微博服务、消息收发服务、google服务、和/或其他服务。应当领会,以上服务列表并非穷尽性的,并且为了简洁起见在本文中未提及多种附加和/或替换的社交联网服务1422。由此,以上配置是说明性的,并且不应被解释为以任何方式进行限制。根据各个实现,社交联网服务1422可以主存用于提供本文中所描述的用于为计算设备提供上下文知晓的位置共享服务的功能性的一个或多个应用和/或软件模块。例如,应用服务器1408中的任何一个可以传达或促成在此所描述的功能性和特征。例如,社交联网应用、邮件客户端、消息收发客户端、在电话上运行的浏览器或任何其他客户端1406可以与社交联网服务1422通信。

如图14所示,应用服务器1408还可主存其他服务、应用、门户、和/或其他资源(“其他资源”)1424。其他资源1424可以部署面向服务的架构或任何其他客户端-服务器管理软件。其他资源1424还可以与使用云计算架构向服务提供商的客户提供服务相关。

如以上所提及的,计算环境1402可包括数据存储1410。根据各种实现,数据存储1410的功能性由在网络1404上操作的或者与该网络通信的一个或多个数据库提供。数据存储1410的功能性也可以由被配置成主存用于计算环境1402的数据的一个或多个服务器计算机提供。数据存储1410可以包括、主存或提供一个或多个实际或虚拟容器1426a-1426n(统称和/或通称为“容器1426”)。虽然未在图14中解说,但是容器1426还可以主存或储存数据结构和/或算法以供远程计算设备的一个或多个模块(例如,图7的模块720、722、724、726、728和/或图1和图2的资源泄漏检测系统128)执行。容器1426的各方面可以与数据库程序、文件系统和/或储存具有安全访问特征的数据的任何程序相关联。容器1426的各方面也可以使用产品或服务来实现,所述产品或服务诸如activex或

计算环境1402可以与网络接口1412通信或由该网络接口访问。网络接口1412可包括各种类型的网络硬件和软件,以用于支持包括但不限于客户端1406和应用服务器1408等两个或更多个计算实体之间的通信。应当领会,网络接口1412还可用于连接到其他类型的网络和计算机系统。

应当理解,本文中所描述的分布式计算环境1400可向本文中所描述的软件元件的任何方面提供可被配置成执行本文中所描述的软件组件的任何方面的任意数量的虚拟计算资源和/或其他分布式计算功能性。根据本文中所描述的概念和技术的各种实现,分布式计算环境1400向客户端1406提供本文中所描述的软件功能性作为服务。应当理解,客户端1406可包括实际或虚拟机,包括但不限于服务器计算机、web服务器、个人计算机、平板计算机、游戏控制器、智能电视、移动计算实体、智能电话、和/或其他设备。由此,本文中所描述的概念和技术的各种配置使得被配置成访问分布式计算环境1400的任何设备能够利用本文中所描述的用于检测云计算架构中的计算资源的泄漏的功能性。

示例条款

可鉴于以下条款来考虑本文中所提出的公开。

a.一种计算设备,包括:一个或多个处理器;以及一个或多个计算机可读存储介质,该一个或多个计算机可读存储介质储存通过该一个或多个处理器可执行以执行包括以下各项的操作的指令:获得指示一个或多个计算设备在第一时间段内对计算资源的使用的第一量的第一数据;至少部分地基于第一数据确定参考数据,该参考数据至少包括计算资源在第一时间段内的使用的值的分布;获得指示该一个或多个计算设备在继第一时间段之后的第二时间段内对计算资源的使用的第二量的第二数据;确定计算资源的使用的第二量指示该一个或多个计算设备在第二时间段内对计算资源的使用中的增加;至少部分地基于计算资源在第二时间段内的使用中的增加的量以及至少部分地基于参考数据来确定计算资源使用度量的值;以及至少部分地基于计算资源使用度量的值和第二时间段的持续时间来确定计算资源泄漏正在发生。

b.条款a的计算设备,其中一个或多个计算设备被包括在主控虚拟机的一个或多个实例的云计算架构的至少一部分中。

c.条款a或b的计算设备,其中第二时间段包括开始时间、中间时间、和结束时间,并且操作进一步包括:至少部分地基于计算资源在开始时间处和在中间时间处的附加使用之间的差异以及至少部分地基于参考数据来确定计算资源使用度量的附加值;以及至少部分地基于计算资源使用度量的附加值大于阈值来确定开始时间是计算资源的泄漏的候选开始时间。

d.条款a-c中任一项的计算设备,其中操作进一步包括:获得指示一个或多个计算设备在继第一时间段之后且在第二时间段之前的附加时间段内对计算资源的使用的附加量的附加数据,该附加时间段包括开始时间和结束时间;以及确定开始时间是计算资源的泄漏的候选开始时间。

e.条款d的计算设备,其中操作进一步包括:确定计算资源的使用的附加量对应于计算资源的使用中的减少;确定计算资源的使用中的减少大于阈值减小;至少部分地基于计算资源的使用中的减少大于阈值减小来将计算资源的泄漏的候选开始时间从开始时间修改到结束时间。

f.条款d的计算设备,其中操作进一步包括:至少部分地基于计算资源从开始时间到结束时间的使用的附加量以及至少部分地基于参考数据来确定计算资源使用度量的附加值;确定计算资源使用度量的附加值小于阈值;以及至少部分地基于计算资源使用度量的附加值小于阈值来将计算资源的泄漏的候选开始时间从开始时间修改到结束时间。

g.条款d的计算设备,其中操作进一步包括:至少部分地基于计算资源从开始时间到结束时间的使用的附加量以及至少部分地基于参考数据来确定计算资源使用度量的附加值;确定计算资源使用度量的附加值的绝对值小于阈值;确定附加时间段大于阈值时间段;以及至少部分地基于计算资源使用度量的附加值的绝对值小于阈值和附加时间段大于阈值时间段来将计算资源的泄漏的候选开始时间从开始时间修改到结束时间。

h.条款a-g中任一项的计算设备,其中分布包括中值、平均值、标准偏差、最小值、1%值、25%值、75%值、99%值、最大值、或其组合。

i.条款a-h中任一项的计算设备,其中计算资源包括易失性存储器分配、非易失性存储器分配、所完成的处理器周期、网络资源的使用、或其组合。

j.条款a-1中任一项的计算设备,其中第一时间段是至少5天、至少10天、至少20天、至少30天、或至少40天。

k.一种方法,包括:由包括处理器和存储器的服务器计算设备获得指示云计算架构的一组计算设备对计算资源的使用的量中的增加的计算资源使用数据;由服务器计算设备至少部分地基于计算资源的使用的量中的增加以及至少部分地基于参考数据来确定计算资源使用度量的值,该参考数据至少包括计算资源在一时间段内的使用的分布;由服务器计算设备至少部分地基于计算资源使用度量的值来确定计算资源泄漏正在发生;以及由服务器计算设备至少部分地基于确定计算资源泄漏正在发生来确定一个或多个动作以减少计算资源的使用的量。

l.条款k的方法,进一步包括:通过周期性地收集该组计算设备的计算设备对计算资源的使用的值达附加时间段,获得该计算设备对计算资源的使用的多个值;以及至少部分地基于该多个值来确定被包括在计算资源使用数据中的值。

m.条款l的方法,其中至少部分地基于该多个值确定被包括在计算资源使用数据中的值包括确定被包括在该多个值中的最大值、确定该多个值的平均值、或确定该多个值的中值。

n.条款k-m中任一项的方法,其中附加时间段是至少5分钟、至少10分钟、至少20分钟、至少30分钟、至少45分钟、至少60分钟、或至少75分钟,并且计算资源的使用的值以小于30秒、小于1分钟、小于5分钟、小于10分钟、或小于30分钟的间隔来被周期性地收集。

o.条款k-n中任一项的方法,进一步包括:获得指示第一计算设备在一时间段内对计算资源的使用的第一数据;获得指示第二计算设备在该时间段内对计算资源的使用的第二数据;执行第一数据和第二数据的比较;以及至少部分地基于该比较来确定第一数据和第二数据之间的相似性度量。

p.条款o的方法,进一步包括:至少部分地基于相似性度量高于阈值,确定第一计算设备和第二计算设备被包括在该组计算设备中。

q.条款k-p中任一项的方法,进一步包括:产生对应于用户界面的用户界面数据,该用户界面数据指示关于正由该组计算设备执行的软件组件的计算资源泄漏正在发生。

r.条款k-q中任一项的方法,其中软件组件是被包括在用户界面中的多个软件组件之一,并且用户界面指示该组计算设备对一个或多个计算资源的使用。

s.条款k-r中任一项的方法,进一步包括:确定该组计算设备的计算设备对计算资源的使用的量的值曾被获得的第一时间与继第一时间之后的第二时间之间的一时间段;确定该时间段大于阈值时间段;以及从被用来产生参考数据的数据集中移除该值。

t.一种计算设备,包括:一个或多个处理器;以及一个或多个计算机可读存储介质,该一个或多个计算机可读存储介质储存通过该一个或多个处理器可执行以执行包括以下各项的操作的指令:获得指示一个或多个计算设备在第一时间段内对计算资源的使用的量的计算资源使用数据;至少部分地基于计算资源使用数据确定参考数据,该参考数据至少包括该一个或多个计算设备在第一时间段内对计算资源的使用的量的值的分布;收集该一个或多个计算设备的计算设备在继第一时间段之后的第二时间段内对计算资源的使用的一系列值;至少部分地基于计算设备在第二时间段内对计算资源的使用中的增加的量以及至少部分地基于参考数据来确定计算资源使用度量的值;确定第二时间段的持续时间;确定被包括在该系列中的相对于该系列中的先前值增加了的值的数量;以及至少部分地基于计算资源使用度量的值、第二时间段的持续时间、和被包括在该系列中的相对于该系列中的先前值增加了的值的数量来确定计算资源泄漏检测分数。

u.条款t的计算设备,其中计算资源使用度量的值与第一权重相关联,第二时间段的持续时间与第二权重相关联,并且被包括在该系列中的相对于该系列中的先前值增加了的值的数量与第三权重相关联;并且确定计算资源泄漏检测分数进一步至少部分地基于第一权重、第二权重、和第三权重。

v.条款t或u的计算设备,其中确定计算资源泄漏检测分数包括:确定计算资源使用度量的值大于第一阈值;确定第二时间段的持续时间大于第二阈值;以及确定被包括在该系列中的相对于该系列中的先前值增加了的值的数量大于第三阈值。

w.条款t-v中任一项的计算设备,其中操作进一步包括:至少部分地基于在第二时间段内收集到的该一个或多个计算设备的计算设备对计算资源的使用的一系列值来更新参考数据。

x.条款t-w中任一项的计算设备,其中操作进一步包括:至少部分地基于计算资源泄漏检测分数确定关于计算设备的计算资源的泄漏正在发生的概率;以及至少部分地基于资源泄漏检测得分高于阈值分数来确定一个或多个动作以减少计算设备对计算资源的使用。

y.条款t-x中任一项的计算设备,其中该一个或多个计算设备被包括在主控虚拟机的一个或多个实例的一组计算设备中,并且操作进一步包括:生成与用户界面相对应的用户界面数据,该用户界面数据包括与计算资源的泄漏相关联的该组计算设备中所包括的计算设备的数量的指示。

虽然本文在附图中例示并且在具体实施方式中描述了本发明的方法和装置的各种实施例,但是应该理解,本发明不限于所公开的实施例,而是能够在不脱离本公开的范围的情况下进行多种重新布置、修改和替换。

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