诊断和缓解计算节点中的存储器泄漏的制作方法

文档序号:32443394发布日期:2022-12-06 23:03阅读:32来源:国知局
诊断和缓解计算节点中的存储器泄漏的制作方法
诊断和缓解计算节点中的存储器泄漏


背景技术:

1.云计算系统是指可以远程存储和访问数据的计算设备的集合。例如,现代云计算基础设施通常包括以层级结构组织的物理服务器设备的集合,包括计算区域、集群、虚拟局域网(vlan)、机架、故障域等。云计算系统通常使用不同的类型的虚拟服务(例如,计算容器、虚拟机),虚拟服务为各种客户端或客户提供远程存储和计算功能。这些虚拟服务可以由云计算系统上的各个服务器节点托管。
2.近年来,计算技术发展迅速,尤其是云计算系统上服务器节点的能力。因此,云计算基础设施的复杂性和服务器设备的数量都在增长。随着服务器设备数量的增长以及云计算系统托管的服务数量不断增长,处理能力和处理缺陷(例如存储器泄漏)继续对单个设备以及云计算作为一个整体的性能产生重大影响。
3.例如,存储器泄漏会以负面的方式显着影响云计算系统上服务器设备的性能。例如,在操作系统(os)中发生存储器泄漏的情况下,虚拟机和其他应用程序或服务可能会遭受输入/输出(i/o)中断和暂停、功能丢失和进程崩溃。此外,由于新虚拟机可用的存储器容量不足,虚拟机的部署可能会失败。
4.传统的存储器管理系统已尝试以多种方式缓解(mitigate)存储器缺陷,但效果有限。例如,许多传统系统尝试使用可以大规模应用的静态程序分析工具来检测存储器泄漏。然而,静态程序分析工具通常无法标识存储器泄漏的唯一实例,并导致正在分析的那些服务器节点的操作严重中断。其他传统系统试图通过在源代码中插入额外的语句来检测系统执行期间的存储器泄漏(例如,检查未引用的存储器块)。这些解决方案虽然通常比静态程序分析工具更准确、更不鲁棒,但通常不可扩展,并且需要为云计算上的每个设备单独部署基础设施。
5.在标识和缓解计算设备的网络(例如,云计算系统的服务器节点)上的存储器泄漏和其他处理缺陷问题方面存在这些和其他问题。
附图说明
6.图1图示了根据一个或多个实现的包括存储器泄漏管理系统的云计算系统的示例环境。
7.图2图示了根据一个或多个实现的存储器泄漏管理系统的示例实现。
8.图3a示出了根据一个或多个实现的用于诊断存储器泄漏的示例工作流。
9.图3b示出了根据一个或多个实现的用于缓解诊断出的存储器泄漏的示例工作流。
10.图4图示了根据一个或多个实现的存储器泄漏管理系统的更详细的实现。
11.图5a-图5c示出了根据一个或多个实现的在聚合和分析存储器使用量数据时确定和更新相关时间间隔的示例实现。
12.图6图示了用于诊断和缓解云计算系统的一个或多个主机节点上的存储器泄漏的示例性系列动作。
13.图7图示了可以被包括在计算机系统内的某些组件。
具体实施方式
14.本公开一般涉及存储器泄露管理系统,该存储器泄露管理系统提供用于诊断和缓解存储器影响事件的端到端解决方案,诸如,存储器泄漏、高存储器使用量或其他检测到的可能导致主机节点的存储器事件在云计算系统上无法按预期执行。例如,如下文将进一步详细讨论的,存储器泄漏管理系统可以实现多个系统和服务,这些系统和服务实现了用于标识存储器影响事件的诊断工作流,诸如任意数量的多个主机节点上的存储器泄漏。基于诊断的存储器影响事件(例如,存储器泄漏),存储器泄漏管理系统可以实现系统和服务来标识和执行被预测为解决或以其他方式缓解存储器影响事件的适当缓解动作。在一个或多个实施例中,存储器泄漏管理还生成影响报告,并且在一些情况下,在应用程序或虚拟机推出导致在各种主机节点上发生存储器泄漏的情况下发出推出停止信号。
15.例如,存储器泄漏管理系统可以收集存储器使用量数据(例如,核(kernel)模式数据、用户模式数据、操作系统数据、应用程序和进程数据)。存储器泄漏管理系统可以附加地聚合各个时间间隔上的存储器使用量数据,以诊断节点的子集和/或正在经历各种存储器事件的各个节点上的进程。存储器泄漏管理系统可以利用诊断和聚合的存储器使用量数据来确定缓解动作以应用到一个或多个主机节点以防止或以其他方式减少检测到的存储器事件的负面影响。
16.如将在下文进一步详细讨论的,本公开包括具有本文描述的特征的多个实际应用,这些特征提供与诊断和缓解云计算系统的选定主机节点上的存储器泄漏相关联的益处和/或解决问题。本文结合由存储器泄漏管理系统提供的各种特征和功能,特别是结合诊断和缓解存储器泄漏来讨论一些示例益处。然而,应当理解,结合一个或多个实现所讨论的益处是通过示例的方式提供的,并且不旨在成为存储器泄漏管理系统的所有可能益处的综合列表。
17.作为第一示例,在一个或多个实现中,存储器泄漏管理系统通过卸载诊断和确定缓解(mitigation)动作以在相应的主机节点上执行的动作来减少处理资源的花费。例如,主机节点可以选择性地采样存储器使用量数据并将其提供给存储器泄漏管理系统,以便在另外的(多个)服务器设备上进行分析。在接收到由每个主机节点本地生成的存储器使用量数据时,存储器泄漏管理系统可以处理存储器使用量数据以确定是否已经发生存储器泄漏以及确定有关云计算系统的选择性主机节点上的存储器泄漏的细节。
18.除了从运行有应用程序和服务的主机节点卸载处理资源外,存储器泄漏管理系统还可以聚合存储器使用量数据,以提高诊断存储器泄漏问题的准确性,并减少关于各种记忆影响事件标识出的误报的数量。例如,如下文将更详细讨论的,存储器泄漏管理系统可以聚合存储器使用量数据以标识和分析存储器使用量的趋势以确定特定类型的存储器影响事件以及这些事件的严重性。使用此存储器,存储器泄漏管理系统可以选择性地标识候选节点,以进一步分析准确地诊断和缓解存储器影响事件。
19.在本文描述的一个或多个实施例中,存储器泄漏管理系统可以另外实施用于缓解存储器影响事件同时限制诊断和缓解存储器影响事件的影响的端到端解决方案。例如,通过实现缓解模型,存储器泄漏管理系统可以基于对主机节点的最小影响来执行各种缓解动作。例如,存储器泄漏管理系统可以根据缓解模型执行各种侵入性较小的缓解操作(例如,驱动程序重新启动、服务重新启动、进程重新启动),而不是重新安装检测到存储器泄漏的
任何主机节点并将执行更具侵入性的缓解措施(例如,重新安装主机节点)限制在需要采取更具侵入性的缓解措施的情况下。
20.如前述讨论中所示,本公开利用各种术语来描述本文所述系统的特征和优点。现在提供关于其中一些术语的含义的更多细节。例如,如本文所用,“云计算系统”指的是连接计算设备的网络,其向计算设备(例如,客户设备)提供各种服务。例如,如上所述,分布式计算系统可以包括以层级结构组织的物理服务器设备(例如,服务器节点)的集合,包括集群、计算区域、虚拟局域网(vlan)、机架、故障域等。
21.如本文所用,“主机节点”是指计算设备网络上的任何计算设备。例如,主机节点可以指代云计算系统上的任何服务器设备。主机节点可以包括存储器系统,该存储器系统包括存储器硬件。存储器系统可以包括为操作系统分配的存储器以及为托管虚拟机和其他应用程序分配的存储器。在本文描述的一个或多个实施例中,存储器泄漏管理系统诊断和缓解专门针对主机操作系统的存储器影响事件。例如,存储器泄漏管理系统的一个或多个实施例可以专门在操作系统上而不是在分配给用户应用程序和/或虚拟机的存储器系统的部分上诊断和缓解存储器泄漏。
22.如本文所使用的,“存储器影响事件”可以指代主机节点的存储器受到存储器泄漏或对主机节点的性能具有负面影响的其他存储器相关问题影响的实例。例如,存储器影响事件可以指存储器泄漏、特定os或虚拟机的高存储器占用、超出阈值存储器使用量预算的存储器使用量,或其他存储器相关事件。在本文描述的一个或多个示例中,主机节点的操作系统可能经历存储器泄漏或其他存储器影响事件。
23.如本文所用,“存储器泄漏”可以指其中一部分存储器已被分配或以其他方式归因于应用程序(例如,os进程或代理进程)或驱动程序的事件或实例,但是其中的组件用于已分配的存储器部分不一定使用该部分存储器。结果,这部分存储器可能不会被其他应用程序使用,并且可能对主机节点的性能造成负面影响。尽管本文描述的一个或多个实施例可以具体涉及存储器泄漏,但结合存储器泄漏描述的特征和功能可以类似地适用于存储器影响事件。
24.如本文将进一步详细讨论的,存储器泄漏管理系统可以基于存储器使用量数据来诊断存储器泄漏。如本文所使用的,“存储器使用量数据”可以指代与提交给应用程序或进程的存储器部分相关联的任何信息。例如,存储器使用量数据可以指代系统数据,指的是分配给主机节点的操作系统的任何使用数据。此外,存储器使用量数据可以指用户数据,指分配给虚拟机或除操作系统之外的其他应用程序的任何使用数据。如本文将讨论的,存储器使用量数据可以指代由各个主机系统上的各种代理生成或以其他方式采样的各种不同类型的存储器使用量数据。
25.现在将提供关于与描绘示例实现的说明性图相关的存储器泄漏管理系统的附加细节。例如,图1图示了包括云计算系统102的示例环境100。云计算系统102可以包括任何数目的设备。例如,如图1所示,云计算系统102包括一个或多个服务器设备104,其上实现了存储器泄漏管理系统106。
26.如进一步所示,云计算系统102包括任意数目的主机节点108a-108n。主机节点108a-108n中的每个主机节点可以包括代理110a-110n和存储器系统112a-112n。例如,第一主机节点108a可以包括任意数目的代理110a和相应的存储器系统112a。类似地,第二主机
节点108b可以包括代理110b和存储器系统112b,其具有与第一主机节点108a上的代理110a和存储器系统112a相似的特征和功能。
27.主机节点108a-108n可以指代云计算系统102上的任何计算节点,其具有用于提供云计算系统102的服务的硬件和软件的组合。在一个或多个实施例中,主机节点108a指的是服务器设备,该服务器设备上具有操作系统以及其上托管的一个或多个应用程序和/或虚拟机。主机节点108a-108n可以提供多个存储和计算服务。此外,主机节点108a-108n可以指相同或跨不同数据中心的计算节点。例如,主机节点108a-108n可以指同一服务器机架上或跨同一数据中心上的多个机架上的节点。此外,或作为替代,主机节点108a-108n可以指代跨多个服务器机架和不同数据中心上的任意数目的计算节点。实际上,主机节点108a-n可以指代与服务器设备104上的存储器泄漏管理系统106通信的任何计算节点组织。
28.如上所述,主机节点108a108-n中的每个主机节点可以在其上包括多个代理110a-110n。例如,第一主机节点108a可以包括各种代理108a108-n,每个代理被配置为生成或采样不同类型的遥测数据。该代理110a的集合可以包括收集与进程相关的性能计数器(例如,特定进程的存储器使用量数据)和其他用户模式存储器使用量数据的监测代理。该代理110a的集合还可以包括收集核模式存储器使用量数据的池监测代理。代理110a可以通过存储器计数器、池标签或其他数据收集技术收集存储器使用量数据,其他数据收集技术用于在对应的主机节点108a上的特定时间点对与存储器使用量相关联的遥测数据进行采样。其他主机节点108b-108n上的附加代理108n可以包括用于收集关于附加主机节点108b-108n的各种类型的存储器使用量数据的类似类型的代理。下面将结合图4讨论与各种类型的代理有关的附加信息。
29.如图1进一步所示,主机节点108a-108n在其上包括各自的存储器系统112a-112n。存储器系统112a-112n可以包括影响各个节点108a-108n上的存储器使用量的主机节点108a-108n的任何硬件、软件或其他组件。例如,第一主机节点108a上的第一存储器系统112a可以包括各种驱动程序(例如,用户模式驱动程序、核模式驱动程序、文件系统驱动程序)、操作系统(os)程序、os核、应用程序接口(api)、应用程序、例程或影响主机节点108a上的存储器使用量和存储器容量的任何组件。其他主机节点108b-108n可以包括具有与第一主机节点108a上的存储器系统112a相似的特征和功能的存储器系统112b-112n。
30.如进一步所示,环境100包括与云计算系统102通信的客户端设备114。客户端设备114可以指能够访问云计算系统102上的数据的各种类型的客户端设备。例如,客户端设备可以指移动设备,诸如移动电话、智能手机、个人数字助理(pda)、平板电脑、膝上型电脑或可穿戴计算设备(例如,耳机或智能手表)。客户端设备还可以指非移动设备,诸如台式计算机、服务器节点(例如,来自另一个云计算系统)或其他非便携式设备。客户端设备114、(多个)服务器设备104和主机节点108a-108n可以包括如下文结合图7大体讨论的附加特征和功能。
31.客户端设备114可以通过网络116与云计算系统102的设备通信。网络116可以包括一个或多个网络,其使用一个或多个通信平台或技术来传输数据。例如,网络116可以包括因特网或其他数据链路,其使得能够在各个客户端设备114和组件(例如,(多个)服务器设备104、主机节点108a-108b、虚拟机或云计算系统102的任何其他组件)之间传输电子数据。
32.现在将提供关于根据这里的一个或多个实施例的存储器泄漏管理系统106的附加
细节。例如,如图2所示,存储器泄漏管理系统106在一个或多个存储设备104上实现。如进一步所示,存储器泄漏管理系统106可以包括聚合系统202。聚合系统202可以包括数据聚合器204、时间间隔管理器206和动作生成器208。结合诊断存储器泄漏(或其他存储器影响事件),聚合系统202可以收集和聚合由多个主机节点本地收集、生成或以其他方式采样的存储器使用量数据。此外,与缓解诊断或检测到的存储器泄漏有关,聚合系统202可以聚合附加的存储器使用量数据并确定要执行的迁移动作以停止或以其他方式缓解存储器泄漏。与聚合系统202的组件204-208关联的附件细节将在下面结合图3a-图4进行讨论。
33.如进一步所示,存储器泄漏管理系统106可以包括诊断和缓解系统210。诊断和缓解系统210可以包括诊断管理器212和缓解管理器214。关于诊断存储器泄漏(或其他存储器影响事件),诊断和缓解系统210可以确定应用存储器泄漏的主机节点和/或进程的子集。诊断和缓解系统210可以另外生成用于诊断命令,该诊断命令指示主机节点收集和/或共享附加存储器使用量数据。与缓解存储器泄漏或其他存储器影响事件有关,诊断和缓解系统210可以另外应用存储器缓解模型来精确地确定检测到的存储器泄漏的性质。诊断和缓解系统210可以进一步生成缓解命令以使(多个)主机节点能够缓解存储器泄漏的影响。与诊断和缓解系统210的组件212-214相关的附加细节将在下文结合图3a-4进行讨论。
34.如进一步所示,存储器泄漏管理系统106可以包括监测和报告系统216。监测和报告系统216可以接收存储器使用量数据并提供与诊断和缓解主机节点上的存储器泄漏有关的进一步分析。例如,监测和报告系统216可以利用第三方分析系统来执行对诊断信息和/或存储器使用量信息的更彻底的分析,以开发包括与特定主机节点和/或进程相关联的信息的详细报告,这可能是用于防止或以其他方式缓解跨云计算系统节点的存储器影响事件。与监测和报告系统216以及相关组件有关的附加信息将在下面结合图3a-4进行讨论。
35.如图2所示,存储器泄漏管理系统106可以包括数据存储器218。数据存储器218可以包括与各个主机节点和/或进程以及由各个主机节点托管的服务相关联的任何信息。除了关于主机节点及其上的进程的信息之外,数据存储218可以包括关于由存储器泄漏管理系统106的各种组件202-216在执行特征和功能时使用的各种模型(例如,诊断模型、缓解模型)的信息。
36.图2示出了示例实现,其中组件202-216位于一个或多个共享服务器设备104上的单个存储器泄漏管理系统106上。然而,将理解组件202-216中的一个或多个或子组件可能位于相同或不同的服务器设备上。例如,在一个或多个实施例中,聚合系统202和相关的子组件204-208被实现在第一服务器设备(或多个服务器设备)上,而诊断和缓解系统210和相关的子组件212-214被实现在第二个服务器设备(或多个服务器设备)上。此外,监测和报告系统216可以被实现在第三服务器设备(或多个服务器设备)上。此外,虽然组件202-216中的每个组件可以在相同云计算系统上的相同或不同服务器设备上实现,但是在一个或多个实现中,组件202-216中的一个或多个组件可以跨不同云计算实现基础设施。
37.图3a示出了与分析存储器使用量数据和诊断一个或多个存储器泄漏相关联的示例工作流300。如图3a所示,其上具有代理304的多个主机节点302可以为多个主机节点302本地生成或采样存储器使用量数据。主机节点302和代理304可以具有上面结合图1讨论的与主机节点108a-108n和代理110a-110n相似的特征和功能。
38.例如,代理304可以指不同类型的代理,它们在本地生成或采样主机节点302上的
存储器使用量状态并将存储器使用量数据306提供到存储器泄漏管理系统106(例如,聚合系统202)以用于进一步分析。如上所述,代理304可以指跟踪或以其他方式监测不同类型的存储器使用量统计的多种类型的代理。作为示例,代理304可以包括监测代理,该监测代理收集与特定进程相关联的进程相关性能计数器。代理304还可以包括池监测代理,该池监测代理跟踪指示分配给各种应用程序或进程的存储器块的池标签。不同的代理304可以监测与不同进程当前使用的存储器单元相关的存储器使用量。另外,代理304可以监测与存储器单元的分配相关的存储器使用量,即使在那些存储器单元当前没有被不同进程使用的情况下。
39.存储器使用量数据306可以指代指示主机节点302上的存储器使用量的各种类型的信息。例如,存储器使用量数据306可以包括指示针对特定进程的存储器使用量的性能计数器。存储器使用量数据306可以指由核本身或核驱动程序分配的核存储器。存储器使用量数据306可以指代运行在对应主机节点302上的任何应用程序、虚拟机或os的元素使用的池标签或其他存储器块。存储器使用量数据306还可以包括虚拟机、应用程序,或与存储器使用量数据相关联的操作系统元素的标识。例如,除了性能计数器或池标签之外,存储器使用量数据306可以包括与对应的计数器和标签相关联的进程或应用程序的标识。
40.一个或多个代理304可以以预定的时间间隔采样或以其他方式生成存储器使用量数据306。例如,代理304可以以固定间隔和各种频率(例如,每分钟、每五分钟、每小时)生成存储器使用量数据306。在本文描述的一个或多个实施例中,代理304可以获得或捕获在时间点的存储器使用量的快照(snapshot),该快照表示在特定时间点的存储器块的分配。例如,在一种或多种实现中,代理304可以以五分钟的间隔捕获存储器分配的当前状态。
41.如图3a所示,主机节点302可以将存储器使用量数据306提供到聚合系统202(例如,数据聚合器204)。在一个或多个实施例中,主机节点302在存储器使用量数据306由代理304生成时提供存储器使用量数据306。备选地,在一个或多个实施例中,主机节点302提供包括存储器使用量数据306的批次,包括在预定时间间隔的多个实例中采集的数据样本。
42.在接收到存储器使用量数据306时,数据聚合器204可以聚合从主机节点302接收的数据。在一个或多个实施例中,数据聚合器204基于数据被捕获的间隔来聚合数据。例如,在一个或多个实现中,数据聚合器204将存储器使用量数据306聚合成每小时组,该每小时组代表在代表性时间期间捕获的一个或多个主机节点302的所有存储器使用量数据306。在一个或多个实施例中,数据聚合器204将存储器使用量数据306聚合成多个时间分组,例如每小时分组、每日分组、每周分组、每月分组等。
43.通过基于不同的时间分组聚合存储器使用量数据306,数据聚合器204可以观察存储器使用量数据306随时间的趋势并且考虑可能对不同的时间增量有意义的存储器使用量数据306的不同趋势。例如,数据聚合器204可以在一天中的不同时间或一周中的不同天观察存储器使用量趋势。以这种方式,数据聚合器204可以通过确定存储器使用量在一天中的不同时间和/或一周中的不同天增加来减少错误标识的存储器泄漏实例的数量。通过以这种方式聚合存储器使用量数据,数据聚合器204可以另外观察长期趋势以更准确地标识与不同类型的趋势相关联的各种存储器影响事件。这种趋势分析可以另外使存储器泄漏管理系统106能够区分存储器影响事件,例如存储器泄漏或随时间增加的存储器使用量。
44.除了通常相对于时间间隔聚合存储器使用量数据306之外,数据聚合器204还可以
基于存储器使用量数据306的不同源将存储器使用量数据306附加地聚合成相应的分组。例如,数据聚合器204可以将存储器使用量数据306聚合成针对每个主机节点和针对(多个)主机节点上的每个进程的时间序列。结果,数据聚合器204可以生成聚合数据308,包括任何数目的时间序列,其显示针对时间分组和针对相应主机节点和进程的存储器使用量数据306的趋势。实际上,得到的聚合数据308可以包括针对每个主机节点302的数百组数据。
45.如图3a所示,数据聚合器204可以将经聚合的数据308提供到时间间隔管理器206以标识针对存储器使用量数据306的时间间隔。时间间隔管理器206可以基于所观察到的随着时间的推移的聚合数据的趋势来标识存储器使用量数据306的子集308。例如,时间段=间隔管理器206可以评估数据分组(例如,聚合的数据段(chunk))以确定用于确定是否存在存储器泄漏以及存储器泄漏的严重性的相关时间间隔。
46.在一个或多个实施例中,时间间隔管理器206基于随时间接收的聚合数据308迭代地确定时间间隔。例如,并且如将在下文结合图5a-图5c进一步详细讨论的那样,时间间隔管理器206可以通过将时间戳指定为给定时间间隔的初始时间戳来初始给定时间间隔确定。当存储器使用量数据306被聚合并且当当前聚合数据308由时间间隔管理器206接收时,时间间隔管理器206可以确定存储器使用量随时间呈上升趋势还是下降趋势。基于存储器使用量阈值和随时间跟踪的增加或减少,时间间隔管理器206可以维持初始时间戳或通过基于当前经聚合的数据308改变初始时间戳来修改相关时间间隔。与标识针对给定主机节点或特定过程的相关时间间隔有关的附加信息下面结合图5a-图5c更详细地讨论。
47.根据一个或多个实施例,通过标识相关时间间隔并在观察到存储器使用量数据时更新相关时间间隔,时间间隔管理器206可以准确地减少云计算系统102上的一个或多个服务器设备的处理花销。特别地,通过标识与主机节点的子集302和各个主机节点上的进程子集的相关间隔相对应的数据子集,时间间隔管理器206可以显着地减少准确诊断主机节点的子集302上的存储器泄漏所需的处理量。
48.在一个或多个实施例中,数据聚合器204和时间间隔管理器206共同确定针对主机节点302和/或主机节点302上的特定进程或应用程序的严重性分数。例如,在一个或多个实现中,数据聚合器204将算法应用于经聚合的存储器使用量数据以确定与存储器使用量数据的当前状态相对应的动态严重性分数。随着时间的推移,当严重性得分增加时,数据聚合器204可以确定经聚合的存储器使用量数据导致严重性得分超过阈值,并确定针对主机节点和/或进程存在存储器泄漏或其他存储器影响事件。在一个或多个实施例中,数据聚合器204基于严重性得分超过阈值向诊断和缓解系统210提供经聚合的子集312(和相关联的严重性得分)。
49.如图3a所示,时间间隔管理器206可以向数据聚合器204提供(多个)时间间隔310的指示。数据聚合器204可以向诊断和缓解系统210提供聚合的子集312以供进一步分析。例如,数据聚合器204可以向诊断和缓解系统210提供限于所标识的时间间隔310的存储器使用量数据306的聚合数据308的子集。此外,在一个或多个实现中,数据聚合器204可以提供聚合的子集312,该聚合的子集包括对应于标识的主机节点子集302和/或主机节点子集302的进程的存储器使用量数据的子集到诊断和缓解系统210用于进一步分析。
50.可以将聚合的子集312提供到诊断和缓解系统210(例如,诊断管理器212)以诊断主机节点302上的一个或多个存储器泄漏。具体而言,诊断管理器212可以评估存储器使用
量数据的聚合的子集312以确定诊断命令314,该诊断命令包括用于与存储器使用量数据的聚合的子集312相关联的主机节点。
51.例如,诊断管理器212可以基于数据的聚合的子集312来确定存储器泄漏(或其他存储器影响事件)的类型。基于确定的存储器泄漏类型,诊断管理器212可以从多个可能的诊断动作中标识诊断动作。例如,基于存储器使用量数据的聚合的子集312,诊断管理器212可以标识核转储(dump)(例如,用于核泄漏)、进程转储(例如,用于进程泄漏)、用于解决核和/或应用程序问题的动态跟踪(dtrace)命令、用于用户模式泄漏的头部快照命令、虚拟分配命令、池分配命令、雷达工具命令或可以在相应的主机节点上执行的其他类型的诊断命令。
52.如图3a所示,在确定一个或多个诊断动作之后,诊断管理器212可以向主机节点集合302中的一个或多个主机节点提供诊断命令314。具体地,诊断管理器212可以向主机节点302的子集提供一个或多个诊断命令314,聚合系统202和诊断和缓解系统210已经检测或预测到主机节点的子集上的存储器泄漏。如下文将进一步详细讨论的,向主机节点302的子集提供诊断命令314可以使主机节点302的子集执行与生成诊断报告和/或缓解检测到的存储器泄漏有关的附加动作。
53.图3b示出了与分析存储器使用量数据并基于检测到的存储器泄漏(或其他存储器影响动作)实现一个或多个缓解动作相关联的示例工作流320。特别地,图3b示出了与从诊断和缓解系统210接收诊断命令314的候选节点322相关的工作流320。如上所述,诊断命令314可以包括存储器泄漏或其他存储器影响事件的指示以及指示候选节点322可以执行以使存储器泄漏管理系统106能够有效地监测进一步的存储器使用量数据并确定减少检测到的存储器泄漏的负面影响的一个或多个缓解行动的一个或多个诊断动作的指令。
54.如图3b所示,候选节点322可以从诊断和缓解系统210接收诊断命令314。响应于接收到诊断命令314(并且基于结合诊断命令314接收的信息),(多个)候选节点322上的代理324可以收集附加的存储器使用量数据(或简单地继续收集存储器使用量数据,如上面结合图3a所讨论的)。特别地,多个代理324中的每个代理可以收集或采样不同类型的存储器使用量数据。与本文描述的一个或多个实施例类似,代理324可以以预定间隔(例如,每五分钟)对存储器使用量数据进行采样。
55.根据经由诊断命令314接收的指令,候选节点322可以向监测和报告系统216提供存储器使用量数据326。另外的主机节点可以类似地向监测和报告系统216提供存储器使用量数据。在一个或多个实施例中,监测和报告系统216另外从聚合系统202接收聚合数据(例如,聚合数据330),该聚合数据包含来自所有主机节点(例如,(多个)主机节点302)的数据。
56.存储器和报告系统216可以分析存储器使用量数据316以确定与检测到的存储器泄漏相关联的各种报告度量。例如,存储器和报告系统216可以确定报告度量,度量包括什么信息正在泄漏、存储器泄漏与特定进程或应用程序推出之间的相关性、推出堆栈和/或受存储器泄漏影响的存储器区域,以及其他度量,其他度量有助于更具体地确定存储器泄漏的诊断和/或可以解决或以其他方式减少存储器泄漏影响的缓解措施。
57.在一个或多个实施例中,存储器和报告系统216生成可用于确定一个或多个缓解命令的报告数据328。例如,如图3b所示,候选节点322可以结合由存储器和报告系统216提供的报告数据328向聚合系统202提供存储器使用量数据326。如图3b所示,聚合系统202(例
如,数据聚合器204)可以接收存储器使用量数据326并根据本文描述的一个或多个实施例生成经聚合的数据330。
58.如进一步所示,数据聚合器204可将经聚合的数据330提供给动作生成器208以确定响应于诊断的存储器泄漏而执行的一个或多个缓解请求332。在一个或多个实施例中,动作生成器208基于经聚合的数据330和报告数据228的组合来确定缓解请求332。如图3b所示,缓解请求332可以被提供给诊断和缓解系统210(例如缓解管理器214)。
59.在一个或多个实施例中,缓解请求332包括关于存储器泄漏的信息,该信息可用于确定响应于存储器泄漏而由候选节点32执行的缓解动作。例如,缓解请求332可以包括存储器泄漏的标识(例如,存储器影响事件是存储器泄漏或其他类型的存储器影响事件的指示)。缓解请求332可以另外包括存储器泄漏严重性的指示。缓解请求332可以进一步指示候选节点322和/或受存储器泄漏影响的特定进程的指示。缓解请求332可以包括关于已经在相应候选节点上执行的先前缓解动作的信息。在一个或多个实施例中,缓解请求332包括标识的或推荐的缓解动作以在候选节点322上执行。
60.如图3b所示,聚合系统202可以将缓解请求332提供到诊断和缓解系统210(例如,缓解管理器214)。在接收到缓解请求332时,缓解管理器214可以将缓解模型应用到缓解请求332中包含的信息,以确定要在候选节点322上执行的特定缓解动作。例如,在一个或多个实施例中,缓解管理器214通过执行一系列决策来将决策树应用于缓解请求332,以确定将减少或消除存储器泄漏的负面影响的最佳或侵入性最小的缓解动作。例如,缓解管理器214可以应用缓解模型以确定是否有一个或多个缓解动作,例如重新启动候选节点、执行os重新启动、重新启动进程、重新启动驱动程序,或基于包括在缓解请求332中的信息的其他适当缓解动作。与应用缓解模型以确定缓解动作有关的附加信息在下文结合图3所示的示例框架进行描述。
61.如图3b所示,诊断和缓解系统210可以生成缓解命令334,其包括用于缓解所诊断的存储器泄漏的指令。具体地,在确定要对候选节点322执行的缓解动作之后,诊断和缓解系统210可以向候选节点322提供包括指令(例如,可执行指令)的缓解命令334。然后候选节点322可以执行根据缓解命令采取缓解行动334以减少存储器泄漏的负面影响。
62.如图3a-图3b所示,存储器泄漏管理系统106可以继续接收由主机节点集合的代理收集的数据,以诊断存储器泄漏并生成缓解命令,该缓解命令提供非侵入性解决方案来解决各种存储器泄漏和其他存储器影响事件。例如,在根据图3所示的缓解命令334执行(多个)缓解动作之后,候选节点322可以继续向存储器泄漏管理系统106提供存储器使用量数据以继续诊断和缓解存储器泄漏。因此,根据本文描述的一个或多个实施例,存储器泄漏管理系统106可以继续执行工作流300、320中所示的动作以动态诊断和缓解存储器泄漏。
63.在一个或多个实施例中,存储器泄漏管理系统106考虑响应于存储器泄漏和其他存储器影响事件而执行的诊断和缓解动作的历史。例如,在存储器泄漏管理系统106已经响应于一种或多种类似类型的存储器泄漏或可能与相同问题相关的存储器泄漏而提供了阈值数量的缓解命令的情况下,存储器泄漏管理系统106可以将缓解响应提升到存储器泄漏。例如,在针对特定存储器泄漏的缓解动作是重新启动进程的情况下,存储器泄漏管理系统106可以确定在类似的存储器泄露的后续标识时需要重新启动os。在一个或多个实施例中,存储器泄漏管理系统106可以继续升级缓解动作的侵入性以在执行各种缓解动作之后最终
重新启动候选节点322。
64.通过执行如本文所讨论的重复诊断和缓解,存储器泄漏管理系统106可以响应于检测到的存储器泄漏避免或显着减少更具侵入性的缓解动作。例如,在传统系统通常可以重新修复(repave)主机节点作为对基于有限信息检测到的存储器泄漏的综合响应的情况下,存储器泄漏管理系统106可以减少对云计算系统102的总体影响,因为重新修复主机节点定期。相反,存储器泄漏管理系统106可以减少云计算系统102上的主机节点被重新修复的次数。
65.除了减少执行各种缓解措施的影响之外,存储器泄漏管理系统106还可以减少与主机节点运行长时间停机并等待手动缓解步骤的相关的成本。例如,在传统系统通常依赖于维护人员从服务器机架物理移除主机节点并丢弃或手动缓解存储器泄漏问题的情况下,存储器泄漏管理系统106通过使用这里描述的端到端实现的动态地诊断和缓解存储器泄露显著地减少与手动减缓相关联的成本。
66.现在结合根据本文描述的一个或多个实施例的存储器泄漏管理系统106的示例实现来提供进一步的细节。特别地,图4图示了用于诊断存储器影响事件、报告存储器影响事件以及实现响应于存储器影响事件而执行缓解动作的示例工作流。该工作流程提供了根据本文描述的一个或多个实现的示例实现。例如,结合图4描述的一个或多个特征可以类似地实现为图1-图3b中所示的任何上述示例的一部分。
67.图4图示了根据一个或多个实施例的用于诊断和缓解存储器影响事件的示例工作流400。例如,图4图示了包括多个代理404和其上的进程406的主机节点402。根据一个或多个实施例,代理404可以向聚合服务器408提供存储器使用量数据。聚合服务器408可以分析各种作业以确定各种度量。在一个或多个实施例中,确定客户影响度量410,诸如air度量(例如,虚拟机的重启)、tdp/r(例如,无法启动新的虚拟机)或碎片度量(例如,存储器块的碎片索引)。除了客户影响度量410之外,聚合服务器408可以检测各种异常412(例如,存储器影响事件),诸如存储器泄漏、高存储器足迹(footprint)、软限制(例如,触发警报的存储器预算)或硬限制(例如,触发停止信号的存储器预算)。
68.在一个或多个实施例中,聚合服务器408确定与给定主机节点和/或进程上存在存储器泄漏或其他异常的概率相关联的严重性分数。例如,聚合服务器408可以将严重性评分算法应用于经聚合的存储器使用量数据,以确定存储器使用量数据是否超过阈值使用预算(例如,高或低阈值),或者存储器使用量数据是否包括指示一种特定类型的存储器泄漏。在一个或多个实施例中,聚合服务器408确定计算出的严重性分数是否超过阈值,并且基于该确定,将经聚合的存储器使用量数据提供到聚合系统414。
69.在一个或多个实施例中,确定不同度量涉及根据上面讨论的示例聚合存储器使用量数据。这可以包括确定相关时间间隔并将由主机节点402本地采样的存储器使用量数据聚集到相关时间间隔的数据桶(bucket)或数据组中。可以将经聚合的数据(和确定的度量)提供到聚合系统414。
70.特别地,如图图4所示,在确定度量之后,存储器泄漏管理系统106可以将数据提供到聚合系统414(例如,类似于聚合系统202),以用于存储器使用量数据的进一步聚合和分析。例如,聚合系统414可以确定缓解度量416,诸如缓解作业(例如,基于影响度量和/或异常需要执行什么缓解作业)和其上应该执行缓解的候选节点。聚合系统414可以另外确定诊
断度量418,包括诊断作业(例如,应该发生的诊断动作)和对应于应该从其收集另外的存储器使用量数据的主机节点的样本节点。
71.在诊断和缓解工作流两者中,聚合系统414可以包括用于向诊断和缓解系统424(例如,类似于上面讨论的诊断和缓解系统210)提供请求的动作组件420(例如,动作生成器208)。如图4所示,诊断和缓解系统424可以包括缓解模型426,缓解模型426包括指导诊断和缓解系统424标识要为候选节点执行的一个或多个缓解动作的决策树(或其他决策模型)。如进一步所示,诊断和缓解系统424包括数据收集模型428,其包括可以基于特定于(多个)主机节点402的存储器使用量数据执行的各种诊断动作。
72.在图4所示的例子中,缓解模型426包括基于检测存储器泄漏的示例决策树。缓解模型426可以包括用于其他类型的存储器影响事件(或上面列出的不同异常)的决策树的附加动作或分支。在图4所示的例子中,诊断和缓解系统424可以基于从动作组件420接收到的缓解请求来选择给定缓解动作。例如,缓解模型426可能包括重新修复的第一个分支(例如,存储器泄漏最严重的地方)。缓解模型426可以另外包括执行os重启的第二分支。在候选节点是空节点的情况下,os重启可能涉及重启。例如,os重启可能涉及在不初始化硬件和/或保留虚拟机存储器状态的情况下重启核。备选地,在候选节点是非空节点的情况下,缓解模型426可以包括使节点不可分配的分支或系列动作(例如,标记节点以停止虚拟机的分配),实时迁移可以被迁移的虚拟机,然后执行重新启动。应当理解,虽然只有os重新启动包括子分支,但这只是为了说明的目的而通过示例提供的。缓解模型426的其他分支可以类似地包括更详细的子分支。
73.如进一步所示,缓解模型426可以包括与重新启动候选节点上的进程相关联的进程重新启动分支。缓解模型426还可包括用于重启虚拟机或其他基于云的服务的服务器重启分支。缓解模型426还可以包括用于重新启动或重新启动驱动程序的驱动程序重新启动。在一个或多个实施例中,缓解模型426还包括自定义动作,诸如代理迁移、事件日志迁移,或可以执行以缓解检测到的存储器泄漏的其他动作。
74.如上所述,以及如图4所示,数据收集模型428可以类似地包括可以被包括在提供给主机节点的命令中的动作。具体地,图4图示了基于检测到的存储器泄漏(例如,根据严重性分数和附加信息)的示例数据收集模型428。其他实施例可以包括基于相应类型的存储器影响事件(或基于从聚合系统414接收的诊断请求)执行的附加分支或动作。
75.如图4所示,数据收集模型428包括基于不同类型的泄漏的各种动作。特别地,数据收集模型428指示(多个)主机节点402可以基于一个或多个检测到的泄漏来执行的不同类型的诊断动作。在一种或多种实现中,数据收集模型428指示应响应于标识的存储器泄漏而执行的多个诊断动作。因此,图4中所示的数据收集模型428是示例诊断动作的列表,可以响应于标识主机节点上的存储器泄漏来执行其中的任何一个(或所有这些)。
76.例如,数据收集模型428可以包括用于核泄漏的核转储。数据收集模型428可以包括用于进程泄漏的进程转储。数据收集模型428可以包括dtrace(例如,用于解决核和/或应用程序问题的命令)、堆(heap)快照(例如,用于用户模式泄漏)、虚拟分配、池分配和雷达(例如,附着到进程以生成更详细的快照的工具)。
77.如图4所示,除了针对各个主机节点确定的标识的缓解和/或诊断动作之外,诊断和缓解系统424可以基于诊断和迁移请求将命令循环回(多个)主机节点(或主机节点的子
集)。例如,诊断和缓解系统424可以提供诊断命令430,其指示在数据收集模型428中指示的应该在(多个)主机节点402上执行的动作中的一个或多个动作。作为另一个示例,诊断和缓解系统424可以提供缓解命令432,其指示缓解模型426中指示的应当在(多个)主机节点402上执行的一个或多个缓解动作。
78.在诊断命令430的示例中,(多个)主机节点402可以根据诊断命令430中包括的指令执行诊断动作。例如,(多个)主机节点402可以调用涉及提供数据的各种过程406或实现提取数据并将数据提供给团块(blob)存储434以供进一步处理的工具。团块存储434可以利用与在其上实现存储器泄漏管理系统106的云计算系统102相同或不同的云计算系统上的一个或多个分析服务436(例如,第三方服务)。
79.(多个)分析服务436可以对从(多个)主机节点402接收的数据执行分析。例如,(多个)分析服务436可以分析存储器使用量数据并确定关于存储器泄漏和/或主机节点402的附加信息。例如,(多个)分析服务436可以查看存储器转储并确定哪些数据已泄漏、哪些存储器块受到影响以及其他相关信息。在一个或多个实现中,(多个)分析服务436可以另外确定受存储器泄漏影响的存储器堆栈。(多个)分析服务436可以进一步提供关于存储器系统的历史数据,包括什么存储器使用量数据随时间改变。
80.如图4所示,(多个)分析服务436可以向作业监测器422提供附加信息。作业监测器422可以评估经聚合的数据并基于由(多个)主机节点402收集的经聚合的数据执行各种监测作业438,除了从(多个)分析服务436接收的附加信息之外。例如,作业监测器422可以标识与监测私有提交存储器、共享提交存储器、非分页池和分页池相关联的监测作业。作业监测器422可以另外监测存储器的软限制和硬限制(例如,对应于不同阈值的存储器预算)和主机超额(例如,确定主机os正在使用多少存储器相对于实际保留多少)。
81.存储器泄漏管理系统106可以以多种方式利用监测的数据。例如,如图4所示,作业监测器422可以生成包括关于客户影响的信息的使用报告442,例如推出相关性度量(例如,各种应用程序的推出与存储器泄漏实例之间的相关性)。例如,在将代理或os部署到云计算系统102的情况下,在加速部署到所有生产集群之前使用多个批次和使用测试集群,作业监测器422(或存储器泄漏管理系统106的其他组件)可以确定指示存储器泄漏何时相对于逐步推出的阶段的推出相关性度量。
82.在一个或多个实施例中,作业监测器422可以向健康服务器440提供推出停止信号,以指示特定应用推出有问题并且应该停止向任何和所有主机节点推出。例如,在应用或os推出与检测到的存储器泄漏之间标识出强相关性度量的情况下,作业监测器422可以向云计算系统102的部署基础设施发出信号以停止进一步向附加设备推出。这可能会触发额外的缓解措施或向开发人员团队提交高严重性请求以调查和解决问题。在一个或多个实施例中,监测的数据可以用作缓解模型426和/或诊断模型428中的一个或多个的训练数据,以微调或以其他方式提高诊断存储器泄漏的准确性以及缓解检测到的存储器泄漏。
83.在本文描述的一个或多个实施例中,诊断和/或缓解工作流程响应于或基于推出停止信号的存在而被执行。例如,在转推出的中途发出推出出停止信号导致一个或多个存储器泄漏的情况下,存储器泄漏可能存在于一个或多个主机节点和/或进程(例如,受部署推出早期阶段影响的主机节点和/或流程)。因此,在一个或多个实施例中,存储器泄漏管理系统106基于或响应于发出停止推出信号来执行诊断和/或缓解。
84.如上所述,在一个或多个实施例中,存储器泄漏管理系统106聚合从多个主机节点和/或候选节点接收的存储器使用量数据。如进一步讨论的,存储器泄漏管理系统106可以通过聚集对应于时间间隔的数据子集同时丢弃标识的时间间隔之外的附加存储器使用量数据来减少处理花费。举例来说,图5a-图5c示出了根据一个或多个实施例的存储器泄漏管理系统106确定相关时间间隔的示例。
85.例如,图5a图示了时间线502a,其示出了从初始时间戳(t0)到当前时间戳(tc)随时间的存储器使用量。如图5a所示,存储器使用量随时间增加。在该示例中,存储器泄漏管理系统106可以基于随时间增加的存储器使用量(例如,超过预定时间阈值)和/或基于在短时间内存储器使用量急剧增加来确定存储器泄漏(或其他存储器影响事件)存在于给定主机节点上。基于增加的存储器使用量和存储器泄漏的存在之间的这种相关性,存储器泄漏管理系统106可以确定当前时间间隔(δt)504a是从初始时间戳(t0)延伸到当前时间戳(tc)的时间间隔。
86.图5b示出了第二时间线502b,其示出了存储器使用量随时间的更新表示。特别地,第二时间线502b示出尽管存储器使用量随时间增加,但存在存储器使用量急剧下降,在存储器使用量急剧下降之后存储器使用量在第一时间戳(t1)和更新的当前时间戳(tc)之间继续增加。基于观察到的存储器使用量减少随后存储器使用量增加的趋势,存储器泄漏管理系统106可以修改当前时间间隔(δt)504b以在第一时间戳(t1)和更新的当前时间戳(tc)之间扩展。在该示例中,存储器泄漏管理系统106可以丢弃在初始时间戳(t0)和第一时间戳(t1)之间收集的任何存储器使用量数据。
87.图5c示出了第三时间线502c,其示出了存储器使用量随时间的另一更新表示。特别地,第三时间线502c显示存储器使用量的另一个急剧下降,在该急剧下降之后存储器使用量在第二时间戳(t2)和更新的当前时间戳(tc)之间继续增加。基于观察到的存储器使用量模式以及基于在阈值时间段上存储器使用量数据的增加,存储器泄漏管理系统106可以更新当前时间间隔(δt)504c以在第二时间戳(t2)和更新的当前时间戳(tc)之间扩展。在该示例中,存储器泄漏管理系统106可以丢弃在第二时间戳(t2)之前收集的任何存储器使用量数据,从而减少存储器泄漏管理系统106的一个或多个服务器设备上的处理花费。
88.虽然图5a-图5c示出了存储器泄漏检测系统106基于预定时间段存储器使用量的上升趋势和/或基于存储器使用量的急剧增加来确定相关时间间隔的示例实现,其他度量可以是在确定时间间隔时考虑。例如,存储器泄漏检测系统106可以基于在阈值时间段内丢失的数据来确定具有初始时间戳的时间间隔。作为另一示例,存储器泄漏检测系统106可以基于在短时间内标识的存储器使用量下降或跳跃来确定时间间隔。其他条件可以包括确定存储器使用量值未改变预期量、确定存储器使用量值已降至低于先前基准值、确定存储器使用量已降至起始值以下(例如,已加入额外进程的情况),确定在阈值时间段内没有变化,确定存储器使用量在阈值时间段内没有增加足够多,或标识其他可疑情况。
89.现在参考图6,该图图示了示例流程图,包括用于诊断和缓解云计算系统的(多个)主机节点上的存储器泄漏的系列动作。尽管图6示出了根据一个或多个实施例的动作,但替代实施例可以省略、添加、重新排序和/或修改图6所示的任何动作。图6的动作可以作为方法的一部分来执行。备选地,非瞬态计算机可读介质可以包括指令,当由一个或多个处理器执行时,使计算设备执行图6的动作。在其他实施例中,系统可以执行图6的动作。
90.如图6所示,系列动作600包括收集存储器使用量数据的动作610,存储器使用量数据包括由云计算系统的主机节点生成的采样数据。例如,在一种或多种实施方式中,动作610涉及针对云计算系统上的多个主机节点收集存储器使用量数据,该存储器使用量数据包括与该多个主机上的一种或多种类型的存储器使用量相对应的采样数据节点。
91.在一个或多个实现中,收集存储器使用量数据包括:从多个主机节点中的每个主机节点,接收本地生成的存储器使用量数据,本地生成的存储器使用量数据包括由多个主机节点的每个主机节点上的一个或多个代理采样的存储器使用量数据。一个或多个代理可以包括用于收集不同类型的存储器使用量数据的第一代理和第二代理。第一代理可以收集一个或多个应用程序进程的存储器使用量数据,而第二代理收集操作系统和驱动程序的存储器使用量数据。
92.如进一步所示,系列动作600包括动作620,动作620聚合存储器使用量数据以基于针对主机节点的子集的存储器使用量数据来确定被预测具有存储器泄漏的主机节点的子集。例如,在一种或多种实现中,动作620涉及在一个或多个预定间隔上聚合存储器使用量数据,以基于针对主机节点的子集的存储器使用量数据满足一个或多个影响度量来从多个主机节点确定被预测拥有存储器泄露的主机节点的子集。一个或多个影响度量可以包括以下一项或多项:在相关时间间隔上存储器使用量的阈值增加、在短持续时间上存储器使用量的阈值增加、在相关时间间隔上存储器使用量的阈值减少,或在相关时间间隔上存储器使用量没有变化。
93.在一个或多个实施例中,聚合存储器使用量数据包括针对每个主机节点,确定相关时间间隔。确定相关时间间隔可以包括确定主机节点的存储器使用量数据的趋势是否已经增加超过阈值时间段。确定相关时间间隔还可以包括基于确定主机节点的存储器使用量数据的趋势是否已经增加超过阈值时间段来迭代地修改时间间隔。在一个或多个实施例中,聚合存储器使用量数据还包括基于对应于修改的时间间隔的聚合存储器使用量数据的部分的时间戳选择性地标识聚合的存储器使用量数据的部分。
94.如进一步所示,系列动作600包括动作630,动作630基于对应于主机节点的子集的存储器使用量数据,诊断针对主机节点的子集的一个或多个存储器泄漏。例如,在一种或多种实现中,动作630涉及基于对应于主机节点的子集的存储器使用量数据诊断针对主机节点的子集的一个或多个存储器泄漏。
95.如进一步所示,系列动作600包括应用缓解模型以确定和生成缓解命令以向主机节点的子集中一个或多个主机节点提供的动作640。例如,在一种或多种实现中,动作640涉及将缓解模型应用到经聚合的数据的部分以确定和生成缓解命令以提供到主机节点的子集中的一个或多个主机节点。
96.在一个或多个实施例中,诊断一个或多个存储器泄漏包括确定一个或多个存储器泄漏的严重性。此外,在一个或多个实现中,应用缓解模型包括基于一个或多个存储器泄漏的严重性从多个缓解动作中确定缓解动作。
97.在一个或多个实施例中,诊断一个或多个存储器泄漏包括确定一个或多个存储器泄漏的类型。此外,在一个或多个实施例中,应用缓解模型包括基于所确定的一个或多个存储器泄漏的类型从多个缓解动作中确定缓解动作。
98.在一个或多个实施例中,诊断一个或多个存储器泄漏包括确定一个或多个存储器
泄漏的类型和一个或多个存储器泄漏的严重性。此外,在一个或多个实施例中,应用缓解模型包括通过缓解树迭代,该缓解树包括多个缓解命令,以从多个缓解命令中标识缓解命令,以提供给主机节点的子集的一个或多个主机节点。
99.系列动作600还可以包括使多个主机节点向分析服务提供附加的存储器使用量数据,该分析服务包括云计算系统或不同云计算系统上的第三方服务。系列动作600还可以包括从分析服务接收与已发生存储器泄漏的特定主机节点和进程相关联的信息。系列动作600可以包括发出推出停止信号,使云计算系统上的一个或多个应用程序的推出停止。在一个或多个实施例中,确定主机节点的子集还基于在发出推出停止信号之前对受一个或多个应用的推出影响的多个主机节点的主机节点的标识。
100.图7图示了可以包括在计算机系统700内的某些组件。一个或多个计算机系统700可以用于实现各种此处描述的设备、组件和系统。
101.计算机系统700包括处理器701。处理器701可以是通用单片或多片微处理器(例如,高级risc(精简指令集计算机)机(arm))、专用微处理器(例如,数字信号处理器(dsp)、微控制器、可编程门阵列等。处理器701可以称为中央处理单元(cpu)。尽管在图7的计算机系统700中仅示出了单个处理器701,如图7所示,在替代配置中,可以使用处理器的组合(例如,arm和dsp)。
102.计算机系统700还包括与处理器701进行电子通信的存储器703。存储器703可以是能够存储电子信息的任何电子组件。例如,存储器703可以体现为随机存取存储器(ram)、只读存储器(rom)、磁盘存储介质、光存储介质、ram中的闪存设备、包括处理器的板载(on-board)存储器、可擦除可编程只读存储器(eprom)、电可擦可编程只读存储器(eeprom)存储器、寄存器等,包括它们的组合。
103.指令705和数据707可以被存储在存储器703中。指令705可以由处理器701执行以实现这里公开的一些或全部功能。执行指令705可以涉及使用被存储在存储器703中的数据707。本文描述的模块和组件的各种示例中的任何示例可以部分或全部地实现为存储在存储器703中并由处理器701执行的指令705。本文描述的各种数据示例中的任何一个都可以在数据707之中,数据707在处理器701执行指令705期间被存储在存储器703中并且被使用。
104.计算机系统700还可包括用于与其他电子设备通信的一个或多个通信接口709。(多个)通信接口709可以基于有线通信技术、无线通信技术或两者。通信接口709的一些示例包括通用串行总线(usb)、以太网适配器、根据电气和电子工程师协会(ieee)802.11无线通信协议操作的无线适配器、蓝牙无线通信适配器和红外(ir)通信端口。
105.计算机系统700还可以包括一个或多个输入设备711和一个或多个输出设备713。输入设备711的一些示例包括键盘、鼠标、麦克风、遥控设备、按钮、操纵杆、轨迹球、触摸板和光笔。输出设备713的一些示例包括扬声器和打印机。通常包括在计算机系统700中的一种特定类型的输出设备是显示设备715。与本文公开的实施例一起使用的显示设备715可以利用任何合适的图像投影技术,例如液晶显示器(lcd)、发光二极管(led)、气体等离子体、电致发光等。还可以提供显示控制器717,用于将存储在存储器703中的数据707转换为显示设备715上显示的文本、图形和/或运动图像(视情况而定)。
106.计算机系统700的各种组件可以通过一个或多个总线耦合在一起,总线可以包括电源总线、控制信号总线、状态信号总线、数据总线等。为了清楚起见,各种总线在图7中显
示为总线系统719。
107.本文描述的技术可以在硬件、软件、固件或其任何组合中实现,除非具体描述为以特定方式实现。描述为模块、组件等的任何特征也可以在集成逻辑设备中一起实现,或者作为分立但可互操作的逻辑设备单独实现。如果在软件中实现,则这些技术可以至少部分地通过包括指令的非瞬态处理器可读存储介质来实现,所述指令在由至少一个处理器执行时执行本文所述的一种或多种方法。指令可以被组织成例程、程序、对象、组件、数据结构等,其可以执行特定任务和/或实现特定数据类型,并且可以在各种实施例中根据需要进行组合或分布。
108.计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是非瞬态计算机可读存储介质(设备)。承载计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实施例可以包括至少两种截然不同的计算机可读介质:非瞬态计算机可读存储介质(设备)和传输介质。
109.如本文所用,非瞬态计算机可读存储介质(设备)可以包括ram、rom、eeprom、cd-rom、固态驱动器(“ssd”)(例如,基于ram)、闪存、相更换存储器(“pcm”)、其他类型的存储器、其他光盘存储器、磁盘存储器或其他磁存储设备,或任何其他可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用用途访问的介质计算机。
110.在不脱离权利要求的范围的情况下,本文描述的方法的步骤和/或动作可以相互互换。换言之,除非正描述的方法的正确操作需要特定的步骤或动作顺序,否则可以修改特定步骤和/或动作的顺序和/或使用而不背离权利要求的范围。
[0111]“确定”一词涵盖了广泛的行动,因此,“确定”可以包括算出、计算、处理、推导、调查、查找(例如,在表格、数据库或其他数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解决、选择、选取、建立等。
[0112]
术语“包括”、“包含”和“具有”旨在具有包容性,并表示可能存在除所列元素之外的其他元素。此外,应当理解,对本公开的“一个实施例”或“实施例”的引用不旨在被解释为排除也包含所述特征的附加实施例的存在。例如,关于本文中的实施例描述的任何元件或特征可以与本文描述的任何其他实施例的任何元件或特征在兼容的情况下组合。
[0113]
在不背离本公开的精神或特征的情况下,本公开可以以其他特定形式体现。所描述的实施例被认为是说明性的而不是限制性的。因此,本公开的范围由所附权利要求而不是由前述描述指示。在权利要求等效的含义和范围内的变化将被包含在其范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1