基于计算系统中的利用模式的资源过度订阅的制作方法

文档序号:17439284发布日期:2019-04-17 04:32阅读:206来源:国知局
基于计算系统中的利用模式的资源过度订阅的制作方法

云计算系统通常包括路由器、交换机、网桥以及互连大量服务器、网络存储设备和其他类型的计算设备的其他物理网络设备。个体服务器可以托管一个或多个虚拟机或其他类型的虚拟化组件。虚拟机可以在执行期望任务时执行应用以向用户提供云计算服务。



技术实现要素:

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

云计算通常利用被托管在一个或多个服务器上的虚拟机来适应来自用户的计算、通信或其他类型的云服务请求。例如,服务器可以托管一个或多个虚拟机以向用户提供web搜索、网站托管、系统更新、应用开发和测试或其他合适的计算服务。虚拟机可以共享托管服务器的计算、存储器、网络、存储装置或其他合适类型的资源。

当向个体服务器分配虚拟机时,过度订阅是一种用于提高资源利用的技术。当被过度订阅时,服务器可以托管大量虚拟机,即使服务器没有足够的物理资源来同时满足所有虚拟机的需求。例如,服务器可以具有六个物理处理器或“核”。当被过度订阅时,服务器可以托管八个、十个、十二个或甚至更多虚拟机,每个虚拟机需要一个虚拟核。因此,虚拟机可以在不同时间利用核来提高服务器上的处理器利用。然而,当所有虚拟机同时需要服务器的资源时,服务器可能遭受性能下降、系统故障或其他不期望的影响。

所公开的技术的若干实施例可以通过将虚拟机分类为执行面向用户或非面向用户的任务并且将执行面向用户的任务的虚拟机分配给未被过度订阅的资源来减轻过度订阅的不良影响的影响。在某些实施例中,当任务的执行涉及用户交互时,任务是面向用户的。例如,web搜索任务是面向用户的,因为web搜索涉及接收用户输入以便生成搜索结果。不涉及同步用户交互的任务可以分类为非面向用户的。例如,批量数据分析(例如,机器学习任务)、后台维护任务(例如,系统升级、病毒扫描、磁盘碎片整理等)以及应用开发和测试是非面向用户的任务的示例。

所公开的技术的若干实施例可以经由对任务、类似任务或具有相同任务类型或“角色”的任务的历史资源利用数据的信号处理来支持任务或相关联的虚拟机的这种分类。例如,可以收集表示个体虚拟机的处理器、存储器、网络或存储设备利用级别的利用数据。然后可以对收集的利用数据执行模式分析,以确定利用数据中存在的时间模式。在某些实现中,时间模式可以被分类为周期性模式、恒定模式或随机模式。周期性模式指示对应任务是面向用户的可能性,因为用户在白天与任务交互并且在晚上睡觉(或者在白天工作并且在晚上与任务交互)。在其他实现中,时间模式可以以其他合适的方式进行分类。

在某些实施例中,执行模式分析可以包括应用快速傅里叶变换以将利用数据从时域转换到频域。这样,可以在经变换的利用数据中检测具有一个或多个周期的周期性模式,作为大于阈值的一个或多个不同的频谱值。例如,如果利用数据指示在下午2:00观察到75%的cpu利用,并且在一周的每天的凌晨2:00观察到15%的cpu利用,则可以在频域中观察到不同的频谱值,作为频率为每周7次的大频谱值。在另一示例中,恒定模式可以具有针对所有频率小于阈值并且都在相对窄的频带内的频谱值。在又一示例中,随机模式在某些频率处不具有不同的高频谱值。相反,随机模式可以在非常低的频率处具有高频谱值(例如,最大值或高于第95百分位数),例如,在零频率处或在零频率附近。在其他实施例中,模式分析可以包括应用拉普拉斯变换、傅里叶变换或其他合适类型的变换。

当任务被分类为面向用户(即,具有主导频率可能是由用户行为导致的周期性模式(例如,每周7个周期))时,可以将任务分配给未被过度订阅的服务器。另一方面,当任务被分类为非面向用户时,任务可以被分配给任何服务器,该服务器可以被过度订阅、欠订阅或完全订阅。因此,通过将用于执行面向用户的任务的虚拟机分配给未被过度订阅的服务器,所公开的技术的若干实施例可以避免或至少降低用户经历服务延迟、中断或过度订阅的其他可能的不良影响的风险。

