CN108694068A - 用于虚拟环境中的方法和系统 - Google Patents
用于虚拟环境中的方法和系统 Download PDFInfo
- Publication number
- CN108694068A CN108694068A CN201711497775.4A CN201711497775A CN108694068A CN 108694068 A CN108694068 A CN 108694068A CN 201711497775 A CN201711497775 A CN 201711497775A CN 108694068 A CN108694068 A CN 108694068A
- Authority
- CN
- China
- Prior art keywords
- resource
- virtual
- strategy
- measurement
- virtual machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及用于虚拟环境中的方法和系统,具体地,本公开的各方面涉及监视共享资源的使用,以可能影响其他进程的性能的方式来识别使用这种共享资源的过程。在一个示例中,一种方法包括:由计算装置监视用于由所述计算装置的一个或多个处理器共享的共享高速缓存的使用度量;将所述使用度量映射到在所述一个或多个处理器上执行的多个虚拟计算环境中的每一个,其中,所述多个虚拟计算环境包括第一虚拟计算环境以及第二虚拟计算环境;基于所映射的使用度量,来确定所述第一虚拟计算环境正在以不利地影响所述第二虚拟计算环境的性能的方式使用所述共享高速缓存;并且由计算装置限制第一虚拟计算环境对共享高速缓存的访问。
Description
本申请要求于2017年3月29日提交的美国临时申请No.62/478,515的权益,其全部内容通过引用结合于此。
技术领域
本公开涉及可视化、监视和改善云数据中心和网络的性能。
背景技术
虚拟数据中心正在成为现代信息技术(IT)基础设施的核心基础。特别地,现代数据中心已经广泛地使用了虚拟化环境,其中,虚拟主机(例如,虚拟机或容器)在物理计算装置的底层计算平台上部署并执行。
具有大规模数据中心的虚拟化可以提供若干优点。一个优点是虚拟化可以显著提高效率。由于随着每个物理CPU具有大量内核的多核微处理器架构的出现,底层物理计算装置(即,服务器)变得越来越强大,所以虚拟化变得更简单并且更高效。第二个优点是虚拟化提供了对基础设施的重要控制。随着物理计算资源成为可替代资源,例如,在基于云的计算环境中,计算基础设施的供应和管理变得更加容易。因此,除了虚拟化提供的效率和增加的投资回报(ROI)之外,企业IT人员由于其管理优势而通常更喜欢数据中心中的虚拟化计算集群。
发明内容
本公开描述了用于诸如在数据中心内部署的虚拟化基础设施等计算环境的监视、调度和性能管理的技术。这些技术提供操作性能和基础设施资源的可视性。如本文所述,这些技术可以利用分布式架构中的分析和机器学习来提供近似或似乎近实时的和历史的监视、性能可视性和动态优化,以改善计算环境内的协调、安全性、计费和计划。这些技术可以在例如混合、专用或公共企业云环境内提供优势。这些技术适用于各种虚拟化机制,例如,容器和虚拟机,以支持多租户、动态和不断发展的企业云。
本公开的各方面涉及监视共享资源的使用,以可能影响其他进程的性能的方式来识别使用这种共享资源的过程。在一些示例中,在计算装置或服务器上执行的代理可以监视计算装置或服务器的内部处理器度量。这种处理器度量可涉及与服务器的多个处理器核心和/或在处理器核心上执行的多个应用程序所使用的共享资源(例如,L3高速缓存或共享存储器总线)有关的信息。使用这种度量,代理可以确定特定应用程序或虚拟计算环境(例如,虚拟机或容器)正在以可能影响在同一服务器上执行的其他进程的操作的方式使用共享资源。在一些示例中,代理可以用来限制违规应用程序或虚拟计算环境对共享资源的使用。在其他示例中,可以监督多个服务器的策略引擎可以用来限制对共享资源的使用。
此外,在一些示例中,可以分析关于一个或多个应用程序或虚拟计算环境如何使用共享资源的信息。基于这些信息,应用程序或虚拟计算环境可以基于共享资源使用特征来分类。这些分类可用于更高效地在多个物理服务器装置上分配应用程序和/或虚拟计算环境。
在一个示例中,本公开描述了一种方法,该方法包括:由策略控制器生成在数据中心内应用的策略;由所述策略控制器将策略分配给在数据中心内包括的计算装置上执行的策略代理,其中,所述计算装置包括具有多个处理器核心的处理电路;监视与由所述多个处理器核心共享的资源有关的使用度量;将所述使用度量映射到在处理电路上执行的多个虚拟计算环境,其中,所述多个虚拟计算环境包括第一虚拟计算环境和第二虚拟计算环境;基于映射的使用度量和策略,确定第一虚拟计算环境正在以不利地影响第二虚拟计算环境的性能的方式使用资源;并且响应于确定,限制第一虚拟计算环境对资源的访问。
在另一示例中,本公开描述了一种系统,该系统包括:策略控制器,其被配置为生成在数据中心内应用的策略;以及包括处理电路和一个或多个存储装置的计算系统,其中,所述处理电路包括多个处理器核心,并且其中,所述一个或多个存储装置存储指令,在被执行时,所述指令将所述处理电路配置为:从策略控制器接收策略;监视与由所述多个处理器核心共享的资源有关的使用度量;将所述使用度量映射到在所述处理电路上执行的多个虚拟计算环境,其中,所述多个虚拟计算环境包括第一虚拟计算环境和第二虚拟计算环境;基于映射的使用度量和策略,确定第一虚拟计算环境正在以不利地影响第二虚拟计算环境的性能的方式使用资源;并且响应于确定,限制第一虚拟计算环境对资源的访问。
在另一示例中,本公开描述了一种包含指令的计算机可读存储介质,在被执行时,所述指令将计算系统的处理电路配置为:从策略控制器接收策略;监视与由所述处理电路内包括的多个处理器核心共享的资源相关的使用度量;将所述使用度量映射到在所述处理电路上执行的多个虚拟计算环境中的每一个,其中,所述多个虚拟计算环境包括第一虚拟计算环境和第二虚拟计算环境;基于映射的使用度量和策略,确定第一虚拟计算环境正在以不利地影响第二虚拟计算环境的性能的方式使用资源;并且由计算装置限制第一虚拟计算环境对资源的访问。
在附图和下面的描述中阐述了本公开的一个或多个示例的细节。本公开的其他特征、目的和优点将从说明书和附图以及权利要求中显而易见。
附图说明
图1是示出根据本公开的一个或多个方面的包括示例数据中心的示例网络的概念图,在该示例数据中心中,监视与由多个进程共享的资源有关的内部处理器度量;
图2是根据本公开的一个或多个方面的更详细地示出图1的示例数据中心的一部分的方框图,并且其中,监视与在示例服务器上执行的多个进程共享的资源有关的内部处理器度量;
图3A和图3B是示出根据本公开的一个或多个方面的由示例用户接口装置呈现的示例用户接口的概念图;
图4是示出根据本公开的一个或多个方面的由示例服务器执行的操作的流程图。
具体实施方式
图1是示出根据本公开的一个或多个方面的示例网络105的概念图,该示例网络包括监视用于基于云的计算环境的基础设施元素的性能和使用度量的示例数据中心110并且可选地包括与由多个进程共享的资源有关的内部处理器度量。图1示出了网络105和托管一个或多个基于云的计算网络、计算域或项目(在本文中统称为云计算集群)的数据中心110的一个示例实现方式。基于云的计算集群可以共同位于诸如单个数据中心等共同的总体计算环境中或者在环境上(例如,在不同数据中心上)分布。基于云的计算集群可以例如是不同的云环境,例如,OpenStack云环境、Kubernetes云环境或其他计算集群、域、网络等的各种组合。网络105和数据中心110的其他实现方式在其他情况下可能是合适的。这种实现方式可以包括图1的示例中包括的部件的子集和/或可以包括未在图1中示出的额外部件。
在图1的示例中,数据中心110为由服务提供商网络106耦合到数据中心110的客户104提供应用程序和服务的操作环境。虽然结合图1的网络105描述的功能和操作可以被示为分布在图1中的多个装置上,但是在其他示例中,归因于图1中的一个或多个装置的特征和技术可以由一个或多个这种装置的本地部件在内部执行。类似地,这种装置中的一个或多个可以包括某些部件并且执行可能在本文的描述中被归因于一个或多个其他装置的各种技术。此外,可以结合图1来描述某些操作、技术、特征和/或功能或以其他方式由特定部件、装置和/或模块执行。在其他示例中,这种操作、技术、特征和/或功能可以由其他部件、装置或模块执行。因此,归因于一个或多个部件、装置或模块的一些操作、技术、特征和/或功能可归因于其他部件、装置和/或模块,即使在本文没有以这种方式特别描述。
数据中心110托管诸如联网和存储系统、冗余电源和环境控制等基础设施设备。服务提供商网络106可以耦合到由其他提供商管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施(例如,互联网)的一部分。
在一些示例中,数据中心110可以表示许多地理上分布的网络数据中心中的一个。如图1的示例所示,数据中心110是为客户104提供网络服务的设施。客户104可以是诸如企业和政府或个人等集体实体。例如,网络数据中心可以为几个企业和最终用户托管网络服务。其他示例性服务可以包括数据存储、虚拟专用网络、流量工程、文件服务、数据挖掘、科学或超级计算等。在一些示例中,数据中心110是单独的网络服务器、网络对等或其他方面。
在图1的示例中,数据中心110包括一组存储系统和应用服务器,包括经由由物理网络交换机和路由器的一层或多层提供的高速交换机结构121互连的服务器126A到服务器126N(统称为“服务器126”)。服务器126用作数据中心的物理计算节点。例如,每个服务器126可以提供用于执行一个或多个客户特定虚拟机148(图1中的“VM”)或其他虚拟化实例(例如,容器)的操作环境。服务器126中的每一个可以可替代地称为主机计算装置,或者更简单地称为主机。服务器126可以执行一个或多个虚拟化实例,例如,虚拟机、容器或用于运行一个或多个服务的其他虚拟执行环境,例如,虚拟化网络功能(VNF)。
尽管未示出,但是交换机结构121可以包括耦合到机架交换机的分布层的架顶式(TOR)交换机,并且数据中心110可以包括一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙、入侵检测和/或入侵防御装置等安全装置、服务器、计算机终端、膝上型计算机、打印机、数据库、诸如蜂窝电话或个人数字助理等无线移动装置、无线接入点、桥接器、电缆调制解调器、应用加速器其他网络装置。交换机结构121可以执行层3路由,以由服务提供商网络106在数据中心110与客户104之间路由网络业务。网关108用于在交换机结构121和服务提供商网络106之间转发和接收报文。
根据本公开的一个或多个示例,软件定义网络(“SDN”)控制器132在逻辑上并且在一些情况下在物理上提供集中式控制器,用于促进在数据中心110内的一个或多个虚拟网络的操作。术语SDN控制器和虚拟网络控制器(“VNC”)在本公开中可以互换使用。在一些示例中,SDN控制器132响应于通过北向API131从编配引擎130接收到的配置输入进行操作,所述北向API131又响应于从与用户接口装置129交互和/或操作用户接口装置129的管理员128接收到的配置输入进行操作。在2013年6月5日提交的题为“PHYSICAL PATHDETERMINATION FOR VIRTUAL NETWORK PACKET FLOWS”的国际申请号PCT/US2013/044378中,发现关于与数据中心110或其他软件定义网络的其他装置一起操作的SDN控制器132的额外信息,其通过引用结合于此,如同在本文完全阐述。
用户接口装置129可以被实现为用于交互呈现输出和/或接受用户输入的任何合适的装置。例如,用户接口装置129可以包括显示器。用户接口装置129可以是计算系统,例如,由用户和/或由管理员128操作的移动或非移动计算装置。根据本公开的一个或多个方面,用户接口装置129可以例如表示工作站、膝上型计算机或笔记本计算机、台式计算机、平板计算机或可以由用户操作和/或呈现用户接口的任何其他计算装置。在一些示例中,用户接口装置129可以物理上分离于与策略控制器201不同的位置和/或处于与策略控制器201不同的位置。在这种示例中,用户接口装置129可以通过网络或其他通信手段与策略控制器201通信。在其他示例中,用户接口装置129可以是策略控制器201的本地外围装置,或者可以集成到策略控制器201中。
在一些示例中,编配引擎130管理数据中心110的功能,例如,计算、存储、联网和应用程序资源。例如,编配引擎130可以为数据中心110内的租户或数据中心上的租户创建虚拟网络。编配引擎130可以将虚拟机(VM)连接到租户的虚拟网络。编配引擎130可以将租户的虚拟网络连接到外部网络,例如,互联网或VPN。编配引擎130可以在一组VM上或者向租户的网络的边界实施安全策略。编配引擎130可以在租户的虚拟网络中部署网络服务(例如,负载均衡器)。
在一些示例中,SDN控制器132管理网络和联网服务,例如,负载平衡、安全性,并且经由南向API133从服务器126向各种应用程序分配资源。即,南向API133表示SDN控制器132用于使网络的实际状态等于由编配引擎130指定的期望状态的一组通信协议。例如,SDN控制器132通过配置物理交换机来实现来自编配引擎130的高级请求,例如,TOR交换机、机架交换机和交换机结构121;物理路由器;物理服务节点,例如,防火墙和负载均衡器;以及VM中的虚拟防火墙等虚拟服务。SDN控制器132在状态数据库内维护路由、联网和配置信息。
通常,任何两个网络装置之间(例如,交换机结构121内的网络装置(未示出)之间或者服务器126与客户104之间或服务器126之间)的业务可以使用许多不同的路径穿越物理网络。例如,两个网络装置之间可能有几个不同的等价路径。在一些情况下,属于从一个网络装置到另一网络装置的网络流量的报文可以在每个网络交换节点处使用称为多路径路由的路由策略分布在各种可能的路径中。例如,互联网工程任务组(IETF)RFC 2992“Analysis of an Equal-Cost Multi-Path Algorithm”描述了用于沿着等价的多条路径路由报文的路由技术。RFC 2992的技术分析了一个特定的多路径路由策略,该策略涉及通过对报文报头字段进行散列而将流量分配给储存箱(bin),这些字段通过单个确定性路径发送来自特定网络流的所有报文。
例如,可以由在报文的报头或“五元组”中使用的五个值来定义“流”,即,用于通过物理网络路由报文的协议、源IP地址、目的地IP地址、源端口和目的地端口。例如,协议指定通信协议,例如,TCP或UDP,源端口和目标端口指的是连接的源端口和目的端口。与特定流条目匹配的一个或多个报文数据单元(PDU)构成的组表示流。可以使用PDU的任何参数来将流宽泛地分类,例如,源和目的地数据链路(例如,MAC)和网络(例如,IP)地址、虚拟局域网(VLAN)标签、传输层信息、多协议标签交换(MPLS)或通用MPLS(GMPLS)标签以及接收该流的网络装置的入口端口。例如,流可以是在传输控制协议(TCP)连接中传输的所有PDU、由特定MAC地址或IP地址获得的所有PDU、具有相同VLAN标签的所有PDU或者在相同交换机端口接收的所有PDU。
虚拟路由器142(虚拟路由器142A到虚拟路由器142N,在图1中统称为“虚拟路由器142”)为数据中心110内的相应虚拟网络执行多个路由实例,并将报文路由到在由服务器126提供的操作环境内执行的适当虚拟机。每个服务器126可以包括虚拟路由器。服务器126A的虚拟路由器142A例如从底层物理网络结构接收到的报文可以包括外部报头,以允许物理网络结构将有效载荷或“内部报文”隧穿到服务器126A的网络接口的物理网络地址。外部报头不仅可以包括服务器的网络接口的物理网络地址,而且可以包括虚拟网络标识符,例如,识别一个虚拟网络以及虚拟路由器执行的对应路由实例的VxLAN标签或多协议标签交换(MPLS)标签。内部报文包括具有目标网络地址的内部报头,该目标网络地址符合由虚拟网络标识符识别的虚拟网络的虚拟网络地址空间。
在一些方面,虚拟路由器在传送到用于报文的适当路由实例之前,缓冲并聚合从底层物理网络结构接收的多个隧道化报文。即,在一个服务器126上执行的虚拟路由器可以从交换机结构121内的一个或多个TOR交换机接收报文流的入站隧道报文,并且在将隧道报文路由到本地执行的虚拟机之前,处理隧道报文,以构建单个聚合的隧道报文,用于转发给虚拟机。即,虚拟路由器可以缓冲多个入站隧道报文,并构建单个隧道报文,其中,将多个隧道报文的有效载荷组合成单个有效载荷,并且移除并用单个报头虚拟网络标识符代替隧道报文上的外部/覆盖报头。以这种方式,聚合隧道报文可以由虚拟路由器转发到虚拟机,就好像从虚拟网络接收到单个入站隧道报文一样。而且,为了执行聚合操作,虚拟路由器可以利用基于内核的卸载引擎,其无缝且自动地引导隧道报文的聚合。在标题为“PACKETSEGMENTATION OFFLOAD FOR VIRTUAL NETWORKS”的美国专利申请14/228,844中,描述虚拟路由器将业务转发到在服务器126上执行的客户特定虚拟机的进一步示例技术,该申请通过引用结合于此。
在一些示例实现方式中,在服务器126上执行的虚拟路由器142引导在多个处理器核心之间接收的入站隧道报文,以在处理该报文用于路由到一个或多个虚拟和/或物理机器时,促进核心之间的报文处理负载平衡。作为一个示例,服务器126A包括多个网络接口卡和多个处理器核心,以执行虚拟路由器142A,并且引导在多个处理器核心之间接收的报文,以促进内核之间的报文处理负载平衡。例如,服务器126A的特定网络接口卡可以与网络接口卡将所有接收到的报文引导到的指定处理器核心相关联。根据应用于内部和外部报文报头中的至少一个的散列函数,各种处理器核心不处理每个接收到的报文,而是将流卸载到一个或多个其他处理器核心,用于进行处理,以利用其他处理器核心的可用工作周期。
在图1的示例中,数据中心110还包括为数据中心110提供监视、调度和性能管理的策略控制器201。策略控制器201与部署在至少一些相应物理服务器216内的监视代理205交互,用于监视物理计算节点以及在物理主机上执行的任何虚拟化主机(例如,VM148)的资源使用。以这种方式,监视代理205提供分布式机制,用于收集各种各样的使用度量并且用于本地执行策略控制器201安装的策略。在示例实现方式中,监视代理205在提供计算资源来执行应用程序工作负载的数据中心110的基础设施的最低级别的“计算节点”上运行。计算节点可以例如是服务器126的裸机主机、虚拟机148、容器等。
策略控制器201从监视代理205获得使用度量并构建仪表板203(例如,一组用户接口),以提供对数据中心110的操作性能和基础设施资源的可视性。策略控制器201可以例如将仪表板203传送到UI装置129,用于向管理员128显示。另外,策略控制器201可以将分析和机器学习应用于所收集的度量,以提供近似或似乎近实时和历史的监视、性能可视性和动态优化,以改善数据中心110内的协调、安全性、计费和计划。
如图1的示例所示,策略控制器201可以将规则库定义和维护为一组策略202。策略控制器201可以基于策略控制器201的这组策略202来管理每个服务器126的控制。可以响应于管理员128的输入或响应于策略控制器201执行的操作,创建或导出策略202。策略控制器201可以例如随时间观察数据中心110的操作,并应用机器学习技术来生成一个或多个策略202。当进行关于数据中心110的进一步观察时,策略控制器201可以周期性地、偶尔地或者连续地改进策略202。
策略控制器201(例如,策略控制器201内的分析引擎)可以确定在一个或多个服务器126处如何部署、实施和/或触发策略。例如,策略控制器201可以被配置为将一个或多个策略202推送给在服务器126上执行的一个或多个策略代理205。策略控制器201可从一个或多个策略代理205接收关于内部处理器度量的信息,并确定是否满足一个或多个度量的规则的条件。策略控制器201可以分析从策略代理205接收到的内部处理器度量,并且基于该分析来指示或促使一个或多个策略代理205执行一个或多个动作,以修改与策略代理相关联的服务器的操作。
在一些示例中,策略控制器201可以被配置为确定和/或识别在每个服务器126上执行的虚拟机、容器、服务和/或应用程序的形式的元素。如本文所使用的,资源通常指虚拟化基础设施的可消耗部件,即,由基础设施使用的部件,例如,CPU、内存、磁盘、磁盘I/O、网络I/O、虚拟CPU和Contrail虚拟路由器(Contrail vrouter)。资源可具有一个或多个特征,每个特征与由策略代理205(和/或策略控制器201)分析并可选地报告的度量相关联。下面参考图2来描述用于资源的示例原始度量的列表。
通常,在本文也称为元素的基础设施元素是包括或消耗可消耗资源以便操作的基础设施的部件。示例元素包括主机、物理或虚拟网络装置、实例(例如,虚拟机、容器或其他虚拟操作环境实例)、聚合、项目和服务。在某些情况下,元素可能是另一元素的资源。虚拟网络装置可以包括例如虚拟路由器和交换机、vRouters、vSwitch、开放虚拟交换机和虚拟隧道转发器(VTF)。度量是一个值,其测量资源量,用于元素消耗的资源的特征。
策略控制器201还可以分析从策略代理205接收的内部处理器度量,并且基于每个虚拟机使用服务器126的共享资源的程度来将一个或多个虚拟机148分类(例如,分类可以是CPU绑定、高速缓存绑定、内存绑定)。策略控制器201可以与编配引擎130交互,以使编制引擎130基于在服务器126上执行的虚拟机148的分类来调整服务器126上的一个或多个虚拟机148的部署。
策略控制器201还可以被配置为将关于是否满足规则的条件的信息报告给与用户接口装置129相关联的客户端接口。可替代地或者另外,策略控制器201还可以被配置为向一个或多个策略代理205和/或协调引擎130报告关于是否满足规则的条件的信息。
策略控制器201可以被实现为任何合适的计算装置或者在任何合适的计算装置内或者在多个计算装置上。策略控制器201或策略控制器201的部件可以被实现为计算装置的一个或多个模块。在一些示例中,策略控制器201可以包括在数据中心110内所包括的一类计算节点(例如,“基础设施节点”)上执行的多个模块。这种节点可以是OpenStack基础设施服务节点或Kubernetes主节点,和/或可以被实现为虚拟机。在一些示例中,策略控制器201可以具有到数据中心110内的一些或所有其他计算节点的网络连接,并且还可以具有到管理数据中心110的其他基础设施服务的网络连接。
一个或多个策略202可以包括促使一个或多个策略代理205监视与服务器126相关联的一个或多个度量的指令。一个或多个策略202可以包括促使一个或多个策略代理205分析与服务器126相关联的一个或多个度量来确定是否满足规则的条件的指令。一个或多个策略202可以可替代地或另外包括用于促使策略代理205向策略控制器201报告一个或多个度量的指令,包括那些度量是否满足与一个或多个策略202相关联的规则的条件。报告的信息可以包括由一个或多个策略202指定或要求的原始数据、概要数据和采样数据。
在一些示例中,仪表板203可以被认为是呈现关于度量、警报、通知、报告的信息以及关于数据中心110的其他信息的用户接口的集合。仪表板203可以包括用户接口装置129可以呈现的一个或多个用户接口。仪表板203可以主要由策略控制器201或在策略控制器201上执行的仪表板模块创建、更新和/或维护。在一些示例中,仪表板203可以主要由在策略控制器201上执行的仪表板模块创建、更新和/或维护。可以通过在具有提供用于在显示器上表现的输出数据的关联数据和/或可执行软件指令的存储器中实例化的软件对象,来共同实现仪表板203和关联的仪表板模块。在整个说明书中,可以参考执行一个或多个功能的仪表板203,并且在这种情况下,仪表板203指仪表板模块以及仪表板用户接口和相关数据的集合。
用户接口装置129可以检测与来自仪表板203的用户接口的交互,作为用户输入(例如,来自管理员128)。响应于用户与仪表板203的交互,策略控制器可以促使对数据中心110或在数据中心110的一个或多个虚拟机148上执行的与网络资源、数据传输限制或成本、存储限制或成本和/或计费报告有关的项目的各方面进行配置。
仪表板203可以包括图形视图,其通过使用直方图的实例来提供资源利用的快速可视概览。这种柱状图的储存箱(bins)可以表示使用给定百分比的资源的实例的数量,例如,CPU利用率。通过使用直方图呈现数据,仪表板203以允许管理员128(如果在用户接口装置129上呈现仪表板203)快速识别指示供应不足或供应过度的实例的模式的方式呈现信息。在一些示例中,仪表板203可以突出显示特定项目或主机上的实例的资源利用率或所有主机或项目上的总资源利用率,使得管理员128可以理解整个基础设施的环境中的资源利用率。
仪表板203可以包括与计算、网络和/或存储资源的使用成本以及项目引起的成本有关的信息。仪表板203还可以呈现关于数据中心110内的一个或多个虚拟机148或其他资源的健康和风险的信息。在一些示例中,“健康”可以对应于反映一个或多个虚拟机148的当前状态的指标。例如,显示健康问题的示例虚拟机可能当前正在用户指定的性能策略之外运行。“风险”可以对应于反映一个或多个虚拟机148的预测的未来状态的指标,使得显示风险问题的示例虚拟机在未来可能是不健康的。健康和风险指标可以基于与那些度量对应的监视度量和/或警报来确定。例如,如果策略代理205没有从主机接收心跳,则策略代理205可以将该主机及其所有实例表征为不健康的。策略控制器201可以更新仪表板203以反映相关主机的健康,并且可以指示不健康状态的原因是一个或多个“错过的心跳”。
仪表板203可以包括呈现关于网络、虚拟化基础设施、集群或其他计算环境的利用率的信息的用户接口。在一些示例中,用于一个或多个基础设施元素的利用率信息可以呈现为对应于该基础设施元素的度量值的颜色和/或范围指标。范围指标可以在包括热图的用户接口中使用,其中,对于一个或多个利用率度量,以与经历低利用率的基础设施元素在视觉上不同的方式,呈现经历高利用率的基础设施元素(例如,红色用于高利用率,绿色用于低利用率)。这种用户接口可以实现基础设施元素的分层视图(例如,父/子关系和/或网络拓扑),并且可以实现关于利用率度量的基础设施元素的过滤。
一个或多个策略代理205可以在一个或多个服务器126上执行,以监视与服务器126和/或在服务器126上执行的虚拟机148相关联的一些或全部性能度量。策略代理205可以分析监视的信息和/或度量,并生成与服务器126和/或在这种服务器126上执行的一个或多个虚拟机148的操作状态相关联的操作信息和/或智能。策略代理205可以与在一个或多个服务器126上操作的内核交互,以确定、提取或接收与在服务器126处执行的一个或多个进程和/或虚拟机148使用共享资源相关联的内部处理器度量。策略代理205可以在每个服务器126处本地执行监视和分析。在一些示例中,策略代理205可以以近似和/或似乎近实时的方式执行监视和/或分析。
在图1的示例中,并且根据本公开的一个或多个方面,策略代理205可以监视服务器126。例如,服务器126A的策略代理205A可以与服务器126A的部件、模块或其他元件和/或在服务器126上执行的一个或多个虚拟机148交互。作为这种交互的结果,策略代理205A可以收集关于与服务器126和/或虚拟机148相关联的一个或多个度量的信息。这种度量可以是原始度量,其可以直接基于或直接地从服务器126、虚拟机148和/或数据中心110的其他部件读取;这种度量可以可替代地或另外是SNMP度量和/或基于遥测的度量。在一些示例中,一个或多个这种度量可以是计算的度量,其包括从原始度量中导出的度量。在一些示例中,度量可以对应于与特定资源有关的总容量的百分比,例如,CPU利用率的百分比或CPU消耗或者层3高速缓存使用。然而,度量可以对应于其他类型的测量,例如,一个或多个虚拟机148读取和写入存储器的频率。
策略控制器201可以将策略代理205配置成监视触发警报的条件。例如,策略控制器201可以检测策略控制器201确定的来自用户接口装置129的输入对应于用户输入。策略控制器201还可以确定用户输入对应于足以配置基于用于一个或多个度量的值的用户指定警报的信息。策略控制器201可以处理输入并且生成实现警报设置的一个或者多个策略202。在一些示例中,这种策略202可以被配置为使得当由服务器126处由策略代理205收集的一个或多个度量的值超过特定阈值时触发警报。策略控制器201可以将关于所生成的策略202的信息传送给在服务器126上执行的一个或多个策略代理205。策略代理205可以监视服务器126警报所基于的条件,如从策略控制器201接收的策略202所指定的。
例如,策略代理205A可以监视服务器126A处的一个或多个度量。这种度量可以涉及服务器126A、在服务器126A上执行的所有虚拟机148和/或虚拟机148的特定实例。策略代理205A可基于监视的度量来确定一个或多个值超过由从策略控制器201接收的一个或多个策略202设置的阈值。例如,策略代理205A可以确定CPU使用是否超过由策略设置的阈值(例如,服务器126A的CPU使用率>50%)。在其他示例中,策略代理205A可以评估一个或多个度量是否小于阈值(例如,如果服务器126A的可用磁盘空间<20%,则发出警报)或者等于阈值(例如,如果虚拟机148的实例数量等于20,则发出警报)。如果策略代理205A确定所监视的度量触发阈值,则策略代理205A可以发出警报条件并将关于该警报的信息传送给策略控制器201。策略控制器201和/或策略代理205A可以对警报起作用,例如,通过生成通知。策略控制器201可以更新仪表板203,以包括通知。策略控制器201可以促使在用户接口装置129处呈现更新的仪表板203,从而通知管理员128警报条件。
在一些示例中,策略控制器201可以生成策略并建立警报条件,而无需用户输入。例如,策略控制器201可以将分析和机器学习应用到由策略代理205收集的度量。策略控制器201可以分析由策略代理205在各个时间段收集的度量。策略控制器201可以基于这种分析来确定足以为一个或多个度量配置警报的信息。策略控制器201可以处理该信息并生成实现警报设置的一个或多个策略202。策略控制器201可以将关于策略的信息传送给在服务器126上执行的一个或多个策略代理205。每个策略代理205随后可以监视条件并且响应于根据在没有用户输入的情况下产生的相应策略202触发警报的条件。
在一些示例中,策略控制器201生成数据中心110的元素的简档213。简档与元素或元素组相关联,并且是要针对警报的相应度量评估的警报的集合,以确定关联元素或元素组是“活动的”还是“不活动的”。
例如,策略控制器201响应于经由UI装置129接收到的输入,可以为相应主机、实例(例如,VM148)、网络装置、其组及其资源(例如,CPU、内存、磁盘、网络接口等)生成简档213。此外,用户或管理员将数据中心110的元素配置为一个或多个元素组的成员,使得元素和组具有“成员”关系。作为示例,OpenStack主机(例如,服务器126中的任何一个)可以是一个或多个“主机聚合”的成员,所述主机聚合是一个或多个主机的每个组。Kubernetes容器可以是(1)容器、(2)复制控制器、(3)命名空间和(4)几个不同的服务的成员。虚拟机148A可以被配置为作为一个或多个实例的每个组的一个或多个“实例聚合”的成员。网络装置可以被配置为作为一个或多个网络装置的每个组的一个或多个“网络装置聚合”的成员。在以上每个示例中,用户或代理可以为每个元素和元素组定义简档213。
一般而言,并且如本文中结合图2进一步描述的,本文描述的一些技术利用与在物理处理器内共享的资源有关的某些内部处理器度量,例如,在物理处理器内的核心所消耗的处理器或内存总线带宽内与由在一个或多个核心上执行的软件共享的处理器的内部高速缓存有关的度量。与在物理微处理器内共享的资源相关的这种度量可以提供关于在每个服务器126上执行的虚拟机148(或虚拟机148内的进程)如何争夺或以其他方式使用处理器内部的共享资源的见解。这些信息可以用来查明瓶颈、资源争夺的实例以及其他度量(例如CPU利用率或CPU负载度量)可能不明显的性能问题。在一些示例中,一个或多个虚拟机148在给定服务器上操作和/或使用这种共享资源(例如,共享高速缓存或存储器总线)的方式可能不利地影响该同一服务器上的其他虚拟机148的操作。然而,例如,通过仅监视CPU使用率,可能难以识别哪个特定的虚拟机正在引起其他虚拟机148的性能问题。然而,通过监视每个服务器126的处理器内部的资源的度量,不仅可以识别哪个虚拟机可能引起给定处理器上的其他虚拟机148的性能问题,而且还可以采取步骤来改善执行一个或多个服务器126的处理器的所有虚拟机148的策略控制。如果在数据中心110应用合适的策略控制,则可以总体提高数据中心110的操作、效率和一致性能,并且更有效地遵守服务级别协议和性能保证。
通过监视内部处理器度量以识别包括在处理器内部的硬件核心上执行的软件进程的元素消耗的在服务器的处理器内共享的资源,数据中心110的策略控制器201可以以可能不利地影响在该服务器上执行的其他虚拟机148、容器和/或进程的性能的方式,识别消耗共享资源的虚拟机148、容器和/或进程。通过识别可能不利地影响其他进程的操作的进程,数据中心110的策略控制器201可以采取步骤来解决这些进程如何操作或使用共享资源,结果,改善在任何给定的服务器上执行的虚拟机、容器和/或进程的聚合性能,和/或共同改善所有服务器126的操作。因此,作为识别不利地影响其他进程的操作的进程并采取适当的响应活动的结果,虚拟机148可以更高效地在服务器126上执行计算操作,并且更高效地使用服务器126的共享资源。通过更高效地执行计算操作并且更高效地使用服务器126的共享资源,数据中心110可以更快并且以更少的等待时间执行计算任务。因此,本公开的各方面可以改善服务器126和数据中心110的功能,因为识别和寻址不利地影响其他虚拟机148的操作的任何虚拟机148可能具有使得服务器126和数据中心110能够更快并且以更少的等待时间执行计算任务的作用。
此外,可以触发警报的度量或条件的评估可以在每个服务器126(例如,由策略代理205)本地实现。通过在本地执行这种评估,可以以更高的频率访问与评估相关联的性能度量,这可以允许或者以其他方式促进更快地执行评估。在本地实施评估可以在一些情况下避免将指示与评估相关联的性能度量的信息传输到另一计算装置(例如,策略控制器201),用于进行分析。同样,与传输这种信息有关的等待时间可以完全减轻或者避免,这可以在评估中包括的性能度量的数量增加的场景中导致显著的性能改善。在另一示例中,与在操作条件的评估期间获得的原始数据相比,当发送指示或以其他方式表示警报和/或事件的发生的信息时,从计算装置发送的信息量可以显著减少。在又一示例中,鉴于与等待时间减轻相关的效率增益,可以减少产生警报所花费的时间。
图1中示出的和/或在本公开的其他地方示出或描述的各种部件、功能单元和/或模块(例如,用户接口装置129、编配引擎130、SDN控制器132和策略控制器201、策略代理205)可以执行使用软件、硬件、固件或者位于一个或多个计算装置中和/或在一个或多个计算装置上执行的硬件、软件和固件的混合所描述的操作。例如,计算装置可以用多个处理器或多个装置来执行这些模块中的一个或多个。计算装置可以执行一个或多个这种模块,作为在底层硬件上执行的虚拟机。一个或多个这种模块可以作为操作系统或计算平台的一个或多个服务来执行。一个或多个这种模块可以在计算平台的应用层处作为一个或多个可执行程序执行。在其他示例中,由模块提供的功能可以由专用硬件装置来实现。虽然可以分开示出包括在一个或多个存储装置内的某些模块、数据存储、部件、程序、可执行文件、数据项、功能单元和/或其他项目,但是一个或多个这种项目可以组合并且作为单个模块、部件、程序、可执行文件、数据项或功能单元操作。例如,一个或多个模块或数据存储可以组合或部分组合,使得作为单个模块来操作或提供功能。此外,一个或多个模块可以彼此协同操作,使得例如一个模块充当另一模块的服务或扩展。而且,在存储装置内示出的每个模块、数据存储、部件、程序、可执行文件、数据项、功能单元或其他项目可以包括多个部件、子部件、模块、子模块、数据存储和/或未示出的其它部件或模块或数据存储。此外,在存储装置内示出的每个模块、数据存储、部件、程序、可执行文件、数据项、功能单元或其他项目可以以各种方式来实现。例如,在存储装置内示出的每个模块、数据存储、部件、程序、可执行文件、数据项、功能单元或其他项目可以被实现为在计算装置上执行的操作系统的一部分。
包括在简档213中的警报在触发或‘活动’时确定简档213是否是活动的。另外,元素是其成员的元素组的警报还可以确定元素的简档213是否是活动的。因为元素可以是至少相对于元素重叠的多个组的成员,所以生成简档213并且在一些情况下将简档213分配给策略代理205的策略控制器201可以允许数据中心110的虚拟化基础设施的用户和管理员通过简档213表达通过配置另一组中的元素或组的成员资格来应用于元素或组的警报的组合,而不必手动配置元素或组的总体简档213。此外,这些技术可以通过使用作为组成员的新组元素来评估组的简档213而动态地说明组成员资格的变化,而不必重新配置组的简档213。
策略控制器201可以将简档213分配给在计算装置(例如,服务器126或数据中心110的网络装置)上执行的策略代理205。策略代理205基于在其内包括的一个或多个警报并且基于由策略代理205接收的指示该元素的性能以及至少在元素是组成员的某些情况下指示也是组的成员的一个或多个其他元素的性能的度量,来评估每个接收到的简档213。
图2是根据本公开的一个或多个方面的更详细地示出图1的示例数据中心110的一部分的方框图,并且其中,监视与在示例服务器126上执行的多个进程共享的资源有关的内部处理器度量。在图2中示出用户接口装置129(由管理员128操作)、策略控制器201和服务器126。
策略控制器201可以表示执行根据本公开的一个或多个方面的操作的工具、系统、装置和模块的集合。策略控制器201可以执行云服务优化服务,其可以包括用于软件定义基础设施的高级监视、调度和性能管理,其中,容器和虚拟机(VM)可以具有比传统开发环境中的寿命周期短得多的寿命周期。策略控制器201可以利用分布式架构(例如,数据中心110)中的大数据分析和机器学习。策略控制器201可提供近似或似乎近实时和历史的监视、性能可视性和动态优化。图2的策略控制器201可以以与结合图1提供的策略控制器201的描述一致的方式来实现。策略控制器201可以执行仪表板模块233,其创建、维护和/或更新仪表板203。仪表板203可以包括用户接口,其可以包括分级网络或虚拟化基础设施热图。这种用户接口内的基础设施元素可以用颜色或范围指标来呈现,该颜色或范围指标识别与每个基础设施元素相关联的一个或多个利用率度量可以分类成的值范围。
在图2中,策略控制器201包括策略202和仪表板模块233,如图1所示。策略202和仪表板203也可以以与结合图1提供的策略202和仪表板203的描述一致的方式来实现。在图2中,仪表板203主要由在控制器201上执行的仪表板模块233来创建、更新和/或维护。在一些示例中,如图2所示,策略202可以被实现为数据存储。在这种示例中,策略202可以表示用于存储策略202和/或与策略202相关的信息的任何合适的数据结构或存储介质。策略202可以主要由策略控制引擎211维护,并且策略202可以在一些示例中通过NoSQL数据库来实现。
在图2的示例中,图2的策略控制器201还包括策略控制引擎211、适配器207、消息总线215、报告和通知212、分析引擎214、使用度量数据存储216和数据管理器218。
根据本公开的一个或多个方面,策略控制引擎211可以被配置为控制策略控制器201的一个或多个部件之间的交互。例如,策略控制引擎211可以管理策略202和控制适配器207。策略控制引擎211还可以使分析引擎214基于来自使用度量数据存储216的数据来生成报告和通知212,并且可以将一个或多个报告和通知212传送到用户接口装置129和/或数据中心110的其他系统或部件。
在一个示例中,策略控制引擎211调用一个或多个适配器207来发现平台特定的资源并且与平台特定的资源和/或其他云计算平台交互。例如,一个或多个适配器207可以包括被配置为与在服务器126上操作的OpenStack云操作系统通信的OpenStack适配器。一个或多个适配器207可以包括被配置为与服务器126上的Kubernetes平台通信的Kubernetes适配器。适配器207还可以包括Amazon Web服务适配器、Microsoft Azure适配器和/或Google Compute Engine适配器。这种适配器可以使得策略控制器201能够学习和映射服务器126所利用的基础设施。策略控制器201可以同时使用多个适配器207。
可以经由策略控制器201的一个或多个部件创建、维护和/或更新报告和通知212。在一些示例中,报告和通知212可以包括在仪表板203内呈现的信息,并且可以包括示出基础设施资源随着时间被实例消耗的信息。如下面进一步描述的,通知可以基于警报,并且可以通过仪表板模块233、仪表板203或通过其他手段来呈现通知。
一个或多个报告可以在指定的时间段生成,由不同的范围来组织:项目、主机或部门。在一些示例中,这种报告可以显示处于项目中或在主机上调度的每个实例的资源利用率。仪表板203可以包括以图形或表格形式呈现报告的信息。仪表板203还可以使报告数据能够下载,作为HTML格式的报告、原始的逗号分隔值(CSV)文件或JSON格式的数据,用于进一步分析。
报告和通知212可以包括各种报告,包括项目报告、主机报告和/或部门报告,其中的每一个可以包括在仪表板203内。可以为单个项目或所有项目(只要授权管理员128访问该项目或所有项目)生成项目报告。项目报告可能会显示资源分配、实际使用情况和费用。资源分配可能包括资源的静态分配,例如,vCPU、浮动IP地址和存储体积。可以在仪表板203内为项目中的每个实例显示实际的资源使用,作为项目中所有实例的使用的总和。资源使用可以显示实例消耗的实际物理资源,例如,CPU使用百分比、内存使用百分比、网络I/O和磁盘I/O。可以为项目中的每个实例都显示资源使用收取的费用。另外,可以为项目整体上显示风味(flavor)类型和资源类型(计算、网络、存储)的费用明细。
作为一个示例,策略控制引擎211可以引导分析引擎214为诸如云计算环境等主机集合中的所有主机或主机组生成主机报告。在一些示例中,只有具有管理员角色的用户可以生成主机报告。主机报告可以显示主机的聚合资源使用情况以及主机上调度的每个实例的资源使用情况的明细。主机报告还可以显示主机上每个实例收取的费用以及总费用和每种风味类型的总费用。这提供了主机产生的收入的指示。
作为另一示例,部门报告显示了向部门收取的总费用。在一些示例中,管理员128可以在多个部门之间划分项目费用,并且项目可以托管由多个部门使用的应用程序和服务。在这种示例中,每个部门可能全部或部分负责与一个或多个项目相关的费用。仪表板模块233和/或仪表板203可以通过在仪表板203中呈现的部门报告提供用于在多个部门之间划分项目费用的支持。
在一些示例中,策略控制器201可以配置警报,并且可以在一个或多个服务器126和/或在一个或多个服务器上执行的一个或多个虚拟机148(或容器)满足条件时生成警报通知。策略代理205可以监视服务器126和虚拟机148处的度量,并且分析与应用于那些服务器126和/或虚拟机148的警报条件的度量和/或在每个这种服务器126和/或虚拟机148上运行的实例相对应的原始数据。在一些示例中,警报可以应用于识别要监视条件的元素的类型的指定“范围”。例如,这种元素可以是“主机”、“实例”或“服务”。警报可能适用于一个或多个这种元素。例如,警报可能适用于数据中心110内的所有主机,或者适用于指定主机聚合内的所有主机(即,服务器集群126或虚拟机148、管理程序主机组或池)。
策略代理205可以连续收集主机(例如,服务器126的特定VM 148)及其实例的度量的测量。对于特定警报,策略代理205可以根据用户指定的函数(平均值、标准偏差、最小值、最大值、总和)来聚合样本,并且针对每个用户指定的间隔产生单个测量。策略代理205可以将每个相同和/或测量与阈值进行比较。在一些示例中,由包括警报条件的警报或策略评估的阈值可以是静态阈值或动态阈值。对于静态阈值,策略代理205可以将对应于度量的度量或原始数据与固定值进行比较。例如,策略代理205可以使用用户指定的比较函数(高于、低于、等于)将度量与固定值进行比较。对于动态阈值,策略代理205可以将度量或对应于度量的原始数据与一组资源的历史趋势值或历史基线进行比较。例如,策略代理205可以将度量或其他测量与策略代理205随着时间学习的值进行比较。
在一些示例实现方式中,策略控制器201被配置为应用动态阈值,其基于历史趋势实现资源消耗中的异常值检测。例如,资源消耗可能在一天中的不同时间和一周中的几天显著变化。这可能会使为度量标准设置静态阈值变得困难。例如,周一上午10点到下午12点之间,70%的CPU使用率可能被认为是正常的,但周六晚上9点到10点之间,相同使用量的CPU可能会被认为异常高。利用动态阈值,策略代理205可以学习警报适用的范围内的所有资源上的度量趋势。例如,如果为主机聚合配置了警报,则策略代理205可以从为该聚合中的主机收集的度量值中学习基线。类似地,对于具有针对项目配置的动态阈值的警报,策略代理205可以从针对该项目中的实例收集的度量值中学习基线。然后,当测量偏离在特定时间段内学习的基线值时,策略代理205可以产生警报。具有动态阈值的警报可以通过度量、建立基线的时间段以及灵敏度来配置。策略代理205可以将灵敏度设置应用于偏离基线的测量,并且可以被配置为“高”、“中”或“低”灵敏度。配置有“高”灵敏度的警报可能导致策略代理205向策略控制器201报告比配置有“低”灵敏度的警报更小的偏离基线值。
在一些示例实现方式中,警报可以由其模式来表征,例如,“警报模式”或“事件模式”。当警报被配置为警报时,每当警报的状态改变,策略代理205可以向策略控制器201发送通知或以其他方式通知策略控制器201和/或数据中心110的其他部件。在一些示例中,这种警报最初可以处于“学习”状态,直到策略代理205已经收集足够的数据来评估警报的状况。当满足警报条件时,警报可以是“活动的”,而当不满足条件时,警报“不活动”。
当警报被配置为事件时,策略代理205可以向策略控制器201发送通知或以其他方式通知策略控制器201(和/或数据中心110的其他部件)满足警报的条件的每个间隔。作为示例,考虑60秒的间隔内平均CPU使用率超过90%的警报。如果警报模式是‘警报’,则当在时间T1警报变为‘活动的’时,策略代理205可以向策略控制器201发送通知。当CPU在时间T5下降到90%以下时,策略代理205可以发送警报‘不活动’的通知。如果在‘事件’模式下配置了相同的警报,那么策略代理205可以在CPU负载超过90%的五个间隔中的每一个内向策略控制器201发送通知。
在一些示例中,每个警报可以包括在由策略控制器201维护的策略202内并且应用于数据中心110内的某些资源。警报可以响应于来自用户的输入或者响应于其他设置而应用于特定范围:“主机”、“实例”和“服务”。此外,对于特定范围类型,警报可能适用于该范围类型的资源子集。例如,当警报的范围被配置为“主机”时,警报可能应用于所有主机或属于指定主机聚合的主机。当警报的范围配置为“实例”时,警报可以被配置为用于并应用于一个或多个特定项目。策略控制器201可以为与该范围匹配的任何新资源自动配置警报。例如,策略控制器201可以响应于用户输入来为给定项目(例如,由一个或多个虚拟机148执行)配置具有“实例”范围的警报。随后,当一个或多个服务器126在该项目中创建实例时,策略控制器201可以为新实例配置警报。
因此,在一些示例中,用于警报的基本配置设置可以包括识别警报的名称、范围(报警所应用的资源的类型:“主机”或“实例”)、聚合(警报应用到的资源组)、模式(“警报”或“事件”)、度量(例如,将由策略代理205监视的度量)、聚合函数(例如,策略代理205可以在每个测量间隔期间如何组合样本,示例包括平均值、最大值、最小值、总和和标准偏差函数)、比较函数(例如,如何将测量值与阈值进行比较,例如,测量值高于、低于还是等于阈值)、阈值(与度量测量比较的值)、单位类型(由度量类型确定)以及间隔(以秒或其他单位时间为单位的测量间隔的持续时间)。
警报可以定义应用于被监视的一组元素的策略,例如,项目中的虚拟机。当对于给定元素观察到警报的条件时,会生成通知。用户可以配置警报,以将通知发布到外部HTTP端点。对于每个通知,策略控制器201和/或策略代理205可以将JSON有效载荷发布到端点。有效载荷的模式可以分别由以下表示,其中,“字符串”和0是通用占位符,以指示值的类型;字符串和数字:
在一些示例中,“spec”对象描述了生成该通知的警报配置。在一些示例中,“状态”对象描述用于该特定通知的时间事件信息,例如,观察到条件的时间以及观察到条件的元素。
上面表示的模式对于每个字段可以具有以下值:
严重性:“关键的”、“错误”、“警告”、“信息”、“无”
metricType:参阅度量。
模式:“警报”、“事件”
模块:生成警报的分析模块。“警报”、“健康/风险”、“service_alarms(服务_警报)”中的一个。
状态:警报的状态。对于“警报”模式警报,有效值为“活动”、“不活动”、“学习”。对于“事件”模式警报,状态总是“触发”。
阈值:阈值单位对应于metricType
elementType:实体或元素的类型。“实例”、“主机”、“服务”中的一个。
elementId:实体或元素的UUID
elementDetails:关于实体或元素的补充细节。这个对象的内容取决于elementType。对于“主机”或“服务”,该对象是空的。对于“实例”,对象将包含hostId和projectId。
分析引擎214可以对存储在使用度量数据存储216内的数据执行分析、机器学习和其他功能或与该数据相关。分析引擎214还可以基于这种信息生成报告、通知和警报。例如,分析引擎214可以分析存储在使用度量数据存储216中的信息,并且基于关于内部处理器度量的信息来识别以可能不利地影响在服务器126上执行的其他虚拟机148的操作的方式操作的一个或多个虚拟机148。分析引擎214可以响应于识别以可能不利地影响其他虚拟机148的操作的方式操作的一个或多个虚拟机148,生成一个或多个报告和通知212。分析引擎214可以可替代地或者另外提出警报和/或促使或指示策略代理205采取活动来解决所识别的虚拟机148的操作。分析引擎214还可以分析一个或多个虚拟机148的度量,并基于该分析,根据每个虚拟机148易于消耗的共享资源表征一个或多个虚拟机148。例如,分析引擎214可以将一个或多个虚拟机148表征为CPU绑定、存储器绑定或高速缓存绑定。
使用度量数据存储216可以表示用于存储与由策略代理205收集的度量有关的信息的任何合适的数据结构或存储介质。例如,使用度量数据存储216可以使用NoSQL数据库来实现。存储在使用度量数据存储216中的信息可以是可搜索和/或分类的,使得分析引擎214、数据管理器218或策略控制器201的另一部件或模块可以提供来自使用度量数据存储216的输入请求信息,并且响应于输入,接收存储在使用度量数据存储区216内的信息。使用度量数据存储区216可主要由数据管理器218维护。
在一些示例中,“度量”是基础设施中的资源的测量值。策略代理205可以收集和计算由主机和实例使用的资源的度量。度量可以基于度量的类型组织成分层类别。一些度量是总容量的百分比。在这种情况下,度量的类别决定了计算百分比的总容量。例如,host.cpu.usage指示相对于主机上可用的总CPU消耗的CPU的百分比。相比之下,instance.cpu.usage是相对于实例可用的总CPU消耗的CPU的百分比。作为示例,考虑使用具有20个核心的主机上的一个核心的50%的实例。实例的host.cpu.usage将是2.5%。如果实例已经分配了2个核心,则其instance.cpu.usage将是25%。
可以为任何度量配置警报。也可以在仪表板203内的用户接口中以例如基于图表的形式显示许多度量。当触发度量的警报时,可能会在事件发生时在图表上绘制警报。通过这种方式,可能不会直接作为图表绘制的度量可能与其他度量在时间上依然可视化相关。在以下示例中,主机可以使用一个或多个资源,例如,CPU(“cpu”)和网络(“网络”),每个资源具有一个或多个关联的度量,例如,存储器带宽(“mem_bw”)和使用(“使用”)。类似地,实例可以使用一个或多个资源,例如虚拟CPU(“cpu”)和网络(“网络”),每个资源具有一个或多个相关度量,例如,存储器带宽(“mem_bw”)和使用(“使用”)。实例本身可能是主机或实例聚合的资源,主机本身可能是主机聚合的资源,诸如此类。
在一些示例中,可用于主机的原始度量可以包括:
host.cpu.io_wait
host.cpu.ipc
host.cpu.l3_cache.miss
host.cpu.l3_cache.usage
host.cpu.mem_bw.local
host.cpu.mem_bw.remote**
host.cpu.mem_bw.total**
host.cpu.usage
host.disk.io.read
host.disk.io.write
host.disk.response_time
host.disk.read_response_time
host.disk.write_response_time
host.disk.smart.hdd.command_timeout
host.disk.smart.hdd.current_pending_sector_count
host.disk.smart.hdd.offline_uncorrectable
host.disk.smart.hdd.reallocated_sector_count
host.disk.smart.hdd.reported_uncorrectable_errors
host.disk.smart.ssd.available_reserved_space
host.disk.smart.ssd.media_wearout_indicator
host.disk.smart.ssd.reallocated_sector_count
host.disk.smart.ssd.wear_leveling_count
host.disk.usage.bytes
host.disk.usage.percent
host.memory.usage
host.memory.swap.usage
host.memory.dirty.rate
host.memory.page_fault.rate
host.memory.page_in_out.rate
host.network.egress.bit_rate
host.network.egress.drops
host.network.egress.errors
host.network.egress.packet_rate
host.network.ingress.bit_rate
host.network.ingress.drops
host.network.ingress.errors
host.network.ingress.packet_rate
host.network.ipv4Tables.rule_count
host.network.ipv6Tables.rule_count
openstack.host.disk_allocated
openstack.host.memory_allocated
openstack.host.vcpus_allocated.
在一些示例中,可用于主机的计算度量包括:
host.cpu.normalized_load_1M
host.cpu.normalized_load_5M
host.cpu.normalized_load_15M
host.cpu.temperature
host.disk.smart.predict_failure
host.heartbeat.
例如,host.cpu.normalized_load是标准化负载值,其可以被计算为运行和准备运行的线程的数量与CPU核心的数量的比率。这一系列度量可以指示CPU的需求水平。如果该值超过1,则有比现有CPU核心更多的线程可以运行,以进行执行。可以提供标准化负载,作为1分钟、5分钟和15分钟的间隔的平均值。
度量host.cpu.temperature是可以从处理器和机架中的多个温度传感器导出的CPU温度值。这个温度提供了物理主机内的摄氏温度的一般指标。
度量host.disk.smart.predict_failure是一个或多个策略代理205可以使用磁盘硬件提供的多个S.M.A.R.T计数器来计算的值。当从S.M.A.R.T.的组合确定磁盘可能会发生故障时,策略代理205可以将predict_failure设置为真(值=1)。为此度量触发的警报可能包含元数据中的磁盘标识符。
度量host.heartbeat是可以指示策略代理205是否在主机上运行的值。策略控制器201可以通过向每个策略代理205发出状态请求来周期性地检查每个主机的状态。对于每个成功的响应,host.heartbeat度量递增。警报可以被配置为检测给定时间间隔内错过的心跳。
在一些示例中,以下原始度量可以用于实例:
instance.cpu.usage
instance.cpu.ipc
instance.cpu.l3_cache.miss
instance.cpu.l3_cache.usage
instance.cpu.mem_bw.local
instance.cpu.mem_bw.remote
instance.cpu.mem_bw.total
instance.disk.io.read
instance.disk.io.write
instance.disk.usage
instance.disk.usage.gb
instance.memory.usage
instance.network.egress.bit_rate
instance.network.egress.drops
instance.network.egress.errors
instance.network.egress.packet_rate
instance.network.egress.total_bytes
instance.network.egress.total_packets
instance.network.ingress.bit_rate
instance.network.ingress.drops
instance.network.ingress.errors
instance.network.ingress.packet_rate
instance.network.ingress.total_bytes
instance.network.ingress.total_packets.
在一些示例中,以下计算的度量可用于实例:instance.heartbeat。
在一些示例中,以下原始度量可用于虚拟路由器142:
host.contrail.vrouter.aged_flows
host.contrail.vrouter.total_flows
host.contrail.vrouter.exception_packets
host.contrail.vrouter.drop_stats_flow_queue_limit_exceeded
host.contrail.vrouter.drop_stats_flow_table_full
host.contrail.vrouter.drop_stats_vlan_fwd_enq
host.contrail.vrouter.drop_stats_vlan_fwd_tx
host.contrail.vrouter.flow_export_drops
host.contrail.vrouter.flow_export_sampling_drops
host.contrail.vrouter.flow_rate_active_flows
host.contrail.vrouter.flow_rate_added_flows
host.contrail.vrouter.flow_rate_deleted_flows.
在一些示例中,以下原始度量可用于在仪表板203内包括的OpenStack项目图表视图内:
openstack.project.active_instances
openstack.project.vcpus_allocated
openstack.project.volume_storage_allocated
openstack.project.memory_allocated
openstack.project.floating_ip_count
openstack.project.security_group_count
openstack.project.volume_count.
在一些示例中,以下原始度量可用于在仪表板203内包括的Kubernetes容器图表视图中:pod.memory_allocated,pod.vcpus_allocated。
数据管理器218和消息总线215提供用于与部署在服务器126中的策略代理205进行通信的消息收发机制。数据管理器218例如可以发布消息,以配置和编程策略代理205,并且可以管理度量和从策略代理205接收的其他数据,并将这些数据中的一些或全部存储在使用度量数据存储216内。数据管理器218可以通过消息总线215与策略引擎211通信。策略引擎211可以通过与数据管理器218交互来订阅信息(例如,通过发布/订阅消息模式的度量信息)。在一些情况下,策略引擎211通过将标识符传递给数据管理器218和/或当对数据管理器218所暴露的API进行调用时来订阅信息。作为响应,数据管理器218可以将数据放置在消息总线215上,供数据管理器218和/或其他部件使用。策略引擎211可取消订阅通过与数据管理器218交互(例如,传递标识符和/或进行API取消订阅调用)来通过消息总线215从数据管理器接收数据。
数据管理器218可以例如从一个或多个策略代理205接收原始度量。数据管理器218可以替代地或另外接收由策略代理205对原始度量执行的分析的结果。数据管理器218可以替代地或另外接收与可以用于将一个或多个输入/输出装置248分类的一个或多个输入/输出装置248的使用模式有关的信息。数据管理器218可以存储使用度量数据存储216内的这种信息中的一些或全部。
在图2的示例中,服务器126表示为诸如VM148等虚拟主机提供执行环境的物理计算节点。即,服务器126包括底层物理计算硬件244,其包括一个或多个物理微处理器240、诸如DRAM等存储器249、电源241、一个或多个输入/输出装置248以及一个或多个存储装置250。如图2所示,物理计算硬件244为管理程序210提供执行环境,该管理程序210是提供轻量级内核209并且操作以提供虚拟机148、容器和/或其他类型的虚拟主机的虚拟化操作环境的软件和/或固件层。服务器126可以表示图1中所示的服务器126(例如,服务器126A至服务器126N)中的一个。
在所示的示例中,处理器240是具有用于执行指令的一个或多个内部处理器核心243、一个或多个内部高速缓存或高速缓存装置245、存储器控制器246以及输入/输出控制器247的集成电路。尽管在图2的示例中,服务器126仅被示出为具有一个处理器240,但是在其他示例中,服务器126可以包括多个处理器240,每个处理器可以包括多个处理器核心。
服务器126的装置、模块、存储区域或其他部件中的一个或多个可以互连,以实现部件间通信(物理上、通信上和/或操作上)。例如,核心243可以经由向存储器总线242提供共享接口的存储器控制器246来向存储器249读取数据或向存储器249写入数据。输入/输出控制器247可以通过输入/输出总线251与一个或多个输入/输出装置248和/或一个或多个存储装置250通信。在一些示例中,可以通过包括系统总线、网络连接、进程间通信数据结构或者传送数据或控制信号的任何其他方法的通信信道,来提供这种连接的某些方面。
在处理器240内,每个处理器核心243A-243N(统称为“处理器核心243”)提供独立的执行单元,以执行符合处理器核心的指令集架构的指令。服务器126可以包括任何数量的物理处理器和任意数量的内部处理器核心243。通常,每个处理器核心243被组合为使用单个IC(即,芯片多处理器)的多核处理器(或“多核”处理器)。
在一些情况下,用于计算机可读存储介质的物理地址空间可以在一个或多个处理器核心243(即,共享存储器)之间共享。例如,处理器核心243可经由存储器总线242连接到呈现处理器核心243可访问的物理地址空间的一个或多个DRAM封装、模块和/或芯片(也未展示)。虽然此物理地址空间可以向存储器249的任何部分的处理器核心243提供最低存储器访问时间,但是存储器249的其余部分中的至少一些可以直接被处理器核心243访问。
存储器控制器246可以包括用于使处理器核心243能够通过存储器总线242与存储器249通信的硬件和/或固件。在所示的示例中,存储器控制器246是集成存储器控制器,并且可以在处理器240上物理地实现(例如,作为硬件)。然而,在其他示例中,存储器控制器246可以单独地或以不同的方式来实现,并且可能不集成到处理器240中。
输入/输出控制器247可以包括用于使处理器核心243能够与连接到输入/输出总线251的一个或多个部件通信和/或交互的硬件、软件和/或固件。在所示的示例中,输入/输出控制器247是集成的输入/输出控制器,并且可以在处理器240上物理地实现(例如,作为硬件)。然而,在其他示例中,存储器控制器246也可以单独地和/或以不同的方式实现,并且可能不集成到处理器240中。
高速缓存245表示在处理器核心243之间共享的处理器240内部的存储器资源。在一些示例中,高速缓存245可以包括级别1、级别2或级别3高速缓存或其组合,并且可以提供处理器核心243可访问的任何存储介质的最低等待时间的存储器访问。然而,在本文中描述的大多数示例中,高速缓存245表示级别3高速缓存,与级别1高速缓存和/或级别2高速缓存不同,通常在现代多核处理器芯片中的多个处理器核心之间共享。然而,根据本公开的一个或多个方面,在一些示例中,本文中所描述的技术中的至少一些技术可应用于其他共享资源,包含除级别3高速缓存之外的其他共享内存空间。
电源241向服务器126的一个或多个部件提供电力。电源241通常从数据中心、建筑物或其他位置处的主要交流(AC)电源接收电力。电源241可以在数据中心110内的多个服务器126和/或其他网络装置或基础设施系统之间共享。电源241可以具有智能电力管理或消耗能力,并且这种特征可以由服务器126的一个或多个模块和/或由一个或多个处理器核心243控制、访问或调整,以智能地消耗、分配、供应或以其他方式管理电力。
一个或多个存储装置250可表示计算机可读存储介质,其包括以用于存储信息的任何方法或技术实现的易失性和/或非易失性、可移动和/或不可移动介质,例如,处理器可读指令、数据结构、程序模块或其他数据。计算机可读存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、EEPROM、闪存、CD-ROM、数字多功能光盘(DVD)或其他光存储器、盒式磁带、磁带、磁盘存储器或其他磁性存储装置、或者可以用于存储期望的信息并且可以被处理器核心243访问的任何其他介质。
一个或多个输入/输出装置248可以表示服务器126的任何输入或输出装置。在这种示例中,输入/输出装置248可以产生、接收和/或处理来自能够检测人类或机器的输入的任何类型的装置的输入。例如,一个或多个输入/输出装置248可以以物理、音频、图像和/或视觉输入(例如,键盘、麦克风、相机)的形式生成、接收和/或处理输入。一个或多个输入/输出装置248可以通过能够产生输出的任何类型的装置来产生、呈现和/或处理输出。例如,一个或多个输入/输出装置248可以以触觉、音频、视觉和/或视频输出(例如,触觉响应、声音、闪光灯和/或视频输出)的形式产生、呈现和/或图像)。一些装置可以用作输入装置,一些装置可以用作输出装置,一些装置可以用作输入和输出装置。
存储器249包括一个或多个计算机可读存储介质,其可以包括诸如各种形式的动态RAM(DRAM)(例如,DDR2/DDR3SDRAM)或静态RAM(SRAM)等随机存取存储器(RAM)、闪存、或任何其他形式的固定或可移动存储介质,其可以用于以指令或数据结构的形式携带或存储期望的程序代码和程序数据并且可以由计算机访问。存储器249提供由可寻址存储器位置组成的物理地址空间。存储器249在一些示例中可以向处理器核心243呈现非统一存储器存取(NUMA)架构。即,处理器核心243可能不具有与构成存储器249的各种存储介质相等的存储器访问时间。处理器核心243可以在一些实例中被配置为使用为核心提供较低存储器等待时间的存储器249的部分,以减少总的存储器等待时间。
内核209可以是在内核空间中执行的操作系统内核,并且可以包括例如Linux、Berkeley Software Distribution(BSD)或另一Unix变体内核或Windows服务器操作系统内核,其可以从微软公司购买到。通常,处理器核心243、存储装置(例如,高速缓存245、存储器249和/或存储装置250)和内核209可以存储指令和/或数据,并且可以提供用于执行这种指令的操作环境和/或服务器126的模块。这种模块可以被实现为软件,但是在一些示例中,可以包括硬件、固件和软件的任何组合。处理器核心243、服务器126内的存储装置(例如,高速缓存245、存储器249和/或存储装置250)和内核209的组合可以检索、存储和/或执行一个或者多个应用程序、模块或软件的指令和/或数据。处理器核心243和/或这种存储装置还可以可操作地耦合到一个或多个其他软件和/或硬件部件,包括但不限于服务器126的一个或多个部件和/或被示为连接到服务器126的一个或多个装置或系统。
管理程序210是在硬件平台244上执行以创建和运行一个或多个虚拟机148的操作系统级部件。在图2的示例中,管理程序210可以包含内核209的功能(例如,“类型1管理程序”)。在其他示例中,管理程序210可以在内核209上执行(例如,“类型2管理程序”)。在一些情况下,管理程序210可以被称为虚拟机管理器(VMM)。示例管理程序包括用于Linux内核的基于内核的虚拟机(KVM)、可从VMware购买的Xen、可从微软购买的Windows Hyper-V以及其他开源和专有的管理程序。
在图2的示例中,服务器126包括在管理程序210内执行的虚拟路由器142,并且可以以与结合图1提供的描述一致的方式操作。在图2的示例中,虚拟路由器142可以管理一个或多个虚拟网络,每个虚拟网络可以提供用于在由管理程序210提供的虚拟化平台的顶部执行虚拟机148的网络环境。每个虚拟机148可以与一个虚拟网络相关联。
策略代理205可以作为管理程序210的一部分来执行,或者可以在内核空间内或作为内核209的一部分执行。策略代理205可以监视与服务器126相关联的一些或全部性能度量。根据本文描述的技术,在服务器126的其他度量之中,策略代理205被配置为由在服务器126的多核处理器240内的处理器核心243上执行的每个进程151监视与处理器240内部共享的资源的使用相关的或者描述该使用的度量。在一些示例中,这种内部处理器度量涉及高速缓存245(例如,L3高速缓存)的使用或者在存储器总线242上的带宽使用。策略代理205还能够生成并维护将进程151的处理器度量与一个或多个虚拟机148相关联的映射,例如,通过与进程标识符(PID)或内核209所维护的其他信息相关联。在其他示例中,策略代理205可能能够协助策略控制器201产生和维护这种映射。策略代理205可以在策略控制器201的指导下响应于针对物理处理器240内部共享的资源获得的使用度量和/或进一步基于处理器240外部的资源的其他使用度量来在服务器126处实施一个或多个策略202。
在图2的示例中,虚拟路由器代理136包括在服务器126内。参考图1,虚拟路由器代理136可以包括在每个服务器126内(虽然在图1中未示出)。在图2的示例中,虚拟路由器代理136与SDN控制器132通信,并且响应于此,引导虚拟路由器142,以便控制虚拟网络的覆盖并协调服务器126内的数据报文的路由。通常,虚拟路由器代理136与SDN控制器132通信,该控制器产生命令,以控制通过数据中心110的报文的路由。虚拟路由器代理136可以在用户空间中执行,并且作为虚拟机148和SDN控制器132之间的控制平面消息的代理来操作。例如,虚拟机148A可以经由虚拟路由器代理136请求使用其虚拟地址发送消息,并且虚拟路由器代理136A又可以发送消息并且请求为发起了第一消息的虚拟机的虚拟地址接收到对消息的响应148A。在一些情况下,虚拟机148A可以调用由虚拟路由器代理136的应用编程接口呈现的过程或函数调用,并且虚拟路由器代理136也处理消息的封装,包括寻址。
在一些示例实现方式中,服务器126可以包括与编配引擎130直接通信的编配代理(在图2中未示出)。例如,响应于来自编配引擎130的指令,编配代理传送在各个服务器126中的每一个上执行的特定虚拟机148的属性,并且可以创建或终止各个虚拟机。
虚拟机148A、虚拟机148B到虚拟机148N(统称为“虚拟机148”)可表示虚拟机148的示例性实例。服务器126可将由存储器249提供的和/或由存储装置250提供的虚拟和/或物理地址空间划分到用户空间内,以运行用户进程。服务器126还可以将由存储器249和/或存储装置250提供的虚拟和/或物理地址空间划分成内核空间,内核空间受到保护并且可能不能被用户进程访问。
通常,每个虚拟机148可以是任何类型的软件应用程序,并且可以给每个虚拟机分配用于在相应的虚拟网络内使用的虚拟地址,其中,每个虚拟网络可以是由虚拟路由器142提供的不同的虚拟子网。可以给每个虚拟机148分配其自己的虚拟第三层(L3)IP地址,例如,用于发送和接收通信,但是不知道虚拟机正在其上执行的物理服务器的IP地址。这样,“虚拟地址”是与底层的物理计算机系统(例如,图1的示例中的服务器126A)的逻辑地址不同的应用程序的地址。
每个虚拟机148可以代表运行客户应用程序(例如,网络服务器、数据库服务器、企业应用程序或用于创建服务链的托管虚拟化服务)的租户虚拟机。在一些情况下,服务器126(参见图1)或另一计算装置中的任何一个或多个直接托管客户应用程序,即,不作为虚拟机。本文所引用的虚拟机(例如,虚拟机148)、服务器126或托管客户应用程序的单独的计算装置可以被替代地称为“主机”。此外,尽管在虚拟机或虚拟主机方面描述了本公开的一个或多个方面,但是根据本文关于这种虚拟机或虚拟主机描述的本公开的一个或多个方面的技术也可应用于容器、应用程序、进程或在服务器126上执行的其他执行单元(虚拟化或非虚拟化)。
进程151A、进程151B到进程151N(统称为“进程151”)可以均在一个或多个虚拟机148内执行。例如,一个或多个进程151A可以对应于虚拟机148A,或者可以对应于在虚拟机148A内执行的应用程序或应用程序的线程。类似地,不同的一组进程151B可对应于虚拟机148B,或对应于在虚拟机148B内执行的应用程序或应用程序的线程。在一些示例中,每个进程151可以是由与一个虚拟机148相关联的应用程序控制和/或创建的执行线程或其他执行单元。每个进程151可以与处理器核心243使用的进程标识符相关联,以在报告一个或多个度量(例如,由策略代理205收集的内部处理器度量)时,识别每个进程151。
在操作中,服务器126的管理程序210可以创建共享服务器126的资源的多个进程。例如,管理程序210可以(例如,在编配引擎130的指导下)实例化或启动服务器126上的一个或多个虚拟机148。每个虚拟机148可以执行一个或多个进程151,并且这些软件进程中的每一个可以在服务器126的硬件处理器240内的一个或多个处理器核心243上执行。例如,虚拟机148A可以执行进程151A,虚拟机148B可以执行进程151B,并且虚拟机148N可以执行进程151N。在图2的示例中,进程151A、进程151B和进程151N(统称为“进程151”)全部在相同的物理主机(例如,服务器126)上执行,并且可以在服务器126上执行时共享某些资源。例如,在处理器核心243上执行的进程可以共享存储器总线242、存储器249、输入/输出装置248、存储装置250、高速缓存245、存储器控制器246、输入/输出控制器247和/或其他资源。
内核209(或者实现内核209的管理程序210)可以调度要在处理器核心243上执行的进程。例如,内核209可以调度属于一个或多个虚拟机148的进程151用于在处理器核心243上执行。一个或多个进程151可以在一个或多个处理器核心243上执行,并且内核209可以周期性地抢占一个或多个进程151,来调度另一个进程151。因此,内核209可以周期性地执行上下文切换,以开始或恢复执行一个不同的进程151。内核209可以维护其用来识别要调度执行的下一个进程的队列,并且内核209可以将先前的进程放回到队列中,以供稍后执行。在一些示例中,内核209可以以循环或其他方式调度进程。当队列中的下一个进程开始执行时,该下一个进程可以访问由先前进程使用的共享资源,包括例如高速缓存245、存储器总线242和/或存储器249。
如本文所描述的,每个虚拟机148内的进程151使用在给定的物理处理器240内部共享的资源的方式通常难以检测和管理,并且因此可能导致类似地在相同的物理处理器内执行的一个不同的虚拟机148内的进程151的性能问题。例如,在处理器核心243A上执行的第一进程(例如,虚拟机148A内的一个进程151A)可以执行存储器操作,其导致来自存储器249的数据加载到高速缓存器245中。在该数据加载到高速缓存245中之后,内核209可以执行上下文切换,使得第二进程(例如,一个进程151B)开始在处理器核心243A(或另一个处理器核心243)上执行。该第二进程(虚拟机148B内的一个进程151B)可以执行也导致数据加载到共享高速缓存245中的存储器访问操作。如果第二进程执行占用或消耗大量高速缓存空间的操作,则可能覆盖由第一进程存储在高速缓存中的数据。在由第一进程存储在高速缓存中的数据被第二进程覆盖之后,内核209可以最终执行上下文切换,以恢复第一进程的执行(即,来自进程151A)。该第一进程可以尝试访问将从高速缓存245快速获得的相同数据,但是由于第二进程(即,来自进程151B)执行的操作造成从高速缓存245中清除了该数据,所以第一进程会遇到页面错误和/或高速缓存缺失。处理器240然后将从存储器249重新检索数据,但是访问来自存储器249的数据可能比访问来自高速缓存245的数据慢得多。因此,第一进程的性能可能由于第二进程执行的与高速缓存相关的操作而受到不利影响。换言之,甚至在给虚拟机的给定软件应用程序分配了存储器249的充分共享以及其中的处理器240和/或处理器核心243的CPU时间时,另一软件应用程序对处理器240内部的高速缓存245的利用(并且因此通常不可见)可能导致这两个应用程序的差的和不可预知的性能。同样,本文中描述了技术,通过该技术,策略代理205被配置为询问处理器240,以获得在处理器内部共享的资源(例如,高速缓存245)的度量,并且在处理器外部将不可见。而且,这些技术利用由策略控制器201提供的性能监视和策略实施机制内的内部处理器度量,从而提供对计算环境的改进的细粒度控制。
作为另一示例,一个虚拟机148内的一个或多个进程151使用处理器240内部的其他共享资源的方式也可能导致其他进程的性能问题。例如,在处理器核心243上执行的第一进程(例如,虚拟机148A内的一个进程151A)可以周期性地从存储器249读取和写入存储器249。也在处理器核心243上执行第二进程(例如,虚拟机148B内的一个进程151B)也可以从存储器249读取和写入。同样,第一和第二进程均消耗处理器240内部的存储器总线242可用的带宽的一部分。然而,第二进程可以是高度内存密集型进程,其执行涉及存储器总线242的许多操作。通过执行涉及存储器总线242的许多操作,第二进程可能消耗存储器总线242的很多带宽,使得第一进程从存储器249读取和写入的能力可能受到不利影响。因此,作为涉及共享的存储器总线242的第二进程的操作的结果,第一进程的执行可能受到不利影响。
在刚描述的示例中,这些过程可以在不同的虚拟机中或在相同的虚拟机上执行。然而,出现以下情况:无论设计成分配存储器249和处理器240和/或核心243的公平数量的利用的策略如何,由处理器240内部的软件进程共享的资源的利用可能以某种方式影响虚拟机148A的性能并且相应地由虚拟机148A消耗的计算资源可能以某种方式影响虚拟机148B的性能。从这个意义上讲,虚拟机148A和虚拟机148B必须在同一个服务器126上共存,因此必须在可能被认为是相同的“邻居”内共存。而且,在一个虚拟机148消耗大量的共享资源的情况下,特别是在消费影响其他虚拟机148的情况下,该消耗资源的过程可能被认为破坏邻居,结果,被标记为“吵闹的”邻居。
当在服务器126上执行的一个虚拟机148出现性能问题时,这种问题可能是服务器126上的吵闹的邻居(例如,资源密集的不同虚拟机)的结果。然而,一些典型或常见的用法和/或诸如与处理器核心243相关联的CPU利用率或CPU负载等性能度量可能不能查明或以其他方式识别哪个虚拟机可能被暗示为吵闹的邻居。换言之,在一个虚拟机148正在消耗处理器240内部共享的资源的情况下并且以影响其他虚拟机148的方式,可能在诸如CPU利用率或CPU负载等度量中不反映该消耗。因此,可能需要其他资源度量,以便以可能正在或即将影响其他虚拟机148、容器和/或进程151的性能的方式识别消耗共享资源的任何虚拟机148、容器、服务和/或进程151并对其起作用。
在图2的示例中,并且根据本公开的一个或多个方面,策略代理205监视服务器126的操作,以可能影响其他虚拟机148的操作的方式识别使用服务器126的处理器240内部的共享资源的虚拟机148。例如,策略代理205可以通过在服务器126内的处理器核心243上执行的每个进程151,监视与高速缓存245的使用相关的或者描述该使用的内部处理器度量。策略代理205可以替代地或另外通过在服务器126内的处理器核心243上执行的每个进程151,监视与存储器总线242的存储器带宽的消耗相关的或者描述该消耗的内部处理器度量。策略代理205可以替代地或另外通过在服务器126内的处理器核心243上执行的每个进程151,监视与其他共享资源的消耗相关的或者描述该消耗的内部处理器度量。
为了访问和监视内部处理器度量,策略代理205可以通过由内核209的API暴露的专用硬件接口254来询问处理器240。例如,策略代理205可以访问或操纵处理器核心243的一个或多个硬件寄存器,来编程处理器240的监视电路(“MON CIRC”)252,用于在内部监视共享资源并经由接口报告那些资源的使用度量。策略代理205可以通过调用内核、操作系统和/或管理程序调用来访问和操作处理器240的硬件接口。例如,处理器240的硬件接口可以是经由内核209映射的存储器,使得用于监视处理器的内部资源的处理器240的可编程寄存器可以通过针对特定存储器地址的存储器访问指令来读取和写入。响应于策略代理205的这种指示,处理器240内部的监视电路252可以监视处理器核心243的执行,并且与策略代理205通信或以其他方式使关于每个进程151的内部处理器度量的信息可用于策略代理205。
策略代理205可以维护将处理器度量与在虚拟机148内执行的每个进程151相关联的映射。例如,策略代理205可以询问内核209,以识别与在虚拟机148上执行的每个软件过程相关联的过程标识符。策略代理205可以使用与虚拟机148相关联的每个进程151的进程标识符,来将由处理器核心243为每个进程151报告的处理器度量与一个虚拟机148相关联。策略代理205可以使用该信息从与每个进程151相关联的处理器度量外推与每个虚拟机148相关联的处理器度量。策略代理205可以使用与每个虚拟机148相关联的外推处理器度量,来识别每个虚拟机148如何使用服务器126的共享资源。策略代理205可以评估内部处理器度量,并确定一个或多个虚拟机148是否以可能不利地影响其他虚拟机148的操作的方式使用共享资源。
策略代理205可以响应于以可能不利地影响其他虚拟机148的操作的方式来识别正在使用共享资源的一个或多个虚拟机148,而发出警报。例如,策略代理205可以分析虚拟机148B的内部处理器度量或在虚拟机148B内执行的一个或多个进程151B。策略代理205可以将一个或多个度量与警报阈值进行比较。警报阈值可以基于策略代理205从策略控制器201接收的或策略控制器201(或者从策略控制器201的一个或多个部件)以其他方式表示的一个或多个策略202。策略代理205可以评估多个间隔的内部处理器度量,并且根据一个或多个策略202评估处理器度量的统计(例如,平均值、最大值、标准偏差)。在一些示例中,策略代理205可以在一段时间(例如,五分钟)和/或在多个间隔内评估虚拟机148B的内部处理器度量,来确定用于虚拟机148B的代表性的一组内部处理器度量。策略代理205可以过滤出所收集的内部处理器度量中的不表示虚拟机148B的正常操作和/或不大可能影响与服务器126内的虚拟机148B相邻的虚拟机148的操作的任何异常。策略代理205可以基于这种评估来确定虚拟机148B的内部处理器度量超过在一个或多个策略202中表示的警报阈值,或者与虚拟机148B相关联的内部处理器度量触发警报。
策略代理205可以响应于该警报采取一个或多个行动,来防止对其他虚拟机148的性能的有害影响。例如,警报或警报所基于的度量可以指示虚拟机器148B可能正在以可能影响一个或多个其他虚拟机148的性能的方式使用高速缓存245。通过限制虚拟机148B对高速缓存245的使用,通过划分高速缓存245,使得每个虚拟机148仅访问高速缓存245的一部分,通过通过向虚拟机148B分配较小部分,通过向一个或多个虚拟机148或进程151分配重叠或隔离的高速缓存行,或者通过另外限制在虚拟机148B内执行的虚拟机148B对高速缓存245的使用,策略代理205可以对这种警报起作用。在另一示例中,警报所基于的警报或度量可以指示虚拟机148B可能正在在这种程度上消耗存储器带宽,即,其影响试图使用存储器带宽的其他虚拟机148的性能。策略代理205可以通过限制虚拟机148B使用存储器带宽来对这种警报起作用。
在一些示例中,策略代理205可以通过限制对在特定虚拟机内执行的一个或多个进程使用的共享资源的使用来限制一个或多个虚拟机对共享资源的使用。例如,警报或者警报所基于的度量可以指示虚拟机148B内的特定的识别的进程正在以这种方式使用共享资源,即,不仅可能影响一个或多个其他虚拟机148的性能,而且可能影响在相同的虚拟机148B内执行的一个或多个其他进程151。策略代理205可以通过限制在虚拟机148B内所识别的进程使用一个或多个共享资源而对这种警报起作用。策略代理205可以将限制仅应用于虚拟机148B内的所识别的进程,而不应用于虚拟机148B内的所有进程。在一些示例中,虚拟机148B本身可以实例化虚拟机148B内的一个或多个虚拟机。如果这个“第二级”虚拟机本身变成“吵闹的”,则策略代理205可以将限制仅应用于虚拟机148内的吵闹的虚拟机,并且避免限制虚拟机148B内的这种限制可能未保证的或者不必要的其他进程。
在一些示例中,替代地或另外,策略代理205可以向策略控制器201报告关于内部处理器度量的信息。例如,策略代理205可以从处理器核心243收集处理器度量。策略代理205可以识别与所收集的处理器度量中的一些或全部相关联的虚拟机148。策略代理205可以向数据管理器218传送关于所收集的处理器度量的信息。数据管理器218可以将所接收的信息中的一些或全部存储在使用度量数据存储216中。
策略控制器201可以对从策略代理205接收的关于内部处理器度量的信息起作用。例如,分析引擎214可以分析存储在使用度量数据存储216中的信息,并且基于关于内部处理器度量的信息,来识别以可能不利地影响在服务器126上执行的其他虚拟机的操作的方式操作的一个或多个虚拟机148。分析引擎214可以响应于识别一个或多个虚拟机148,生成一个或多个报告和通知212。分析引擎214可以可替代地或另外引起或指示策略代理205采取行动,以解决所识别的虚拟机148的操作。
在一些示例中,替代地或另外,策略代理205可以向策略控制器201报告从处理器核心243的内部处理器度量导出的信息。换言之,不是简单地向策略控制器201报告内部处理器度量,策略代理205可以对所收集的度量执行某种分析,并且将这种分析的结果报告给策略控制器201。例如,策略代理205可以收集处理器度量并识别一个或多个虚拟机148,这些虚拟机以可能不利地影响在服务器126上执行的其他虚拟机148的操作的方式操作。策略代理205可以向数据管理器218传送关于其分析结果的信息,其可以识别一个或多个虚拟机148和/或可能涉及的共享资源。分析引擎214可以响应于这种信息来指示策略代理205采取行动,以解决所识别的虚拟机148的操作。因此,包括来自处理器核心243的内部处理器度量的各种度量的处理和/或分析可以由策略代理205、策略控制器201(例如,分析引擎214)、策略代理205和策略控制器201的组合、或者服务器126的另一模块或部件执行。
在一些示例中,策略代理205和/或策略控制器201可以使用在一些处理器中可用的英特尔的资源目录技术(RDT)来监视与处理器核心243相关联的内部处理器度量,作为监视处理器240的电路252的一个示例。英特尔的RDT支持资源监视和控制功能,其被设计为提高对使用共享平台资源的方式的可视性和控制。例如,通过使用监视电路252的RDT的高速缓存监视技术(CMT),策略代理205可以确定在服务器126上执行的单独线程的最后级高速缓存利用。策略代理205和/或策略控制器201可以使用该信息来由一个或多个虚拟机148(或进程151)推导高速缓存245的使用。在另一示例中,策略代理205可以使用监视电路252的RDT的存储器带宽监视(MBM)来识别在服务器126上的虚拟机148内执行的单独线程的本地存储器带宽使用。在RDT中,MBM是CMT的扩展,这为每个线程的远程和本地内存带宽使用提供监视。在另一示例中,策略代理205可以使用监视电路252的RDT的高速缓存分配技术(CAT)来优先化不同的虚拟机148或在服务器126上执行的进程。管理程序210、策略控制器201和/或策略代理205可以使用CAT来将高速缓存245提供给在服务器126上执行的不同虚拟机148。在另一示例中,策略代理205还可以使用RDT的代码和数据优先化(CDP)来在高速缓存245中分配代码和数据段。
为了访问通过RDT可用的信息,策略代理205可以访问CPU标识符信息和由内核209公开的监视电路252的信息,以验证处理器核心243是否实现了一些或全部RDT能力。策略代理205可以与英特尔处理器和在英特尔处理器上运行的内核进行交互。例如,如果处理器核心243实现RDT或类似的技术,则策略代理205可以通过调用适当的内核API或函数调用来配置模型特定寄存器(MSR)并且编程对应于与处理器核心243相关联的期望的内部处理器度量的特定项目标识符。作为响应,处理器核心243可以周期性地将所请求的内部处理器度量发布或写入到指定的MSR。随后,策略代理205可以通过从指定的MSR读取来收集内部处理器度量。在一些示例中,例如,当管理程序210实现或者在Linux内核顶部实现时,Linux内核存储器映射内部处理器度量,并且控制策略代理205或其他进程如何从指定的MSR读取和写入。策略代理205可以调用适当的Linux调用来引导处理器核心243监视特定的度量,并且策略代理205可以读取适当的MSR,以便提取期望的内部处理器度量。
策略控制器201可以建立一个或多个策略202,指示编配引擎130何时引导管理程序210旋转、实例化或以其他方式启动新虚拟机,管理程序210将指定新虚拟机可以如何使用一个或多个共享资源。例如,策略控制器201的策略控制引擎211可以建立一个或多个策略202,其指示新的虚拟机148被给予高速缓存245的相等份额。或者,高优先级的虚拟机148、容器或进程151被给予高速缓存245的更大份额。策略控制引擎211可以使得策略控制器201将一个或多个策略202传送到编配引擎130(或管理程序210),使得当编配引擎130引导管理程序210创建新的虚拟机时,创建新的虚拟机,该新的虚拟机被创建有高速缓存245的相等份额。在另一示例中,策略控制器201可以建立一个或多个策略202,其指示新的虚拟机148被给予高速缓存245的特定百分比份额。在这种示例中,策略控制引擎211可以使策略控制器201将一个或多个对应的策略202传送给编配引擎130和/或管理程序210,使得当编配引擎130引导管理程序210创建新的虚拟机时,创建新的虚拟机,具有高速缓存245的特定百分比份额。编配引擎130可以通过使用RDT的CAT功能或其他处理器可用的类似功能划分高速缓存245,来实现这种策略。
在这种示例中,策略代理205和/或策略控制器201可以通过进一步限制高速缓存245或其他共享资源的使用来响应警报,和/或生成一个或多个报告和通知212。REST接口可以用于动态更新与虚拟机148和/或进程151相关联的高速缓存245的分配。例如:
curl-i\
-H'Content-Type:application/json'\
-X PUT\
-d'{“InstanceCacheAllocationPercentage”:5}'\
http://<host-ip-address>:7000/appformix/v1.0/instance_definition/<instance-id>
在上面的示例中,可以为instance_definition设置的参数包括InstanceCacheAllocationMB、InstanceCacheAllocationPercentage和InstanceCacheAllocationEqualShare。策略控制器201和/或策略代理205可以向虚拟机148、虚拟机148的实例或应用程序提供隔离的高速缓存行。可替代地或另外,策略控制器201和/或策略代理205可以基于实例的优先级、实例的分类或基于应用工作负荷,来分配高速缓存245的共享部分。在一些示例中,可以基于每个CPU插槽来分配高速缓存(例如,基于处理器240)。策略代理205可以基于使用、该组进程的当前调度模式以及该实例、虚拟机或应用程序的CPU核心固定属性来执行分配。
策略代理205和/或策略控制器201可以基于每个虚拟机消耗共享资源的方式来将一个或多个虚拟机148分类。例如,策略代理205可以在一段时间内监视度量,包括每个虚拟机148的内部处理器度量。策略代理205可以针对每个虚拟机148确定高速缓存245的使用的模式、存储器带宽使用、每秒退出的指令以及与每个虚拟机148的操作相关联的其他度量。策略代理205可以向策略控制器201的数据管理器218传送关于使用模式的信息。数据管理器218可以将该信息存储在度量数据存储216中。策略控制器201的分析引擎214可分析每个虚拟机148的度量,例如,通过执行对每个监视指标进行线性回归。分析引擎214可以基于这个分析根据每个虚拟机148易于消耗的共享资源表征一个或多个虚拟机148。例如,分析引擎214可以将一个或多个虚拟机148表征为CPU绑定、存储器绑定或高速缓存绑定。
策略控制器201可以建立一个或多个策略202,以限制在服务器126上具有相同或相似分类的虚拟机148的数量。例如,策略控制器201的策略控制引擎211可以建立基于上述虚拟机148的分类的一个或多个策略202。这种策略202可以被设计成避免具有以相似的方式消耗服务器126的共享资源的太多虚拟机148。在一个示例中,策略控制引擎211和/或分析引擎214可以确定,如果给定数量的虚拟机148可以被表征为CPU绑定,并且编配引擎130(或管理程序210)试图实例化或启动新的CPU绑定虚拟机,则一个或多个策略202可确保新虚拟机未在服务器126上实例化或启动,而是在数据中心110内的不同物理主机上实例化或启动。具体地,在这种示例中,策略控制引擎211可以建立一个或多个策略202,其将CPU绑定的虚拟机148的数量限制为与处理器核心243相关联的内核的数量。如果在处理器核心243内存在16个内核,则策略控制引擎211可以建立一个或多个策略202,指示在服务器126上应当执行不超过16个CPU绑定的虚拟机148。在不同的示例中,如果给定数量的虚拟机148可以被表征为高速缓存绑定并且编配引擎130寻求实例化或启动新的高速缓存绑定的虚拟机,则一个或多个策略202可以确保新的虚拟机未在服务器126上实例化或启动,而是在数据中心110内的不同物理主机上实例化或启动。
策略控制器201可以使编配引擎130基于虚拟机148的分类选择或调整一个或多个虚拟机148正在其上执行的物理主机。例如,参考图1和图2,策略控制器201的策略控制引擎211可以确定在服务器126A上正在执行50个CPU绑定的虚拟机148,而没有内存绑定的虚拟机148。策略控制引擎211还可以确定在服务器126B上没有执行CPU绑定的虚拟机148,并且执行40个存储器绑定的虚拟机148。如果在服务器126A上执行的50个CPU绑定的虚拟机148中的一些在服务器126B上执行,并且在服务器126B上执行的40个存储器绑定的虚拟机148中的一些在服务器126A上执行,则策略控制引擎211可以确定服务器126A和服务器126B均可以更好地执行。因此,策略控制引擎211可以使策略控制器201与编配引擎130通信,指示编配引擎130重新分配一个或多个虚拟机148。例如,策略控制器201可以指示编配引擎130将在服务器126A上执行的一些虚拟机148到服务器126B,并将在服务器126B上执行的一些虚拟机148移动到服务器126A。作为以这种方式在服务器126上分配虚拟机148的结果,数据中心110可以显示改进的性能。
策略控制器201还可以建立使用存储器带宽度量(例如,RDT的MBM度量)来改善NUMA局部性的策略。在这种示例中,如果远程存储器带宽大于本地存储器带宽,则策略代理205可以从处理器核心243收集与未优化的NUMA相关的度量。策略代理205可以使用这种度量来为NUMA局部性重新目的化或重新实现一个或多个虚拟机148。访问远程内存的等待时间可能远高于本地内存。
分析引擎214例如通过使用静态或动态阈值、即时或历史使用数据的任何前述技术,将警报阈值与相应资源的使用度量216进行比较,来评估包括在每个简档213中的警报。基于通过与元素的直接关联或与元素的间接关联来评估元素的简档213内的多个警报,因为策略控制引擎211将元素配置为与包括一个或多个警报的简档的组的成员相关联,分析引擎214将简档设置为活动或不活动,并且可以执行上述改善、报告和/或通知操作中的任一个。在一些示例中,分析引擎214可以在策略代理205之中分配简档213,以在服务器126上以分布式本地方式评估警报和简档213。
图3A和图3B是示出根据本公开的一个或多个方面的由示例用户接口装置呈现的示例用户接口的概念图。图3A所示的用户接口301A和图3B所示的用户接口301B可以均对应于由用户接口装置129呈现(例如,在窗口302内)的用户接口,并且可以是对应于或包括在结合图1和图2描述的仪表板203内的示例用户接口。尽管图3A和图3B中所示的用户接口被示为图形用户接口,但是用户接口装置129可呈现其他类型的接口,包括基于文本的用户接口、控制台或基于命令的用户接口、语音提示用户接口或任何其他适当的用户接口。可以在图1和图2的数据中心110的上下文内描述用户接口301A和/或用户接口301B的一个或多个方面。
参考图2、图3A以及图3B,并且根据本公开的一个或多个方面,用户接口装置129可呈现用户接口301A和用户接口301B。例如,用户接口装置129可以检测其确定的对应于用户的请求的输入,以呈现与图2的服务器126相关联的度量。用户接口装置129可以向策略控制器201输出输入的指示。策略控制器201的策略控制引擎211可以检测输入并且确定该输入对应于关于与服务器126相关联的度量的信息的请求。在控制器201上执行的仪表板模块233可以响应于该输入来生成仪表板203,其可包括用户接口301A和用户接口301B下面的信息。策略控制引擎211可以使策略控制器201向用户接口装置129发送信息。用户接口装置129可以接收该信息,并且确定该信息包括足以生成用户接口的信息。用户接口装置129可以响应于从策略控制器201接收到的信息创建用户接口301A,并以图3A所示的方式,在与用户接口装置129相关联的显示器上呈现用户接口。类似地,用户接口装置129也可以响应于从策略控制器201接收的信息,创建用户接口301B,并以图3B所示的方式,在与用户接口装置129相关联的显示器上呈现。
在图3A的示例中,用户接口301A呈现在窗口302内,并且包括工具条323和主显示区域321。沿着主显示区域321的顶部是下拉式用户接口部件327和一个或多个状态或通知显示元素328。下拉式用户接口部件327可以用于选择资源、元素、项目或其他配置。用户状态或通知显示元素328可以提供关于与一个或多个网络、用户、元素或资源相关的警报或其他状态项目的信息。
工具条323提供在用户接口301A内呈现哪个用户接口模式的指示。如图3A所示,并且如在本文进一步描述的,工具条323可以指示几个模式中的一个,包括“集群”模式、“仪表板”模式、“图表”模式、“报警”模式、“热图”模式、“计划”模式、报告“模式”、“退款”模式、“、网络拓扑”模式和“设置”模式。
在图3A的示例中,工具条323示出在用户接口301A内呈现“图表”模式326。主显示区域321包括CPU使用度量图310、CPU负载度量图320、磁盘使用度量图330和存储器使用度量图340。在主显示区域321内的图3A中的每个图可以随着时间(沿着x轴)表示与在服务器126上执行的多个虚拟机148相关联并且如由图2的策略控制器201和/或策略代理205检测或确定的度量值。具体地,在图3A中,与虚拟机148A相关联的度量被示出为CPU使用312A、CPU负载322A、磁盘使用332A和存储器使用342A。另外,图3A中的虚拟机148B的度量包括CPU使用312B和存储器使用342B。
在图3B的示例中,用户接口301B也呈现在窗口302内,并且还包括工具条323和主显示区域321。用户接口302B包括高速缓存使用图350、高速缓存未命中频率图360、本地存储器带宽图370以及远程存储器带宽图380。而且,在主显示区域321内的图3B中的每个图可以表示与在服务器126上执行的多个虚拟机148相关联并且如由图2的策略控制器201和/或策略代理205检测或确定的时间序列度量值。在图3B中,与虚拟机关联的度量包括高速缓存使用352B和高速缓存未命中频率362B。
在图3A所示的信息表明,虚拟机148A在大约10:35开始经历CPU使用(参见CPU使用度量图310上的CPU使用312A)和CPU负载(参见CPU负载度量图320上的CPU负载322A)的显著增加。此外,虚拟机148A在几乎相同的时间经历了存储器使用的显著增加(参见存储器使用度量图340上的存储器使用342A)。虚拟机148A的性能度量中的这些变化的原因可能不从图3A的用户接口301A中呈现的图中显而易见。具体地,注意,图3A中的虚拟机148B的度量(例如,CPU使用312B)在10:35之后保持相对恒定,并且未表明,虚拟机148B以降低虚拟机148A的性能的方式操作。
图3B的用户接口301B呈现从内部处理器度量导出的信息和图。与图3A不一样,图3B提供了可能有助于识别哪个虚拟机148正在影响虚拟机148A的性能的信息。例如,虽然虚拟机148B在10:35之后具有相对恒定的20%的CPU利用率(如图3A中的CPU使用312B所示),但是从图3B中的高速缓存使用图350(具体地,高速缓存使用352B)中可以看出,虚拟机148B在大约10:35已经将其高速缓存使用增加到大约40MB。此外,虚拟机148B在10:35开始生成大量的高速缓存未命中(参见高速缓存未命中频率图360的高速缓存未命中频率362B)。基于这个信息,策略代理205、策略控制器201和/或管理员操作用户接口装置129可以确定虚拟机148A的性能度量的改变的原因是虚拟机148B,其可能正在以影响虚拟机148A的性能的方式使用高速缓存245。
因此,如图3A和图3B所示,通过监视内部处理器度量,以识别处理器内的虚拟机148B消耗的共享资源,可以用可能不利地影响在处理器内争夺那些相同资源的其他虚拟机的性能的方式,识别正在消耗服务器126的处理器内的共享资源的一个或多个虚拟机。在不监视这种内部处理器度量的情况下,调试或以其他方式识别虚拟机148的性能度量的改变的原因,可能是困难的或不可能的。
图4是示出根据本公开的一个或多个方面的用于计算环境(例如,在数据中心内部署的虚拟化基础设施)的监视、调度和性能管理的示例过程的流程图。从三个不同角度示出图4的过程:由示例控制器201(虚线左侧的左侧列)执行的操作、由示例策略代理205(在虚线之间的中间列)执行的操作以及由示例处理器240(虚线右侧的右列)执行的操作。在图4的示例中,可以在图2的上下文内执行由策略控制器201、策略代理205和处理器240执行的操作的各个方面。此外,也可以在图2的上下文内执行由控制器201、策略代理205和/或处理器240执行的操作的各个方面。在其他示例中,可以执行不同的操作,或者由特定部件、模块、系统和/或装置执行的图4中描述的操作可以由一个或多个其他部件、模块、系统和/或装置执行。此外,在其他示例中,可以以不同的顺序执行、合并或省略结合图4描述的操作,甚至在由不止一个部件、模块、系统和/或装置执行这种操作的情况下。
在图4的示例中,并且根据本公开的一个或多个方面,策略控制器201可以定义一个或多个策略(401)。例如,用户接口装置129可以检测输入,并且向策略控制器201输出一输入的指示。策略控制器201的策略控制引擎211可以确定输入对应于足以定义一个或多个策略的信息。策略控制引擎211可以在策略数据存储202中定义和存储一个或多个策略。
策略控制器201可以将一个或多个策略部署到在一个或多个服务器126上执行的一个或多个策略代理205(402)。例如,策略控制引擎211可以促使策略控制器201的数据管理器218向策略代理205输出信息。策略代理205可以从策略控制器201接收信息,并且确定该信息对应于将部署到策略代理205的一个或多个策略(403)。
策略代理205可以将处理器240配置为监视内部处理器度量(404)。例如,策略代理205可以与监视电路252交互和/或将监视电路252配置为能够监视处理器度量。在一些示例中,策略代理可以将监视电路252配置为根据资源目录技术收集度量。
处理器240可以响应于策略代理205的交互和/或配置,监视与服务器126的处理器240内共享的资源有关的内部处理器度量(405)。处理器240可以使这种度量可用于其他装置或进程,例如,策略代理205(406)。在一些示例中,处理器240通过在存储器的指定区域中或者在处理器240的寄存器内发布这种度量来使得这种度量可用。
策略代理205可以从处理器240读取内部处理器度量(407)。例如,策略代理205可以从寄存器(例如,模型特定寄存器)读取,以访问关于与处理器240有关的内部处理器度量的信息。
策略代理205可以分析度量并且根据策略代替服务器126来作用(408)。例如,策略代理205可以基于内部处理器度量,来确定部署在服务器126上的一个或多个虚拟机正在以可能不利地影响执行在服务器126上执行的其他虚拟机148的性能的方式使用处理器240内部共享的高速缓存。在一些示例中,策略代理205可以确定部署在服务器126上的一个或多个虚拟机以可能正在以可能不利地影响其他虚拟机148的性能的方式使用存储器带宽。策略代理205可以响应于这种确定,指示处理器240例如通过将高速缓存的较小部分分配给该虚拟机,来限制虚拟机对共享高速缓存的违规使用。处理器240可以接收这种指令,并根据从策略代理205接收的指令,来限制虚拟机对共享高速缓存的违规使用(409)。
在一些示例中,策略代理205可以向策略控制器201报告信息(410)。例如,策略代理205可以将内部处理器度量报告给策略控制器201的数据管理器218。可替代地或另外,策略代理205可以基于内部处理器度量向数据管理器218报告由策略代理205执行的分析结果。
响应于接收到由策略代理205报告的信息,策略控制器201可以生成一个或多个报告和/或通知(411)。例如,策略控制器201的分析引擎214可以生成一个或多个报告并且促使用户接口装置129将这种报告呈现为用户接口。可替代地或另外,分析引擎214可以生成一个或多个警报,可以在由仪表板模块233和/或策略控制器201经由用户接口装置129呈现的仪表板203中包括或报告所述警报。
对于在任何流程图或流程示图中包括的在本文中所描述的进程、设备和其他示例或图示,在本文所描述的任何技术中包括的某些操作、活动、步骤或事件可以以不同的顺序执行,可以添加、合并或完全忽略(例如,并非所有描述的活动或事件对于实践这些技术都是必需的)。而且,在某些示例中,可以例如通过多线程处理、中断处理或多个处理器,而不是依次地,同时执行操作、活动、步骤或事件。进一步的某些操作、活动、步骤或事件可以自动地执行,即使没有被具体识别为自动执行。而且,被描述为自动执行的某些操作、活动、步骤或事件可替代地不自动地执行,而是在一些示例中,可以响应于输入或另一事件,来执行这种操作、活动、步骤或事件。
在一个或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合来实现。如果以软件实现,则可以将这些功能作为一个或多个指令或代码存储在计算机可读介质上和/或通过计算机可读介质进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括对应于有形介质(例如,数据存储介质)的计算机可读存储介质或包括促进将计算机程序从一个位置传送到另一位置的任何介质(例如,根据通信协议)的通信介质。以这种方式,计算机可读介质可对应于(1)非暂时性的有形计算机可读存储介质或(2)通信介质,例如,信号或载波。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索用于实现本公开中所描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
通过示例而非限制性地,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁存储装置、闪存或可用于以指令或数据结构的形式存储所需程序代码并可由计算机访问的任何其他介质。而且,任何连接都适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或诸如红外线、无线电和微波等无线技术从网站、服务器或其他远程源传输指令,则在介质的定义中包括同轴电缆、光纤电缆、双绞线、DSL或诸如红外线、无线电和微波等无线技术。然而,应该理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬态介质,而是涉及非暂时性的有形存储介质。所使用的磁盘和光盘包括光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常以磁的方式再现数据,而光盘通过激光光学地再现数据。上述组合也应该包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等同的集成或离散逻辑电路。因此,本文使用的术语“处理器”或“处理电路”可以均指前述结构中的任何结构或适用于实现所描述的技术的任何其他结构。另外,在一些示例中,可以在专用硬件和/或软件模块内提供所描述的功能。而且,这些技术可以完全在一个或多个电路或逻辑元件中实现。
本公开的技术可以在各种装置或设备中实现,包括无线手持机、移动或非移动计算装置、可穿戴或不可穿戴计算装置、集成电路(IC)或者一组IC(例如,芯片组)。在本公开中描述了各种部件、模块或单元,以强调被配置为执行所公开的技术的装置的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,可以将各种单元组合在硬件单元中,或者通过互操作硬件单元的集合结合合适的软件和/或固件来提供,包括如上所述的一个或多个处理器。
Claims (15)
1.一种用于虚拟环境中的方法,包括:
由策略控制器生成在数据中心内应用的策略;
由所述策略控制器将所述策略分配给在数据中心内包括的计算装置上执行的策略代理,其中,所述计算装置包括具有多个处理器核心的处理电路;
监视与由所述多个处理器核心共享的资源有关的使用度量;
将所述使用度量的第一子集映射到第一进程,并将所述使用度量的第二子集映射到第二进程,其中,所述第一进程和所述第二进程均在所述处理电路上执行的虚拟计算环境内执行;
基于映射的使用度量和策略,确定第一进程正在以不利地影响所述第二进程的性能的方式使用所述资源;并且
响应于确定,限制所述第一进程对所述资源的访问。
2.根据权利要求1所述的方法,其中,限制所述第一进程对所述资源的访问包括:
限制所述第一进程对所述资源的访问,而不限制所述第二进程对所述资源的访问。
3.根据权利要求1所述的方法,其中,所述虚拟计算环境是第一虚拟计算环境,所述方法还包括:
将所述使用度量的第三子集映射到第三进程并将所述使用度量的第四子集映射到第四进程,其中,所述第三进程和所述第四进程均在所述处理电路上执行的第二虚拟计算环境内执行;
基于映射的使用度量和所述策略,确定第三进程正在以不利地影响所述第四进程的性能的方式使用所述资源;并且
响应于确定,限制所述第三进程对资源的访问,而不限制所述第四进程对所述资源的访问。
4.根据权利要求1所述的方法,其中,所述资源是高速缓存,所述方法还包括:
在确定所述第一进程正在以不利地影响所述第二进程的性能的方式使用所述高速缓存之前,将所述高速缓存的基本上相等的部分分配给所述第一进程和所述第二进程中的每一个。
5.根据权利要求4所述的方法,其中,限制所述第一进程对所述高速缓存的访问包括:
减少所述第一进程能够访问的所述高速缓存的部分。
6.根据权利要求1-5中的任一项所述的方法,其中,所述虚拟计算环境是由在所述处理电路上执行的管理程序实例化的虚拟机。
7.根据权利要求1-5中任一项所述的方法,其中,所述虚拟计算环境是在所述处理电路上执行的容器。
8.一种用于虚拟环境中的方法,包括:
由策略控制器生成在数据中心内应用的策略;
由所述策略控制器将所述策略分配给在数据中心内包括的计算装置上执行的策略代理,其中,所述计算装置包括处理电路;
监视与由在所述处理电路上执行的多个虚拟计算环境共享的资源有关的使用度量;
将每个使用度量映射到在所述处理电路上执行的所述多个虚拟计算环境中的对应一个虚拟计算环境;
基于所映射的使用度量,将所述多个虚拟计算环境中的每一个按照所述资源的使用分类;
基于所述多个虚拟计算环境中的每一个的分类,确定所述多个虚拟计算环境中的至少一些被分类为使用所述资源;并且
响应于确定,基于所述策略,防止在所述计算装置上实例化新的虚拟计算环境。
9.根据权利要求8所述的方法,其中,所述计算装置是第一计算装置,所述方法还包括:
在所述数据中心内包括的第二计算装置上实例化新的虚拟计算环境。
10.根据权利要求8所述的方法,其中,所述资源是第一资源,所述方法还包括:
将所述多个虚拟计算环境中的每一个按照第二资源的使用进行分类。
11.根据权利要求1-3和8-10中任一项所述的方法,其中,所述资源是CPU、高速缓存和存储器总线中的至少一个。
12.一种用于虚拟环境中的系统,包括用于执行根据权利要求1-5和8-10中任一项所述的方法的装置。
13.一种用于虚拟环境中的系统,包括:
存储装置;以及
处理电路,能够访问所述存储装置并被配置为:
生成在数据中心内应用的策略;
将所述策略分配给在所述数据中心内包括的计算装置上执行的策略代理,其中,所述计算装置包括具有多个处理器核心的处理电路;
监视与由所述多个处理器核心共享的资源有关的使用度量;
将所述使用度量的第一子集映射到第一进程,并将所述使用度量的第二子集映射到第二进程,其中,所述第一进程和所述第二进程均在所述处理电路上执行的虚拟计算环境内执行;
基于映射的使用度量和所述策略,确定所述第一进程正在以不利地影响所述第二进程的性能的方式使用所述资源;并且
响应于确定,限制所述第一进程对所述资源的访问。
14.根据权利要求13所述的系统,其中,所述虚拟计算环境是第一虚拟计算环境,并且其中,所述处理电路还被配置为:
将所述使用度量的第三子集映射到第三进程并将所述使用度量的第四子集映射到第四进程,其中,所述第三进程和所述第四进程均在所述处理电路上执行的第二虚拟计算环境内执行;
基于映射的使用度量和所述策略,确定第三进程正在以不利地影响所述第四进程的性能的方式使用所述资源;并且
响应于确定,限制所述第三进程对所述资源的访问,而不限制所述第四进程对所述资源的访问。
15.一种用于虚拟环境中的系统,包括:
存储装置;以及
处理电路,能够访问所述存储装置并被配置为:
生成在数据中心内应用的策略;
将所述策略分配给在所述数据中心内包括的计算装置上执行的策略代理,其中,所述计算装置包括处理电路;
监视与由在所述处理电路上执行的多个虚拟计算环境共享的资源有关的使用度量;
将每个所述使用度量映射到在所述处理电路上执行的所述多个虚拟计算环境中的对应一个虚拟计算环境;
基于所映射的使用度量,将所述多个虚拟计算环境中的每一个按照所述资源的使用进行分类;
基于所述多个虚拟计算环境中的每一个的分类,确定所述多个虚拟计算环境中的至少一些被分类为使用所述资源;并且
响应于确定,基于所述策略,防止在所述计算装置上实例化新的虚拟计算环境。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762478515P | 2017-03-29 | 2017-03-29 | |
US62/478,515 | 2017-03-29 | ||
US15/797,098 | 2017-10-30 | ||
US15/797,098 US11068314B2 (en) | 2017-03-29 | 2017-10-30 | Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108694068A true CN108694068A (zh) | 2018-10-23 |
Family
ID=61022201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711497775.4A Pending CN108694068A (zh) | 2017-03-29 | 2017-12-29 | 用于虚拟环境中的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11068314B2 (zh) |
EP (1) | EP3382543B1 (zh) |
CN (1) | CN108694068A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726050A (zh) * | 2018-12-28 | 2019-05-07 | 杭州迪普科技股份有限公司 | 一种进程修复的方法和装置 |
CN109756413A (zh) * | 2019-03-05 | 2019-05-14 | 山东浪潮云信息技术有限公司 | 一种云数据中心异构网络互联系统及方法 |
CN110990128A (zh) * | 2019-12-23 | 2020-04-10 | 北京元心科技有限公司 | 一种虚拟化加速方法、装置、存储器及设备 |
CN111580792A (zh) * | 2020-04-29 | 2020-08-25 | 上海航天计算机技术研究所 | 一种基于操作系统的高可靠星载软件架构设计方法 |
CN111752710A (zh) * | 2020-06-23 | 2020-10-09 | 中国电力科学研究院有限公司 | 数据中心pue动态优化方法、系统、设备及可读存储介质 |
CN113709139A (zh) * | 2021-08-26 | 2021-11-26 | 江苏省未来网络创新研究院 | 基于NUMA架构的openstack东西向转发性能优化方法和系统 |
CN114157668A (zh) * | 2020-08-17 | 2022-03-08 | 中国电信股份有限公司 | 多租户跨集群的组网方法、通信系统和可读存储介质 |
CN115658324A (zh) * | 2022-11-18 | 2023-01-31 | 统信软件技术有限公司 | 一种进程调度方法、计算设备及存储介质 |
CN116820686A (zh) * | 2023-08-29 | 2023-09-29 | 苏州浪潮智能科技有限公司 | 物理机的部署方法、虚拟机和容器统一监控的方法及装置 |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10291472B2 (en) | 2015-07-29 | 2019-05-14 | AppFormix, Inc. | Assessment of operational states of a computing environment |
US10581687B2 (en) | 2013-09-26 | 2020-03-03 | Appformix Inc. | Real-time cloud-infrastructure policy implementation and management |
US10868742B2 (en) | 2017-03-29 | 2020-12-15 | Juniper Networks, Inc. | Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control |
KR102028096B1 (ko) * | 2017-04-18 | 2019-10-02 | 한국전자통신연구원 | 하이퍼바이저 기반의 가상 머신 격리 장치 및 방법 |
US11323327B1 (en) | 2017-04-19 | 2022-05-03 | Juniper Networks, Inc. | Virtualization infrastructure element monitoring and policy control in a cloud environment using profiles |
US10498810B2 (en) * | 2017-05-04 | 2019-12-03 | Amazon Technologies, Inc. | Coordinating inter-region operations in provider network environments |
WO2018228674A1 (en) * | 2017-06-13 | 2018-12-20 | Huawei Technologies Co., Ltd. | Method for using context awareness for the coordination of management and mobile network service operation planes |
US10445208B2 (en) * | 2017-06-23 | 2019-10-15 | Microsoft Technology Licensing, Llc | Tunable, efficient monitoring of capacity usage in distributed storage systems |
CN109547221B (zh) * | 2017-09-22 | 2022-04-29 | 中兴通讯股份有限公司 | 大数据分析服务提供方法和装置、计算机可读存储介质 |
KR102423755B1 (ko) * | 2017-12-14 | 2022-07-21 | 삼성전자주식회사 | 패킷 전송을 제어하는 서버 및 방법 |
CN108062246B (zh) * | 2018-01-25 | 2019-06-14 | 北京百度网讯科技有限公司 | 用于深度学习框架的资源调度方法和装置 |
US10897453B2 (en) * | 2018-01-26 | 2021-01-19 | Nicira, Inc. | Providing networking and security to workloads via a control virtual private cloud shared across multiple virtual private clouds |
US11461290B2 (en) * | 2018-04-12 | 2022-10-04 | Vmware, Inc. | System and method for run-time adaptable policy engine for heterogeneous managed entities |
US10728121B1 (en) | 2018-05-23 | 2020-07-28 | Juniper Networks, Inc. | Dashboard for graphic display of computer network topology |
US10778534B2 (en) | 2018-06-13 | 2020-09-15 | Juniper Networks, Inc. | Virtualization infrastructure underlay network performance measurement and monitoring |
EP3814912B1 (en) * | 2018-06-29 | 2023-11-01 | INTEL Corporation | Techniques to support a holistic view of cache class of service for a processor cache |
US11126461B2 (en) | 2018-07-12 | 2021-09-21 | Vmware, Inc. | Techniques for container scheduling in a virtual environment |
US10809987B2 (en) | 2018-08-14 | 2020-10-20 | Hyperblox Inc. | Software acceleration platform for supporting decomposed, on-demand network services |
US11057273B2 (en) | 2018-08-22 | 2021-07-06 | Verizon Media Inc. | Decentralized auto-scaling of network architectures |
US11494212B2 (en) * | 2018-09-27 | 2022-11-08 | Intel Corporation | Technologies for adaptive platform resource assignment |
US11144340B2 (en) * | 2018-10-04 | 2021-10-12 | Cisco Technology, Inc. | Placement of container workloads triggered by network traffic for efficient computing at network edge devices |
US10904250B2 (en) * | 2018-11-07 | 2021-01-26 | Verizon Patent And Licensing Inc. | Systems and methods for automated network-based rule generation and configuration of different network devices |
CN109885377B (zh) * | 2018-11-23 | 2023-04-28 | 中国银联股份有限公司 | 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统 |
US11455315B1 (en) * | 2018-12-11 | 2022-09-27 | Palantir Technologies Inc. | Central user interface for accessing and upgrading of dataset integrations |
CN109446032A (zh) * | 2018-12-19 | 2019-03-08 | 福建新大陆软件工程有限公司 | Kubernetes副本扩缩容的方法及系统 |
US11169854B2 (en) * | 2019-01-31 | 2021-11-09 | Hewlett Packard Enterprise Development Lp | Node eligibility determinations |
US11337155B2 (en) * | 2019-03-12 | 2022-05-17 | Cisco Technology, Inc. | Event-driven policy based management of wireless beacon and tag devices |
US11329882B2 (en) | 2019-04-25 | 2022-05-10 | Juniper Networks, Inc. | Multi-cluster configuration controller for software defined networks |
US11381526B2 (en) * | 2019-05-08 | 2022-07-05 | Cisco Technology, Inc. | Multi-tenant optimized serverless placement using smart network interface cards and commodity storage |
CN110297641B (zh) * | 2019-06-25 | 2022-02-22 | 四川长虹电器股份有限公司 | 基于kubernetes的应用编排部署方法 |
CN110519361B (zh) * | 2019-08-22 | 2022-07-29 | 北京宝兰德软件股份有限公司 | 基于kubernetes的容器云平台多租户构建方法及装置 |
CN112433841B (zh) * | 2019-08-26 | 2023-08-01 | 中国移动通信集团浙江有限公司 | 一种资源池调度方法、系统、服务器和存储介质 |
US11106594B2 (en) * | 2019-09-05 | 2021-08-31 | Advanced Micro Devices, Inc. | Quality of service dirty line tracking |
US11409552B2 (en) * | 2019-09-24 | 2022-08-09 | International Business Machines Corporation | Hardware expansion prediction for a hyperconverged system |
US11824784B2 (en) * | 2019-12-20 | 2023-11-21 | Intel Corporation | Automated platform resource management in edge computing environments |
US10896060B1 (en) * | 2020-01-14 | 2021-01-19 | Capital One Services, Llc | Resource monitor for monitoring long-standing computing resources |
US11509650B2 (en) * | 2020-02-05 | 2022-11-22 | Unisys Corporation | One-time password for secure share mapping |
JP2021149808A (ja) * | 2020-03-23 | 2021-09-27 | 富士通株式会社 | Cpu状態表示方法及びcpu状態表示プログラム |
US11695661B1 (en) | 2020-04-21 | 2023-07-04 | Aviatrix Systems, Inc. | Systems and methods for deploying a cloud management system configured for tagging constructs deployed in a multi-cloud environment |
US11283695B2 (en) | 2020-04-21 | 2022-03-22 | Aviatrix Systems, Inc. | System and method for determination of network operation metrics and generation of network operation metrics visualizations |
US11709750B2 (en) * | 2020-05-12 | 2023-07-25 | International Business Machines Corporation | Dynamically mapping software infrastructure utilization |
US11263040B2 (en) * | 2020-05-26 | 2022-03-01 | Vmware, Inc. | Measuring host utilization in a datacenter |
US11277315B2 (en) | 2020-07-02 | 2022-03-15 | Juniper Networks, Inc. | Dashboard for display of state information in a graphic representation of network topology |
US11336504B2 (en) * | 2020-08-24 | 2022-05-17 | Juniper Networks, Inc. | Intent-based distributed alarm service |
US11470037B2 (en) | 2020-09-09 | 2022-10-11 | Self Financial, Inc. | Navigation pathway generation |
US11641665B2 (en) * | 2020-09-09 | 2023-05-02 | Self Financial, Inc. | Resource utilization retrieval and modification |
US11475010B2 (en) | 2020-09-09 | 2022-10-18 | Self Financial, Inc. | Asynchronous database caching |
US20220075877A1 (en) | 2020-09-09 | 2022-03-10 | Self Financial, Inc. | Interface and system for updating isolated repositories |
CN112637033B (zh) * | 2020-12-10 | 2022-08-26 | 杭州迪普科技股份有限公司 | 一种基于硬件业务板卡的vlan分配方法、装置及设备 |
US11249809B1 (en) * | 2021-02-05 | 2022-02-15 | International Business Machines Corporation | Limiting container CPU usage based on network traffic |
CN113114482B (zh) * | 2021-03-08 | 2022-06-14 | 中国—东盟信息港股份有限公司 | 一种基于容器的混合云管理系统及方法 |
CN113703958B (zh) * | 2021-07-15 | 2024-03-29 | 山东云海国创云计算装备产业创新中心有限公司 | 多架构处理器间的数据访问方法、装置、设备及存储介质 |
US11928518B2 (en) * | 2021-08-10 | 2024-03-12 | Kyndryl, Inc. | Noisy-neighbor detection and remediation |
EP4353004A1 (en) * | 2021-09-03 | 2024-04-17 | NEC Laboratories Europe GmbH | Ai-driven intelligent radio controller |
CN113886196B (zh) * | 2021-12-07 | 2022-03-15 | 上海燧原科技有限公司 | 片上功耗管理方法、电子设备及存储介质 |
US20230186221A1 (en) * | 2021-12-14 | 2023-06-15 | Fmr Llc | Systems and methods for job role quality assessment |
US11875190B2 (en) * | 2022-03-15 | 2024-01-16 | Liveperson, Inc. | Methods and systems for AI-based load balancing of processing resources in distributed environments |
US11875195B2 (en) * | 2022-03-15 | 2024-01-16 | Liveperson, Inc. | Methods and systems for dynamic load balancing of processing resources in distributed environments |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080250415A1 (en) * | 2007-04-09 | 2008-10-09 | Ramesh Kumar Illikkal | Priority based throttling for power/performance Quality of Service |
US20080270199A1 (en) * | 2007-04-30 | 2008-10-30 | David Michael Chess | Methods and apparatus for management of heterogeneous workloads |
US20110149737A1 (en) * | 2009-12-23 | 2011-06-23 | Manikam Muthiah | Systems and methods for managing spillover limits in a multi-core system |
US20130332927A1 (en) * | 2011-02-23 | 2013-12-12 | Transoft (Shanghai), Inc. | System and method for managing resources in virtualized environment |
EP2687991A2 (en) * | 2012-07-19 | 2014-01-22 | LSI Corporation | Methods And Structure For Improved Flexibility In Shared Storage Caching By Multiple Systems Operating As Multiple Virtual Machines |
Family Cites Families (153)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USD379695S (en) | 1996-02-29 | 1997-06-03 | White Consolidated Industries, Inc. | Cleaning head for an upright vacuum cleaner |
US6182157B1 (en) | 1996-09-19 | 2001-01-30 | Compaq Computer Corporation | Flexible SNMP trap mechanism |
US6038216A (en) | 1996-11-01 | 2000-03-14 | Packeteer, Inc. | Method for explicit data rate control in a packet communication environment without data rate supervision |
EP0948168A1 (en) | 1998-03-31 | 1999-10-06 | TELEFONAKTIEBOLAGET L M ERICSSON (publ) | Method and device for data flow control |
CA2249152C (en) | 1998-09-30 | 2003-07-08 | Northern Telecom Limited | Apparatus for and method of managing bandwidth for a packet-based connection |
CN100384191C (zh) | 1999-06-10 | 2008-04-23 | 阿尔卡塔尔互联网运行公司 | 基于策略的网络体系结构 |
US7032022B1 (en) | 1999-06-10 | 2006-04-18 | Alcatel | Statistics aggregation for policy-based network |
US7010611B1 (en) | 1999-12-21 | 2006-03-07 | Converged Access, Inc. | Bandwidth management system with multiple processing engines |
US7308501B2 (en) | 2001-07-12 | 2007-12-11 | International Business Machines Corporation | Method and apparatus for policy-based packet classification using hashing algorithm |
EP1331564A1 (en) | 2002-01-24 | 2003-07-30 | Siemens Aktiengesellschaft | Fuzzy logic based intelligent load control for distributed environment |
WO2003098464A1 (en) | 2002-05-14 | 2003-11-27 | Akamai Technologies, Inc. | Enterprise content delivery network having a central controller for coordinating a set of content servers |
US7403993B2 (en) | 2002-07-24 | 2008-07-22 | Kasenna, Inc. | System and method for highly-scalable real-time and time-based data delivery using server clusters |
US7433304B1 (en) | 2002-09-06 | 2008-10-07 | Packeteer, Inc. | Classification data structure enabling multi-dimensional network traffic classification and control schemes |
US20040054791A1 (en) | 2002-09-17 | 2004-03-18 | Krishnendu Chakraborty | System and method for enforcing user policies on a web server |
US7616638B2 (en) | 2003-07-29 | 2009-11-10 | Orbital Data Corporation | Wavefront detection and disambiguation of acknowledgments |
US6988224B2 (en) | 2002-10-31 | 2006-01-17 | Hewlett-Packard Development Company, L.P. | Measurement apparatus |
US7802234B2 (en) | 2003-01-02 | 2010-09-21 | Oracle International Corporation | Integration of context-sensitive runtime metrics into integrated development environments |
US7389462B1 (en) | 2003-02-14 | 2008-06-17 | Istor Networks, Inc. | System and methods for high rate hardware-accelerated network protocol processing |
US8238241B2 (en) | 2003-07-29 | 2012-08-07 | Citrix Systems, Inc. | Automatic detection and window virtualization for flow control |
US6968291B1 (en) | 2003-11-04 | 2005-11-22 | Sun Microsystems, Inc. | Using and generating finite state machines to monitor system status |
US7779424B2 (en) * | 2005-03-02 | 2010-08-17 | Hewlett-Packard Development Company, L.P. | System and method for attributing to a corresponding virtual machine CPU usage of an isolated driver domain in which a shared resource's device driver resides |
US20060259733A1 (en) * | 2005-05-13 | 2006-11-16 | Sony Computer Entertainment Inc. | Methods and apparatus for resource management in a logically partitioned processing environment |
US20060271680A1 (en) | 2005-05-31 | 2006-11-30 | International Business Machines Corporation | Method For Transmitting Window Probe Packets |
US8064459B2 (en) | 2005-07-18 | 2011-11-22 | Broadcom Israel Research Ltd. | Method and system for transparent TCP offload with transmit and receive coupling |
JP2007041720A (ja) | 2005-08-01 | 2007-02-15 | Fujitsu Ltd | ジョブステップ実行プログラムおよびジョブステップ実行方法 |
US7603671B2 (en) | 2005-11-04 | 2009-10-13 | Sun Microsystems, Inc. | Performance management in a virtual computing environment |
CN100418313C (zh) | 2005-12-21 | 2008-09-10 | 中国科学院计算技术研究所 | 适于带宽变化的链路分层共享和管理域的带宽重分配方法 |
US20070204266A1 (en) * | 2006-02-28 | 2007-08-30 | International Business Machines Corporation | Systems and methods for dynamically managing virtual machines |
JP5121161B2 (ja) * | 2006-04-20 | 2013-01-16 | 株式会社日立製作所 | 記憶システム、パス管理方法及びパス管理装置 |
US8418016B2 (en) | 2006-10-05 | 2013-04-09 | Ntt Docomo, Inc. | Communication system, communication device, and communication method |
US8527982B1 (en) | 2007-01-12 | 2013-09-03 | moka5. Inc. | Auto install virtual machine monitor |
JP5246388B2 (ja) | 2007-03-08 | 2013-07-24 | 日本電気株式会社 | 仮想装置構成システム、及びその方法 |
KR20080092654A (ko) | 2007-04-13 | 2008-10-16 | 삼성전자주식회사 | 광대역 무선 접속 시스템에서 상향링크 대역폭 요청 장치및 방법 |
US8984504B2 (en) | 2007-06-22 | 2015-03-17 | Red Hat, Inc. | Method and system for determining a host machine by a virtual machine |
US8665732B2 (en) | 2007-07-25 | 2014-03-04 | VoIPFuture, GmbH | VoIP diagnosis |
US7802057B2 (en) * | 2007-12-27 | 2010-09-21 | Intel Corporation | Priority aware selective cache allocation |
US8854966B2 (en) | 2008-01-10 | 2014-10-07 | Apple Inc. | Apparatus and methods for network resource allocation |
US8175863B1 (en) | 2008-02-13 | 2012-05-08 | Quest Software, Inc. | Systems and methods for analyzing performance of virtual environments |
US9396024B2 (en) * | 2008-10-14 | 2016-07-19 | Vmware, Inc. | Online computation of cache occupancy and performance |
US8429665B2 (en) * | 2010-03-19 | 2013-04-23 | Vmware, Inc. | Cache performance prediction, partitioning and scheduling based on cache pressure of threads |
US8627328B2 (en) | 2008-11-14 | 2014-01-07 | Oracle International Corporation | Operation control for deploying and managing software service in a virtual environment |
CN104883322B (zh) | 2009-01-16 | 2019-07-12 | 主线网络控股有限公司 | 经由网络通过计算机传输数据而同时避免阻塞的方法及连接至网络的计算系统 |
US9647918B2 (en) * | 2009-01-28 | 2017-05-09 | Headwater Research Llc | Mobile device and method attributing media services network usage to requesting application |
DE102009001821A1 (de) | 2009-03-24 | 2010-10-07 | Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik | Protokollbeschleunigungsmodul mit Paketweiterleitungsfunktion und Betriebsverfahren für einen Senderempfänger zur schnellen Weiterleitung von Datenpaketen |
US9817695B2 (en) * | 2009-04-01 | 2017-11-14 | Vmware, Inc. | Method and system for migrating processes between virtual machines |
US10191778B1 (en) * | 2015-11-16 | 2019-01-29 | Turbonomic, Inc. | Systems, apparatus and methods for management of software containers |
US8332688B1 (en) | 2009-07-21 | 2012-12-11 | Adobe Systems Incorporated | Failover and recovery of a computing application hosted by a virtual instance of a machine |
US8102881B1 (en) | 2009-09-08 | 2012-01-24 | Amazon Technologies, Inc. | Streamlined guest networking in a virtualized environment |
US8490150B2 (en) | 2009-09-23 | 2013-07-16 | Ca, Inc. | System, method, and software for enforcing access control policy rules on utility computing virtualization in cloud computing systems |
CN102045537A (zh) | 2009-10-23 | 2011-05-04 | 上海贝尔股份有限公司 | 连接视频会议系统和视频监控系统的方法和装置 |
CN102082703A (zh) | 2009-11-26 | 2011-06-01 | 中国移动通信集团贵州有限公司 | 业务支撑系统设备性能监控的方法及装置 |
JP5402581B2 (ja) | 2009-12-01 | 2014-01-29 | 富士通株式会社 | パケット中継装置および輻輳制御方法 |
US8966623B2 (en) | 2010-03-08 | 2015-02-24 | Vmware, Inc. | Managing execution of a running-page in a virtual machine |
EP2569916B1 (en) | 2010-05-09 | 2016-01-20 | Citrix Systems Inc. | Systems and methods for allocation of classes of service to network connections corresponding to virtual channels |
CN102255935B (zh) | 2010-05-20 | 2016-06-15 | 中兴通讯股份有限公司 | 云服务消费方法、云服务中介及云系统 |
US8327373B2 (en) * | 2010-08-24 | 2012-12-04 | Novell, Inc. | System and method for structuring self-provisioning workloads deployed in virtualized data centers |
US8364812B2 (en) | 2010-08-27 | 2013-01-29 | Sandvine Incorporated Ulc | Method and system for network data flow management |
US8595556B2 (en) | 2010-10-14 | 2013-11-26 | International Business Machines Corporation | Soft failure detection |
US8782240B2 (en) | 2010-10-18 | 2014-07-15 | Avaya Inc. | Resource allocation using shared resource pools |
US8630173B2 (en) | 2010-11-19 | 2014-01-14 | Cisco Technology, Inc. | Dynamic queuing and pinning to improve quality of service on uplinks in a virtualized environment |
US8718061B2 (en) | 2010-11-19 | 2014-05-06 | Industrial Technology Research Institute | Data center network system and packet forwarding method thereof |
US8745233B2 (en) | 2010-12-14 | 2014-06-03 | International Business Machines Corporation | Management of service application migration in a networked computing environment |
US8738972B1 (en) | 2011-02-04 | 2014-05-27 | Dell Software Inc. | Systems and methods for real-time monitoring of virtualized environments |
US9292329B2 (en) | 2011-02-10 | 2016-03-22 | Microsoft Technology Licensing, Llc | Virtual switch interceptor |
WO2012147116A1 (en) * | 2011-04-25 | 2012-11-01 | Hitachi, Ltd. | Computer system and virtual machine control method |
US8661182B2 (en) | 2011-05-26 | 2014-02-25 | Vmware, Inc. | Capacity and load analysis using storage attributes |
US8745214B2 (en) | 2011-06-03 | 2014-06-03 | Oracle International Corporation | System and method for collecting request metrics in an application server environment |
US8843924B2 (en) * | 2011-06-17 | 2014-09-23 | International Business Machines Corporation | Identification of over-constrained virtual machines |
US9766947B2 (en) | 2011-06-24 | 2017-09-19 | At&T Intellectual Property I, L.P. | Methods and apparatus to monitor server loads |
US9548936B2 (en) | 2011-06-30 | 2017-01-17 | The Chinese University Of Hong Kong | Method and system for improved TCP performance over mobile data networks |
CN102254021A (zh) | 2011-07-26 | 2011-11-23 | 北京市计算中心 | 基于虚拟机管理系统的数据库构建方法 |
GB2507229B (en) | 2011-07-26 | 2014-09-10 | Ibm | Managing workloads in a multiprocessing computer system |
US8909785B2 (en) * | 2011-08-08 | 2014-12-09 | International Business Machines Corporation | Smart cloud workload balancer |
US8867403B2 (en) | 2011-08-18 | 2014-10-21 | International Business Machines Corporation | Virtual network overlays |
US8689310B2 (en) | 2011-12-29 | 2014-04-01 | Ebay Inc. | Applications login using a mechanism relating sub-tokens to the quality of a master token |
US8996718B2 (en) | 2012-02-02 | 2015-03-31 | Apple Inc. | TCP-aware receive side coalescing |
US9319286B2 (en) * | 2012-03-30 | 2016-04-19 | Cognizant Business Services Limited | Apparatus and methods for managing applications in multi-cloud environments |
US9769085B2 (en) | 2012-05-04 | 2017-09-19 | Citrix Systems, Inc. | Systems and methods for adaptive application provisioning |
US8750288B2 (en) | 2012-06-06 | 2014-06-10 | Juniper Networks, Inc. | Physical path determination for virtual network packet flows |
JP6044131B2 (ja) | 2012-06-25 | 2016-12-14 | 富士通株式会社 | プログラム、管理サーバおよび仮想マシン移動制御方法 |
US20140007097A1 (en) * | 2012-06-29 | 2014-01-02 | Brocade Communications Systems, Inc. | Dynamic resource allocation for virtual machines |
US9256463B2 (en) | 2012-06-29 | 2016-02-09 | International Business Machines Corporation | Method and apparatus to replicate stateful virtual machines between clouds |
US10102097B2 (en) | 2012-07-12 | 2018-10-16 | International Business Machines Corporation | Transaction server performance monitoring using component performance data |
US9164808B2 (en) | 2012-07-20 | 2015-10-20 | Verizon Patent And Licensing Inc. | Virtual container for network systems |
US9513950B2 (en) * | 2012-07-25 | 2016-12-06 | Vmware, Inc. | Dynamic resource configuration based on context |
CN104854836B (zh) | 2012-09-04 | 2018-06-29 | 柏思科技有限公司 | 增加数据流传输的方法和系统 |
US9092445B2 (en) | 2012-09-06 | 2015-07-28 | Advanced Micro Devices, Inc. | Predictive information topology modeling and visualization |
US9612853B2 (en) | 2012-09-07 | 2017-04-04 | International Business Machines Corporation | Virtual machine monitoring in cloud infrastructures |
US9600307B1 (en) | 2012-09-11 | 2017-03-21 | EMC IP Holding Company LLC | Dynamic policy based placement of virtual machines within and across multiple data centers |
US9258313B1 (en) * | 2012-09-28 | 2016-02-09 | Juniper Networks, Inc. | Distributed application awareness |
US9160810B2 (en) | 2012-10-25 | 2015-10-13 | Red Hat Israel, Ltd. | Partitioning of a transmission control protocol window in a virtual system |
US9135051B2 (en) | 2012-11-02 | 2015-09-15 | Red Hat Israel, Ltd. | Redirecting guest-generated events to an event aggregator in a networked virtualization environment |
US9430257B2 (en) | 2013-01-03 | 2016-08-30 | Red Hat Israel, Inc. | Scheduling virtual machines using user-defined rules |
US20140196039A1 (en) | 2013-01-08 | 2014-07-10 | Commvault Systems, Inc. | Virtual machine categorization system and method |
US9131390B2 (en) | 2013-02-28 | 2015-09-08 | Verizon Patent And Licensing Inc. | Optimization of transmission control protocol (TCP) connections in a wireless network |
US9065734B2 (en) | 2013-03-08 | 2015-06-23 | Telefonaktiebolaget L M Ericsson (Publ) | Network bandwidth allocation in multi-tenancy cloud computing networks |
US10284627B2 (en) | 2013-03-29 | 2019-05-07 | Citrix Systems, Inc. | Data management for an application with multiple operation modes |
US9769288B2 (en) | 2013-04-06 | 2017-09-19 | Citrix Systems, Inc. | Systems and methods for dynamic receive buffering |
US20140313904A1 (en) | 2013-04-18 | 2014-10-23 | CrowdCare Corporation | System and Method of Device Based Cached Rules |
US9019826B2 (en) | 2013-05-07 | 2015-04-28 | Vmare, Inc. | Hierarchical allocation of network bandwidth for quality of service |
US20140372513A1 (en) | 2013-06-12 | 2014-12-18 | Cloudvu, Inc. | Multi-tenant enabling a single-tenant computer program product |
CN105493053B (zh) * | 2013-08-29 | 2019-06-11 | 英派尔科技开发有限公司 | 多核处理器及更新多核处理器中的高速缓存的方法 |
US9411702B2 (en) | 2013-08-30 | 2016-08-09 | Globalfoundries Inc. | Flexible and modular load testing and monitoring of workloads |
US10291472B2 (en) | 2015-07-29 | 2019-05-14 | AppFormix, Inc. | Assessment of operational states of a computing environment |
US10581687B2 (en) | 2013-09-26 | 2020-03-03 | Appformix Inc. | Real-time cloud-infrastructure policy implementation and management |
US9385959B2 (en) | 2013-09-26 | 2016-07-05 | Acelio, Inc. | System and method for improving TCP performance in virtualized environments |
US10355997B2 (en) | 2013-09-26 | 2019-07-16 | Appformix Inc. | System and method for improving TCP performance in virtualized environments |
WO2015058377A1 (zh) | 2013-10-23 | 2015-04-30 | 华为技术有限公司 | 一种创建虚拟机的方法和装置 |
CN105830392B (zh) * | 2013-10-23 | 2020-07-31 | 瑞典爱立信有限公司 | 用于能够实现资源组件分配的方法、节点和计算机程序 |
US9940111B2 (en) | 2013-12-18 | 2018-04-10 | Red Hat, Inc. | Policy-based application deployment to a target application platform system |
US9658869B2 (en) | 2014-01-06 | 2017-05-23 | International Business Machines Corporation | Autonomously managed virtual machine anti-affinity rules in cloud computing environments |
US9614745B2 (en) | 2014-01-09 | 2017-04-04 | Citrix Systems, Inc. | Systems and methods for cloud-based probing and diagnostics |
CN103744771A (zh) | 2014-01-28 | 2014-04-23 | 中国工商银行股份有限公司 | 一种监控主机性能基准偏差的方法、设备及系统 |
US9830190B1 (en) | 2014-02-28 | 2017-11-28 | Ca, Inc. | Maintaining repository of virtual machine state information |
US9641435B1 (en) | 2014-03-28 | 2017-05-02 | Juniper Neworks, Inc. | Packet segmentation offload for virtual networks |
JP2015194810A (ja) * | 2014-03-31 | 2015-11-05 | 富士通株式会社 | スケールアウト方法、システム、情報処理装置、管理装置及びプログラム |
US10097410B2 (en) | 2014-06-26 | 2018-10-09 | Vmware, Inc. | Methods and apparatus to scale application deployments in cloud computing environments |
US10275258B2 (en) | 2014-06-30 | 2019-04-30 | Vmware, Inc. | Systems and methods for enhancing the availability of multi-tier applications on cloud computing platforms |
WO2016029974A1 (en) * | 2014-08-29 | 2016-03-03 | Nec Europe Ltd. | Method for operating a virtual network infrastructure |
US9906454B2 (en) | 2014-09-17 | 2018-02-27 | AppFormix, Inc. | System and method for providing quality of service to data center applications by controlling the rate at which data packets are transmitted |
US9529619B2 (en) | 2014-09-30 | 2016-12-27 | Nicira, Inc. | Method of distributing network policies of virtual machines in a datacenter |
US20160103669A1 (en) | 2014-10-13 | 2016-04-14 | Nimal K. K. Gamage | Installing and Configuring a Probe in a Distributed Computing Environment |
US20170235677A1 (en) * | 2014-11-12 | 2017-08-17 | Hitach, Ltd. | Computer system and storage device |
EP3221788A1 (en) | 2014-11-21 | 2017-09-27 | Telefonaktiebolaget LM Ericsson (publ) | Monitoring of virtual machines in a data center |
JP2016103144A (ja) | 2014-11-28 | 2016-06-02 | 富士通株式会社 | 仮想マシン配備方法、仮想マシン配備プログラム及び仮想マシン配備システム |
US9495193B2 (en) | 2014-12-05 | 2016-11-15 | International Business Machines Corporation | Monitoring hypervisor and provisioned instances of hosted virtual machines using monitoring templates |
US9769050B2 (en) * | 2014-12-23 | 2017-09-19 | Intel Corporation | End-to-end datacenter performance control |
JP6447217B2 (ja) * | 2015-02-17 | 2019-01-09 | 富士通株式会社 | 実行情報通知プログラム、情報処理装置および情報処理システム |
US10133602B2 (en) * | 2015-02-19 | 2018-11-20 | Oracle International Corporation | Adaptive contention-aware thread placement for parallel runtime systems |
US10803175B2 (en) | 2015-03-06 | 2020-10-13 | Microsoft Technology Licensing, Llc | Device attestation through security hardened management agent |
US9465734B1 (en) * | 2015-04-08 | 2016-10-11 | Apple Inc. | Coalition based memory management |
US10536357B2 (en) | 2015-06-05 | 2020-01-14 | Cisco Technology, Inc. | Late data detection in data center |
US11483405B2 (en) | 2015-06-10 | 2022-10-25 | Platform9, Inc. | Private cloud as a service |
CN107534570B (zh) | 2015-06-16 | 2021-08-24 | 慧与发展有限责任合伙企业 | 用于虚拟化网络功能监控的计算机系统、方法和介质 |
US9619261B2 (en) * | 2015-06-29 | 2017-04-11 | Vmware, Inc. | Method and system for anticipating demand for a computational resource by containers running above guest operating systems within a distributed, virtualized computer system |
US9668136B2 (en) | 2015-09-25 | 2017-05-30 | Citrix Systems, Inc. | Using derived credentials for enrollment with enterprise mobile device management services |
US9942631B2 (en) * | 2015-09-25 | 2018-04-10 | Intel Corporation | Out-of-band platform tuning and configuration |
US10291654B2 (en) | 2015-09-30 | 2019-05-14 | Symantec Corporation | Automated construction of network whitelists using host-based security controls |
US9841986B2 (en) | 2015-10-27 | 2017-12-12 | Vmware, Inc. | Policy based application monitoring in virtualized environment |
US10015062B2 (en) * | 2015-11-23 | 2018-07-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Techniques for analytics-driven hybrid concurrency control in clouds |
US20170160744A1 (en) | 2015-12-08 | 2017-06-08 | Delphi Technologies, Inc. | Lane Extension Of Lane-Keeping System By Ranging-Sensor For Automated Vehicle |
US9942273B2 (en) | 2015-12-09 | 2018-04-10 | International Business Machines Corporation | Dynamic detection and reconfiguration of a multi-tenant service |
US9811471B2 (en) * | 2016-03-08 | 2017-11-07 | Dell Products, L.P. | Programmable cache size via class of service cache allocation |
US10061657B1 (en) | 2016-03-23 | 2018-08-28 | EMC IP Holding Company LLC | Application intelligent snapshot backups |
CN105897946B (zh) | 2016-04-08 | 2019-04-26 | 北京搜狐新媒体信息技术有限公司 | 一种访问地址的获取方法及系统 |
US10372498B2 (en) * | 2016-09-26 | 2019-08-06 | Intel Corporation | Dynamic virtual CPU core allocation |
US10187308B2 (en) * | 2016-09-30 | 2019-01-22 | Intel Corporation | Virtual switch acceleration using resource director technology |
US20180139100A1 (en) * | 2016-11-15 | 2018-05-17 | Nutanix, Inc. | Storage-aware dynamic placement of virtual machines |
US10346191B2 (en) * | 2016-12-02 | 2019-07-09 | Wmware, Inc. | System and method for managing size of clusters in a computing environment |
US20180173549A1 (en) * | 2016-12-16 | 2018-06-21 | Intel Corporation | Virtual network function performance monitoring |
CN106888254B (zh) | 2017-01-20 | 2020-08-18 | 华南理工大学 | 一种基于Kubernetes的容器云架构及其各模块之间的交互方法 |
US10841181B2 (en) * | 2017-02-24 | 2020-11-17 | Ciena Corporation | Monitoring and auto-correction systems and methods for microservices |
KR102028096B1 (ko) * | 2017-04-18 | 2019-10-02 | 한국전자통신연구원 | 하이퍼바이저 기반의 가상 머신 격리 장치 및 방법 |
-
2017
- 2017-10-30 US US15/797,098 patent/US11068314B2/en active Active
- 2017-12-29 CN CN201711497775.4A patent/CN108694068A/zh active Pending
-
2018
- 2018-01-23 EP EP18152882.9A patent/EP3382543B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080250415A1 (en) * | 2007-04-09 | 2008-10-09 | Ramesh Kumar Illikkal | Priority based throttling for power/performance Quality of Service |
US20080270199A1 (en) * | 2007-04-30 | 2008-10-30 | David Michael Chess | Methods and apparatus for management of heterogeneous workloads |
US20110149737A1 (en) * | 2009-12-23 | 2011-06-23 | Manikam Muthiah | Systems and methods for managing spillover limits in a multi-core system |
US20130332927A1 (en) * | 2011-02-23 | 2013-12-12 | Transoft (Shanghai), Inc. | System and method for managing resources in virtualized environment |
EP2687991A2 (en) * | 2012-07-19 | 2014-01-22 | LSI Corporation | Methods And Structure For Improved Flexibility In Shared Storage Caching By Multiple Systems Operating As Multiple Virtual Machines |
Non-Patent Citations (1)
Title |
---|
SUMEET SINGH: "《AppFormix: Realize The Performance Of Your Cloud Infrastructure》", 《INTEL CORPORATION》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726050A (zh) * | 2018-12-28 | 2019-05-07 | 杭州迪普科技股份有限公司 | 一种进程修复的方法和装置 |
CN109726050B (zh) * | 2018-12-28 | 2021-01-26 | 杭州迪普科技股份有限公司 | 一种进程修复的方法和装置 |
CN109756413B (zh) * | 2019-03-05 | 2021-01-12 | 浪潮云信息技术股份公司 | 一种云数据中心异构网络互联系统及方法 |
CN109756413A (zh) * | 2019-03-05 | 2019-05-14 | 山东浪潮云信息技术有限公司 | 一种云数据中心异构网络互联系统及方法 |
CN110990128A (zh) * | 2019-12-23 | 2020-04-10 | 北京元心科技有限公司 | 一种虚拟化加速方法、装置、存储器及设备 |
CN111580792A (zh) * | 2020-04-29 | 2020-08-25 | 上海航天计算机技术研究所 | 一种基于操作系统的高可靠星载软件架构设计方法 |
CN111752710A (zh) * | 2020-06-23 | 2020-10-09 | 中国电力科学研究院有限公司 | 数据中心pue动态优化方法、系统、设备及可读存储介质 |
CN111752710B (zh) * | 2020-06-23 | 2023-01-31 | 中国电力科学研究院有限公司 | 数据中心pue动态优化方法、系统、设备及可读存储介质 |
CN114157668A (zh) * | 2020-08-17 | 2022-03-08 | 中国电信股份有限公司 | 多租户跨集群的组网方法、通信系统和可读存储介质 |
CN114157668B (zh) * | 2020-08-17 | 2023-11-17 | 中国电信股份有限公司 | 多租户跨集群的组网方法、通信系统和可读存储介质 |
CN113709139A (zh) * | 2021-08-26 | 2021-11-26 | 江苏省未来网络创新研究院 | 基于NUMA架构的openstack东西向转发性能优化方法和系统 |
CN113709139B (zh) * | 2021-08-26 | 2023-03-24 | 江苏省未来网络创新研究院 | 基于NUMA架构的openstack东西向转发性能优化方法和系统 |
CN115658324A (zh) * | 2022-11-18 | 2023-01-31 | 统信软件技术有限公司 | 一种进程调度方法、计算设备及存储介质 |
CN116820686A (zh) * | 2023-08-29 | 2023-09-29 | 苏州浪潮智能科技有限公司 | 物理机的部署方法、虚拟机和容器统一监控的方法及装置 |
CN116820686B (zh) * | 2023-08-29 | 2024-01-09 | 苏州浪潮智能科技有限公司 | 物理机的部署方法、虚拟机和容器统一监控的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3382543B1 (en) | 2023-09-13 |
US11068314B2 (en) | 2021-07-20 |
EP3382543A1 (en) | 2018-10-03 |
US20180285166A1 (en) | 2018-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108694068A (zh) | 用于虚拟环境中的方法和系统 | |
US20220124013A1 (en) | Policy controller for distributed virtualization infrastructure element monitoring | |
CN113890826B (zh) | 用于计算机网络的方法、网络设备及存储介质 | |
US11316763B1 (en) | Network dashboard with multifaceted utilization visualizations | |
US11165631B1 (en) | Identifying a root cause of alerts within virtualized computing environment monitoring system | |
US11736560B2 (en) | Distributed network services | |
US11323327B1 (en) | Virtualization infrastructure element monitoring and policy control in a cloud environment using profiles | |
US11206200B1 (en) | Dashboard for graphic display of computer network topology | |
CN110659176B (zh) | 用于虚拟节点的分布式数据和控制平面的监测和策略控制 | |
US20210409282A1 (en) | Scalable control plane for telemetry data collection within a distributed computing system | |
US10892940B2 (en) | Scalable statistics and analytics mechanisms in cloud networking | |
US20230336447A1 (en) | Machine learning for metric collection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Juniper Networks, Inc. Address before: California, USA Applicant before: Jungle network |