附图说明

图1是示出根据所公开的技术的实施例的基于利用模式来实现资源的过度订阅的计算系统的示意图。

图2是示出了根据所公开的技术的实施例的图1的计算系统的某些硬件/软件组件的示意图。

图3是示出了根据所公开的技术的实施例的适合于图1的计算系统的云控制器的硬件/软件组件的框图。

图4a-4c是根据所公开的技术的实施例的在由图1的计算系统中的虚拟机执行的任务分类的某些阶段期间的图3中的云控制器的框图。

图5a-5c是示出了根据所公开的技术的实施例的管理计算系统中的资源的过度订阅的过程的流程图。

图6a和6b分别是根据所公开的技术的实施例的被表征为周期性利用的任务的示例利用与时间的图和相应的频谱。

图7a和7b分别是根据所公开的技术的实施例的被表征为恒定利用的任务的示例利用与时间的图和对应的频谱。

图8a和8b分别是根据所公开的技术的实施例的被表征为不可预测利用的任务的示例利用与时间的图和对应的频谱。

图9是示出根据所公开的技术的实施例的用于确定利用数据的时间模式的过程的流程图。

图10是适合于图1中的计算系统的某些组件的计算设备。

具体实施方式

下面描述用于管理数据中心或其他合适的计算系统中的资源的过度订阅的系统、设备、组件、模块、例程、数据结构和过程的某些实施例。在以下描述中,包括组件的具体细节以提供对所公开的技术的某些实施例的透彻理解。相关领域的技术人员还将理解,该技术可以具有另外的实施例。该技术也可以在没有下面参考图1-10而描述的实施例的若干细节的情况下实践。

如本文中使用的,术语“计算系统”通常是指具有将多个服务器或主机彼此连接或连接到外部网络(例如,因特网)的多个网络节点的互连计算机网络。术语“网络节点”通常是指物理网络设备。示例网络节点包括路由器、交换机、集线器、网桥、负载平衡器、安全网关或防火墙。“主机”通常是指被配置为实现例如一个或多个虚拟机或其他合适的虚拟化组件的物理计算设备。例如,主机可以包括具有被配置为支持一个或多个虚拟机或其他合适类型的虚拟组件的管理程序的服务器。

计算机网络可以在概念上划分为在底层网络上实现的覆盖网络。“覆盖网络”通常是指在底层网络上实现并且在其之上操作的抽象网络。底层网络可以包括彼此互连的多个物理网络节点。覆盖网络可以包括一个或多个虚拟网络。“虚拟网络”通常是指覆盖网络中的底层网络的一部分的抽象。虚拟网络可以包括被称为由用户或“租户”单独使用以访问虚拟网络和相关联的计算资源、存储资源或其他合适的资源的“租户站点”的一个或多个虚拟端点。租户站点可以托管一个或多个租户端点(“tep”),例如虚拟机。虚拟网络可以互连不同主机上的多个tep。覆盖网络中的虚拟网络节点可以通过虚拟链路彼此连接,虚拟链路单独地对应于沿着底层网络中的一个或多个物理网络节点的一个或多个网络路线。

本文中还使用的术语“面向用户”通常是指其执行涉及或取决于用户交互的计算任务的特性。例如,当任务的执行涉及接收用户输入、确认或其他用户动作以及提供用户正在等待的响应时,任务是面向用户的。例如,执行web搜索的任务是面向用户的,因为web搜索需要来自用户的查询以便生成合适的搜索结果。不涉及用户交互的任务可以被分类为非面向用户的。例如,批量数据分析(例如,机器学习任务)、后台维护任务(例如,系统升级、病毒扫描、磁盘碎片整理等)以及应用开发和测试可以被认为是非面向用户的。

如本文中使用的,术语“时间模式”通常是指例如与虚拟机或计算系统的其他合适组件的资源利用相关的根据时间的模式。在下面的描述中,时间模式被分类为周期性的、恒定的或随机的。“周期性”模式可以包括根据时间的一个或多个不同的周期。“恒定”模式可以包括根据时间的通常恒定(例如,在阈值范围内)的利用水平。“随机”模式可以包括没有可辨别的趋势或周期的模式。周期性模式表明面向用户的计算的可能性,因为用户在白天活动并且在晚上不活动(反之亦然)。在其他实现中,除了或代替前述模式,时间模式可以以其他合适的方式进行分类。

过度订阅是一种用于提高某些计算系统中的资源利用的技术。例如,当被过度订阅时,可以将虚拟机分配给具有不足量的物理资源的服务器以同时满足虚拟机的100%的需求。因此,当所有虚拟机同时利用服务器的资源时,服务器可能遭受性能下降、系统故障或其他不期望的影响。这种不期望的影响可能对云计算服务的用户体验产生负面影响。

所公开的技术的若干实施例可以通过将由虚拟机执行的任务分类为面向用户的或面向非用户的并且将面向用户的任务的执行分配给未被过度订阅的资源来抑制这种不期望的影响的影响。例如,当任务被分类为面向用户的时,其虚拟机可以被分配给欠订阅的服务器。另一方面,当任务被分类为非面向用户的时,可以将与该任务相关联的虚拟机分配给任何服务器,该服务器可以被过度订阅、欠订阅或完全订阅。因此,通过分配资源用于在未被过度订阅的服务器上执行面向用户的任务,所公开的技术的若干实施例可以避免或至少降低用户经历服务延迟、中断或过度订阅的其他可能的不良影响的风险,如下面参考图1-9更详细地描述的。尽管下面使用虚拟机的分配作为示例来描述所公开的技术,但是所公开的技术的至少某些方面也可以应用于分配存储器(例如,dram)、网络(例如,网络带宽)、存储装置(例如,固态设备或其他合适的永久存储装置)或计算系统中的其他合适类型的资源。

图1是示出根据所公开的技术的实施例的基于利用模式来实现资源的过度订阅的计算系统100的示意图。如图1所示,计算系统100可以包括互连多个主机106、多个租户101和云控制器126的底层网络108。虽然图1中示出了计算系统100的特定组件,但是在其他实施例中,计算系统100还可以包括附加和/或不同的组件。例如,计算系统100还可以包括网络存储设备、维护管理器和/或其他合适的组件(未示出)。

如图1所示,底层网络108可以包括互连多个主机106、租户101和云控制器126的一个或多个网络节点112。在某些实施例中,主机106可以被组织成机架、动作区域、组、集合或其他合适的分部。例如,在所示实施例中,主机106被分组为单独地标识为第一、第二和第三主机集合107a-107c的三个主机集合。在所示实施例中,主机集合107a-107c中的每个分别可操作地耦合到通常被称为“架顶”或“tor”网络节点的对应的网络节点112a-112c。然后,tor网络节点112a-112c可以可操作地耦合到附加网络节点112以形成分层、平面、网格或其他合适类型的拓扑的计算机网络。计算机网络可以允许主机106、云控制器126和租户101之间的通信。在其他实施例中,多个主机集合107a-107c可以共享单个网络节点112,或者可以具有其他合适的布置。

主机106可以单独地被配置为向租户101提供计算、存储和/或其他合适的云计算服务。例如,如下面参考图2更详细描述的,主机106之一可以根据来自租户101的请求来启动和维护一个或多个虚拟机144(如图2所示)或容器145(如图3所示)。租户101然后可以利用启动的虚拟机144或容器145来执行计算、通信和/或其他合适的任务。在某些实施例中,主机106之一可以为多个租户101提供虚拟机144。例如,主机106a可以托管单独地与租户101a-101c中的每个相对应的三个虚拟机144。在其他实施例中,多个主机106可以托管租户101a-101c的虚拟机144。

根据所公开的技术的若干实施例,云控制器126可以被配置为基于这种虚拟机144的使用模式来分配计算系统100中的虚拟机144(或其他合适的资源)。在某些实施例中,云控制器126可以将被配置为执行面向用户的任务的虚拟机144分配给未被过度订阅的一个或多个主机106。云控制器126还可以将被配置为执行非面向用户的任务的虚拟机144分配给过度订阅的主机106。在其他实施例中,可以将非面向用户的任务分配给任何主机106,而不管主机106是否被过度订阅。在某些实现中,云控制器126可以是数据中心控制器、结构控制器或其他合适类型的控制器或其组件。在其他实现中,云控制器126可以是计算系统100的独立硬件/软件组件。

在某些实施例中,云控制器126可以被配置为通过分析与对应虚拟机144相关联的历史利用数据来确定与所请求的资源相关联的任务是否是面向用户的。如果利用数据具有周期性时间模式,则云控制器126可以指示任务是面向用户的。如果利用数据具有恒定或随机时间模式,则云控制器126可以指示任务不是面向用户的。在其他实施例中,除了或代替云控制器126,前述模式分析可以由主机106之一、专用服务器(未示出)或计算系统100中的其他合适的实体来执行。下面参考图3-4c更详细地描述用于执行前述功能的云控制器126的示例组件。

图2是示出根据所公开的技术的实施例的在图1的底层网络108上实现的覆盖网络108'的示意图。在图2中,为清楚起见,仅示出了图1的底层网络108的某些组件。如图2所示,第一主机106a和第二主机106b每个可以包括可操作地彼此耦合的处理器132、存储器134和输入/输出组件136。处理器132可以包括微处理器、现场可编程门阵列和/或其他合适的逻辑器件。存储器134可以包括易失性和/或非易失性介质(例如,rom;ram、磁盘存储介质;光学存储介质;闪存设备和/或其他合适的存储介质)和/或被配置为存储从处理器132接收的数据以及处理器132的指令(例如,用于执行下面参考图5a-5c和9讨论的方法的指令)的其他类型的计算机可读存储介质。输入/输出组件136可以包括显示器、触摸屏、键盘、鼠标、打印机和/或被配置为从操作者和/或自动软件控制器(未示出)接受输入和向其提供输出的其他合适类型的输入/输出设备。

第一主机106a和第二主机106b可以在存储器134中单独地包含由处理器132可执行以引起个体处理器132提供管理程序140(单独地标识为第一管理程序140a和第二管理程序140b)和状态代理141(单独地标识为第一状态代理141a和第二状态代理141b)的指令。虽然管理程序140和状态代理141被示出为单独的组件,但是在其他实施例中,状态代理141可以是管理程序140或在对应主机106上执行的操作系统(未示出)的一部分。在另外的实施例中,状态代理141可以是独立的应用。

管理程序140可以单独地被配置为生成、监测、终止和/或以其他方式管理被组织到租户站点142中的一个或多个虚拟机144。例如,如图2所示,第一主机106a可以提供分别管理第一租户站点142a和第二租户站点142b的第一管理程序140a。第二主机106b可以提供分别管理第一租户站点142a'和第二租户站点142b'的第二管理程序140b。管理程序140在图2中单独地示出为软件组件。然而,在其他实施例中,管理程序140可以是固件和/或硬件组件。租户站点142每个可以包括用于特定租户(未示出)的多个虚拟机144。例如,第一主机106a和第二主机106b都可以托管第一租户101a(图1)的租户站点142a和142a'。第一主机106a和第二主机106b都可以托管第二租户101b(图1)的租户站点142b和142b'。每个虚拟机144可以执行对应的操作系统、中间件和/或应用。

还如图2所示,计算系统100可以包括具有跨多个主机106将租户站点142a和142b互连的一个或多个虚拟网络146的覆盖网络108'。例如,第一虚拟网络142a互连在第一主机106a和第二主机106b处的第一租户站点142a和142a'。第二虚拟网络146b互连第一主机106a和第二主机106b处的第二租户站点142b和142b'。虽然单个虚拟网络146被示出为对应于一个租户站点142,但是在其他实施例中,多个虚拟网络146(未示出)可以被配置为对应于单个租户站点146。

虚拟网络146上的虚拟机144也可以经由底层网络108(图1)彼此通信,尽管虚拟机144位于不同的主机106上。每个虚拟网络146的通信可以与其他虚拟网络146隔离。在某些实施例中,可以允许通过安全网关或以其他方式以受控方式从一个虚拟网络146跨越到另一虚拟网络的通信。虚拟网络地址可以对应于特定虚拟网络146中的虚拟机144之一。因此,不同的虚拟网络146可以使用相同的一个或多个虚拟网络地址。示例虚拟网络地址可以包括ip地址、mac地址和/或其他合适的地址。

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

系统内的组件可以在系统内采用不同的形式。作为一个示例,包括第一组件、第二组件和第三组件的系统可以但不限于包括其中第一组件是以源代码表示的属性、第二组件是二进制编译库并且第三组件是在运行时创建的线程的系统。计算机程序、过程或进程可以被编译成对象、中间或机器代码并且被呈现以用于由个人计算机、网络服务器、膝上型计算机、智能电话和/或其他合适的计算设备的一个或多个处理器执行。

同样,组件可以包括硬件电路。本领域普通技术人员将认识到,硬件可以被认为是固化的软件,并且软件可以被认为是液化的硬件。仅作为一个示例,组件中的软件指令可以被刻录到可编程逻辑阵列电路,或者可以被设计为具有适当集成电路的硬件电路。同样,硬件可以用软件来模拟。源、中间和/或目标代码和相关联的数据的各种实现可以存储在计算机存储器中,该计算机存储器包括只读存储器、随机存取存储器、磁盘存储介质、光存储介质、闪存设备和/或除了传播信号之外的其他合适的计算机可读存储介质。

如图3所示,第一主机106a和第二主机106b可以被配置为例如经由管理程序140(图2)托管一个或多个虚拟机144。在图3所示的示例中,第一主机106a可以通过托管需求超过第一主机106a处可用的物理资源的多个虚拟机144来被过度订阅。这样,第一主机106a可能不同时满足来自被托管的虚拟机144的100%的需求。另一方面,第二主机106b可以通过托管比第一主机106a更少数目的虚拟机144来被欠订阅。下面利用前述说明性示例来描述云控制器126的操作。在其他实施例中,计算系统100可以包括被过度订阅、欠订阅或完全订阅的附加主机106。

如图3所示,云控制器126可以包括可操作地彼此耦合的资源分配器152和任务剖析器154。资源分配器152可以被配置为将处理、存储器、网络、存储装置或其他合适类型的资源分配给用于提供由租户101请求的云计算服务的任务。在一个实施例中,资源分配器152可以包括被配置为将虚拟机分配给物理主机106(图1)的虚拟机器分配器。在其他实施例中,资源分配器152可以包括存储器、网络、存储装置或其他合适类型的分配器。尽管图3示出了资源分配器152和任务剖析器154是云控制器126的组成部分,但是在其他实施例中,前述组件可以由计算系统100的不同组件提供。例如,任务剖析器154可以是被托管在一个或多个主机106(图1)上的独立应用,而资源分配器152是数据中心控制器、结构控制器或其他合适类型的控制器的一部分。

任务剖析器154可以被配置为基于任务、类似任务或具有相同任务类型或“角色”的任务的历史利用数据来确定和提供利用的时间模式。例如,任务剖析器154最初可以将虚拟机144'分配给默认主机106(例如,第二主机106b)并且在一周、一个月或其他合适的时间段内收集利用数据。然后,任务剖析器154可以分析所收集的利用数据以确定与由虚拟机144'执行的任务相关联的时间模式。在另一示例中,任务剖析器154可以使用特定类型或角色(例如,web服务、开发和测试等)对任务进行分类,并且使用与所请求的任务类似地分类的任务的利用数据来确定时间模式。在另外的示例中,任务剖析器154可以被配置为以其他合适的方式确定与任务相关联的时间模式,这些方式的示例在下面参考图4a-4c进行描述。

在操作中,租户101可以将服务请求150传输到计算系统100以实例化用于执行期望任务的虚拟机144'。响应于所接收的服务请求150,云控制器126可以基于与被配置为执行任务的虚拟机144'相关联的利用的时间模式等来分配虚拟机144'。在所示实施例中,任务剖析器154可以提供与任务相关联的所确定的时间模式,并且指示任务是面向用户的。作为响应,资源分配器152可以将虚拟机144'分配给未被过度订阅的第二主机106b。然后,云控制器126或计算系统100中的其他合适实体可以传输实例化命令158以提供和实例化虚拟机144'。一旦被实例化,虚拟机144'就可以执行合适的指令以向租户101提供服务结果174。在其他实施例中,任务剖析器154可以指示任务不是面向用户的。这样,云控制器126可以将虚拟机144'分配给第一主机106a或其他合适的主机106(图1)。

图4a-4c是根据所公开的技术的实施例的在由图3的任务剖析器154执行的任务分类的某些阶段期间的图3中的云控制器126的框图。如图4a所示,云控制器126可以可操作地耦合到存储装置161。在一个实施例中,存储装置161可以是计算系统100中的网络存储装置。在另一实施例中,存储装置161可以是耦合到云控制器126的专用存储设备。在另外的实施例中,存储装置161可以是云控制器126的组成部分。

还如图4a所示,任务剖析器154可以包括可操作地彼此耦合的数据收集器162、简档分析器164和简档分类器166。尽管在图4a-4c中示出了任务剖析器154的特定组件,但是在其他实施例中,任务剖析器154还可以包括输入/输出接口和/或其他合适的组件。

数据收集器162可以被配置为从被托管在第一主机106a和第二主机106b上的虚拟机144收集利用数据168。在某些实施例中,数据收集器162可以向第一主机106a和第二主机106b查询cpu、易失性存储器、网络带宽、非易失性存储器的利用、或者第一主机106a和第二主机106b中的每个上的个体虚拟机144的其他合适类型的利用数据168。数据收集器162可以周期性地或以其他合适的方式向第一主机106a和第二主机106b查询。在其他实施例中,第一主机106a和第二主机106b每个可以包括被配置为周期性地或以其他合适的方式将利用数据168报告给数据收集器162的报告代理(未示出)。报告代理可以是第一主机106a和第二主机106b上的操作系统、管理程序或其他合适组件的一部分。在另外的实施例中,数据收集器162可以实现前述数据检索技术的组合。然后,数据收集器162可以将所接收的利用数据168提供给简档分析器164以进一步处理,并且可选地将利用数据168存储在存储装置161中。

简档分析器164可以被配置为针对利用数据168的时间模式分析利用数据168。在一个实施例中,简档分析器164可以被配置为根据时间绘制虚拟机144的利用数据168。然后,简档分析器164可以基于该图来确定利用数据168的时间简档。例如,当利用值的分布在窄带内时,简档分析器164可以确定时间简档具有恒定模式。在另一示例中,当利用值的分布简档(例如,标准偏差)接近白噪声的分布简档时,简档分析器164还可以确定时间简档具有随机模式。

在其他实施例中,简档分析器164还可以被配置为应用快速傅里叶变换以将利用数据168从时域转换为频域中的频谱。基于频谱简档,简档分析器164然后可以确定利用数据168的时间简档。例如,当频谱在对应频率处示出大于阈值的一个或多个不同频谱值时,简档分析器164可以指示利用数据168具有周期性模式。在另一示例中,当频谱针对所有频率示出低于另一阈值的频谱值时,简档分析器164可以指示利用数据168具有恒定模式。在另一示例中,当频谱在零频率处或在零频率附近示出最高频谱值时,简档分析器164可以指示利用数据168具有随机模式。下面参考图6a-8b更详细地描述时域和频域中的利用数据168的示例图。

然后,简档分类器166可以被配置为基于时间简档将由各种虚拟机144执行的任务分类为面向用户的或非面向用户的之一。例如,在一个实施例中,简档分类器166可以将具有周期性模式的任务分类为面向用户的。在另一实施例中,简档分类器166可以将具有随机和恒定模式的任务分类为非面向用户的。在其他示例中,简档分类器166可以基于其他使用度量或其他合适的标准以其他合适的方式对任务进行分类。在所示实施例中,简档分类器166还可以被配置为将分类的任务作为任务类别169与任务标识(例如,任务序列号)、任务类型(例如,web搜索)、任务角色(例如,数据检索)或与任务相关联的其他合适特性一起存储在存储装置161中。

在图4a所示的实施例中,虚拟机144'可以最初被托管在第二主机106b上,因为简档分类器166已经将类似的任务分类为面向用户的任务,要由虚拟机144'执行的任务在存储装置161中没有任务类别169的对应记录,或者出于其他合适的原因。一旦虚拟机144'被实例化并且执行所请求的任务,数据收集器162就可以收集对应的利用数据168并且对由虚拟机144'执行的任务进行分类,如上所述。

如图4b所示,如果简档分类器166将由虚拟机144'执行的任务分类为非面向用户的任务,则任务剖析器154可以相应地经由简档指示170来通知资源分配器152。在某些实施例中,资源分配器152可以向第一主机106a和/或第二主机106b发出将虚拟机144'从第二主机106b迁移到被过度订阅的第一主机106a的迁移命令172。如图4c所示,在迁移期间,第二主机106b可以向第一主机106a传输与虚拟机144'相关联的虚拟机数据174。一旦迁移,虚拟机144'就可以在第一主机106a上执行任务,并且将服务结果174提供给租户101。在其他实施例中,资源分配器152可以将虚拟机144'留在第二主机106b处,并且仅响应于对虚拟机更新或其他合适操作的请求而重新定位虚拟机144'。

在另外的实施例中,如果简档分类器166将由虚拟机144'执行的任务分类为面向用户的,则资源分配器152可以检查虚拟机144'当前是否被托管在未被过度订阅的主机106上。在图4b所示的实施例中,第二主机106b未被过度订阅,并且因此资源分配器152可以将虚拟机144'保持在第二主机106b上。另一方面,如果虚拟机144'最初被托管在第一主机106a(未示出)上,则资源分配器152可以发出将虚拟机144'从第一主机106a迁移到未被过度订阅的另一主机106(诸如第二主机106b)的适当命令。

图5a是示出根据所公开的技术的实施例的管理计算系统中的资源的过度订阅的过程200的流程图。虽然关于图1和2的计算系统100以及图3-4c的硬件/软件组件来描述过程200,但是在其他实施例中,过程200也可以在其他合适的系统中实现。

如图5a所示,过程200包括在阶段202接收对资源的用户请求。在某些实施例中,所请求的资源可以包括被配置为执行目标任务的虚拟机。在其他实施例中,所请求的资源可以包括用于在数据中心或其他合适类型的计算系统中执行目标任务的存储器、网络、存储装置或其他合适类型的计算资源。然后,过程200可以包括用于确定是否存在用于由所请求的资源执行的目标任务的利用简档的决策阶段204。在一个实施例中,利用简档可以包括与类似类型或角色的另一任务相关联的任务作为目标任务。在其他实施例中,利用简档可以包括与相同目标任务的过去执行相关联的任务。

响应于确定对于目标任务确实存在利用简档,则过程200可以包括用于确定目标任务是否是面向用户的另一决策阶段206。响应于确定目标任务是面向用户的,过程200可以包括在阶段208响应于所接收的用户请求而提供未被过度订阅的资源。另一方面,响应于确定目标任务是非面向用户的,过程200可以包括在阶段210响应于所接收的用户请求而提供被过度订阅的资源。响应于确定不存在利用简档,过程200可以直接继续进行以在阶段210和208处分别提供被过度订阅的资源或非过度订阅的资源。

图5b是示出根据所公开的技术的实施例的对在计算系统中执行的任务进行分类的过程220的流程图。如图5b所示,过程220可以包括在阶段222从个体服务器、存储设备或计算系统的其他合适组件收集利用数据。例如,在一个实施例中,利用数据可以包括单个服务器上的各种虚拟机的cpu利用水平。在另一示例中,利用数据可以包括被托管在服务器上的各种虚拟机的虚拟存储使用。在其他示例中,利用数据可以包括反映存储器、网络带宽或计算系统中的其他合适资源的使用的其他合适的数据。

然后,过程220可以包括在阶段224分析所收集的利用数据。在某些实施例中,分析所收集的利用数据可以包括将时域中的利用数据转换为频域中的频谱。基于频域中的利用数据的频谱简档,可以确定不同的模式。例如,周期性模式涉及在对应频率处大于阈值的一个或多个不同的频谱值。恒定模式涉及通常在所有频率下低于另一阈值的频谱值。随机模式涉及在零频率处或在零频率附近具有最高值的频谱值。下面参考图5c更详细地描述用于分析利用数据的示例操作。

然后,过程220可以包括基于各种确定的模式来指示任务是否是面向用户的。例如,如果确定了周期性模式,则过程220可以指示对应任务是面向用户的,因为用户通常周期性地利用计算资源,例如,在白天期间,而不是在晚上。如果确定了恒定或随机模式,则过程220可以指示任务不是面向用户的,因为不能观察到可辨别的利用模式。

图5c示出了根据所公开的技术的实施例的用于分析利用数据的示例操作。如图5c所示,操作可以包括在阶段232将利用数据从时域转换到频域中的频谱。适合于这种转换的一种技术是计算值序列的离散傅里叶变换的快速傅里叶变换。在其他实施例中,还可以应用拉普拉斯变换或常规傅里叶变换。

操作还可以包括用于确定频谱是否指示周期性模式的决策阶段234。在一个实施例中,当对应频率处的一个或多个不同频谱值大于阈值时,频谱指示周期性模式,如图6b所示。在其他实施例中,可以基于频谱值的分布或其他合适的技术对频谱进行分类。响应于确定频谱指示周期性模式,操作可以包括在阶段236指示任务是面向用户的。响应于确定频谱不指示周期性模式,操作可以包括在阶段238指示任务是非面向用户的。下面参考图6a-9更详细地描述确定利用数据的时间简档的另外的示例操作。

图6a示出了时域中的示例利用数据图,并且图6b示出了被转换为示例周期性模式的频域的相同利用数据。如图6a所示,利用数据示出了从一天到另一天的重复模式。如图6b所示,频谱包括大于周期性阈值(例如,设置为0.5)的一个或多个频谱值(例如,约3.5和1.4)。在一个实施例中,可以将周期性阈值设置为作为所有频谱值的平均值(或其倍数)的频谱值。在其他实施例中,可以将周期性阈值设置为中等值、合适的百分位值(例如,在第75百分位数)或其他合适的值。

图7a示出了时域中的示例利用数据图,并且图7b示出了被转换为示例恒定模式的频域的相同利用数据。如图7a所示,利用数据具有通常恒定的趋势,其中相对于时间的变化很小。如图7b所示,对于所有频率,频谱的频谱值在0.000到约0.025之间都低于恒定阈值(例如,0.030)。可以将恒定阈值设置为具有显著低于周期性模式的预期频谱值的值。例如,在图6b所示的示例中,恒定阈值可以设定为例如0.05,这明显低于3.5和1.5的频谱值。在其他实施例中,恒定阈值可以以其他合适的方式设置。

图8a示出了时域中的示例利用数据图,并且图8b示出了被转换为示例随机模式的频域的相同利用数据。如图8a所示,利用数据可以具有根据时间的不规则重复模式。如图8b所示,频谱可以在零频率处或在零频率附近具有最高频谱值(例如,2.5)。

图9是示出用于确定利用数据的时间模式的示例过程240的流程图。如图9所示,过程240可以包括最初确定利用数据的频谱是否具有低于恒定阈值的所有频谱值,例如,图7b中的阈值0.03。如果所有频谱值都低于恒定阈值,则过程240可以在阶段245指示利用数据具有恒定模式。否则,过程240继续进行以将频谱值与周期性阈值进行比较,例如,阈值0.5,如图6b所示。响应于确定频谱值大于周期性阈值,过程240可以前进到用于确定与高于周期性阈值的频谱值相对应的频率是否在频率范围内(例如,每个月从约31到约93个周期)的另一决策阶段。该范围旨在确定周期性是否可能是由于用户交互。例如,在一周内示出7个周期的模式可能是用户交互的结果,而示出1000个周期的模式则不是。响应于确定与高于周期性阈值的频谱值相对应的频率在频率范围内,过程240可以包括在阶段254指示利用数据具有周期性模式。响应于确定与高于周期性阈值的频谱值相对应的频率不在频率范围内或者响应于确定频谱值不大于周期性阈值,过程240可以继续进行以在阶段256指示利用数据具有随机模式。

图10是适合于图1中的计算系统100的某些组件的计算设备300。例如,计算设备300可以适用于图1的主机106或云控制器126。在非常基本的配置302中,计算设备300可以包括一个或多个处理器304和系统存储器306。存储器总线308可以用于处理器304与系统存储器306之间的通信。

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

根据期望的配置,系统存储器306可以是任何类型,包括但不限于易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或其任何组合。系统存储器306可以包括操作系统320、一个或多个应用322和程序数据324。如图8所示,操作系统320可以包括用于管理一个或多个虚拟机144的管理程序140。该描述的基本配置302在图8中由内部虚线内的那些组件示出。

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

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

计算设备300还可以包括接口总线340以用于支持经由总线/接口控制器330从各种接口设备(例如,输出设备342、外围接口344和通信设备346)到基本配置302的通信。示例输出设备342包括可以被配置为经由一个或多个a/v端口352与诸如显示器或扬声器等各种外部设备通信的图形处理单元348和音频处理单元350。示例外围接口344包括可以被配置为经由一个或多个i/o端口358与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如,打印机、扫描仪等)等外部设备通信的串行接口控制器354或并行接口控制器356。示例通信设备346包括可以被布置为支持经由一个或多个通信端口364通过网络通信链路与一个或多个其他计算设备362的通信的网络控制器360。

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

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

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

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