CN110741351B - 确定虚拟化多处理系统的处理器利用率 - Google Patents

确定虚拟化多处理系统的处理器利用率 Download PDF

Info

Publication number
CN110741351B
CN110741351B CN201780092038.8A CN201780092038A CN110741351B CN 110741351 B CN110741351 B CN 110741351B CN 201780092038 A CN201780092038 A CN 201780092038A CN 110741351 B CN110741351 B CN 110741351B
Authority
CN
China
Prior art keywords
software process
processor core
software
computer
level
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.)
Active
Application number
CN201780092038.8A
Other languages
English (en)
Other versions
CN110741351A (zh
Inventor
周经森
李成栋
朱婉怡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN110741351A publication Critical patent/CN110741351A/zh
Application granted granted Critical
Publication of CN110741351B publication Critical patent/CN110741351B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本文描述的技术提供了一种用于确定具有操作系统级虚拟化的多处理处理器核心的CPU使用率的解决方案。识别与多处理处理器核一起操作的共存软件过程,并且将一个或多个容器识别为与该共存软件过程相关联。多处理处理器内核的CPU使用率归因于一个或多个容器。

Description

确定虚拟化多处理系统的处理器利用率
背景技术
多处理是指在单个计算系统中使用多个处理组件和/或系统支持多个进程和/或线程的能力,并在多个处理组件之间分配进程和/或线程。多核处理器是具有多个(通常是偶数个)独立物理处理器内核的单个计算组件。多核处理器被制造在单个集成电路晶片上(称为芯片多处理器或CMP),或者被制造在单个芯片封装中的多个晶片上。多线程是一种单处理器或多核处理器的单处理器内核可以同时执行多个线程的处理器的设计/能力。在多线程中,多个线程共享单个处理器内核的资源,例如计算单元、缓存和转译后备缓冲器(TLB)。从系统设计的角度来看,具有执行多个程序线程的能力的处理器内核称为多线程处理器内核,与在“硬件线程”中执行的程序线程相比,每个这样的处理器内核称为逻辑处理器或硬件线程。
从操作系统(OS)获得的CPU利用率是已经用于许多目的(如产品定型、计算机容量规划、作业调度等)的常用指标。然而,随着计算机体系结构设计(包括多处理系统,特别是超线程)的进步,操作系统报告的CPU利用率可能是不可靠的。
虚拟化是在同一硬件系统中复用多个虚拟机(或虚拟映像)的计算机体系结构。操作系统级虚拟化在主机操作系统和用户应用之间创建抽象层。例如,操作系统级虚拟化可以包括单个物理服务器和主机操作系统上的多个虚拟服务器(或容器),以利用例如数据中心的应用中的相同的硬件和软件资源。
附图简要说明
为了更清楚地描述本公开的实施例中的技术解决方案,本公开简要描述了附图。本申请中所描述的附图仅代表本公开的一些实施例,而本领域的任一普通技术人员无需付出任何创造性劳动即可从附图进一步获得其他附图。在不同的附图中使用相同的数字表示相似或相同的项。
图1示出了示例性多处理系统。
图2示出了包括多处理系统和操作系统级虚拟化的示例性计算系统。
图3示出了控制CPU资源分配的示例性系统。
图4示出了图3的示例性系统的示例性操作环境。
图5示出了控制CPU资源分配的示例性操作过程。
图6示出了控制CPU资源分配的示例性具体操作过程。
图7示出了控制CPU资源分配的另一详细的示例性操作过程。
具体实施方式
本公开提供了一种用于确定具有操作系统级虚拟化的多处理系统的处理器(CPU)利用率的解决方案。在下面的详细描述中,参考构成了本公开的一部分的附图,并通过举例,包括特定的配置或示例,说明了附图的内容。其中在整个附图中相同的数字表示相同元素。
图1示出了包括示例性对称多核处理单元105(“处理单元105”)的示例性多处理系统100,所述对称多核处理单元105包括多个(例如这里是四个)处理器内核110,每个处理器内核110都有自己的缓存“L1缓存”120。处理器内核110也共享缓存“L2缓存”130。每个处理器内核110都包含通过多个(在这里作为说明性示例,为2)硬件线程140的多线程处理能力。在这里的描述中,以处理单元105及其组件和操作为例说明了当前的技术解决方案。应当理解的是,本公开的范围不应限于多处理系统100和/或处理单元105的特定体系结构或任何其他特定的多处理系统体系结构。例如,处理器内核110可以是较低级别的处理器或CPU。在本公开中,术语“处理器”和“CPU”可以互换使用,并且在定义和解释上没有任何变化。此外,多处理系统100可以包括多层的多处理单元105,使得每个处理器内核110本身可以是较低级别的多处理单元105和/或每个多处理单元105可以是较高级别的多处理单元105的处理器内核110。例如,多处理系统100可包含在集群内紧密联接的多处理组件(例如,处理单元105和/或处理器内核110)的分层集群结构。在另一个示例中,多处理系统100和/或处理单元105可以是能够进行虚拟对称多处理的虚拟机(硬件级虚拟化)。在另一个示例中,多处理系统100是包括多层处理单元105和处理器内核110的对称多处理系统。所有现有和未来开发的多处理系统和体系结构都可以与当前公开一起使用,以确定处理器利用率并且分配计算资源,并且所有这些都包含在本公开中。
在本文的描述中,“处理器内核”是指任何具有多线程能力和/或多线程处理的计算组件,而“处理单元”是指具有多个处理器内核的多处理计算组件。术语“处理器使用量/利用率”和“CPU使用量/利用率”可以互换使用并且都是指指示处理器在一定时间段期间使用的时间量的度量,通常用百分比表示。
图2示出了包括多处理处理单元105和操作系统级虚拟化的示例计算系统200。如图2所示,计算系统200包括硬件层210和主机操作系统(OS)层220。硬件层210可以包括一个或更多个多处理单元105。虚拟层230位于主机OS层220(即,OS级虚拟化)内部并包括虚拟映像(虚拟机)240。每个虚拟映像240可以包括能够操作多个进程(PID)244(仅为了说明目的,这里每个虚拟服务器242被显示为具有两个PID244)的虚拟服务器242(例如,容器)。在本文的描述中,虚拟映像、虚拟机、容器和/或虚拟服务器可以互换使用,它们都不限制本公开的范围。为了简单起见,这里可以使用虚拟服务器242作为虚拟映像240的示例。
通过每个虚拟服务器242操作的软件进程244可以在同一处理器内核110的硬件线程140中执行,或者可以由不同处理器内核110的硬件线程140执行。例如如图2所示,虚拟服务器242A的两个PID 244A由同一处理器内核110A的硬件线程140A执行;虚拟服务器242B的PID 244B和虚拟服务器242C的PID 244C各自通过处理器内核110B的一个硬件线程140B执行。
此外,由于计算系统100/200的事件注册和分配方案复杂,虚拟服务器242中的软件进程PID 244可能在不同的硬件线程140和/或处理器内核110之间迁移。在多级虚拟化(例如,CPU虚拟化和OS级虚拟化的组合)的情况下,这样的复杂性可能会被进一步夸大。
1.示例性系统和环境
图3示出了用于控制计算资源分配的说明性示例计算系统300的各个方面的系统图。如图3所示,计算系统300可以包括包含计算机可执行指令的存储单元310,所述计算机可执行指令在被处理单元执行时配置处理单元以实现计算资源分配系统320。计算资源分配系统320可包括PID识别单元322、VM确定单元330、CPU使用量确定单元332和控制单元334。PID识别单元322还可以进一步包括事件检测单元324、多线程识别单元326和注册检索单元328。
计算系统300还可以包括一个或更多个处理单元(PU)340、一个或更多个接口单元350、一个或更多个联网单元360和其他组件370。
应当注意的是,系统300的单元可能位于单个计算设备(例如,一台PC)上,或者位于分布式计算环境/系统中的多个计算设备中,并且所有都包含在本公开中。不计算设备或分布式计算环境的详细信息不被需要来理解本公开,并且不限制公开的范围。
图4示出了计算资源分配系统320的示例操作环境400。如图4所示,计算资源分配系统320可以通过网络420与多个计算系统200通信。计算系统200中的一个或更多个可以包括多线程处理内核体系结构和操作系统(OS)级虚拟化,例如容器。图4示出了计算资源分配系统320与计算系统200远程地作用。然而,资源分配系统320也可以在物理上位于计算系统200内/与计算系统200共存。
在操作中,PID识别单元322通常可以被配置为识别在一段时间期间通过同一个处理器内核110进行操作的多个软件进程244。任何方法都可以在本申请中采用并所有方法都包含在本申请中。例如,在一段时间期间通过处理器内核110操作的多个软件进程244包括检测多个软件进程共享处理器内核110的硬件资源(例如,缓存)。在另一个示例中,PID识别单元322可以识别多个软件进程244,所述多个软件进程244是在处理器内核110下的多线程架构的同一级上被同时操作的。
在PID识别单元322内,事件检测单元324可以被配置为在采样间隔期间检测软件进程244向处理器内核110注册的注册事件,或者在采样间隔期间检测软件进程244被处理器内核110终止的终止事件。软件进程的注册/终止状态的确定可能是基于事件的。即,PID识别单元322及其单元不能用处理器内核110和/或其硬件线程140连续地监控软件进程244的注册和/或终止状态。相反,在通过事件检测单元324检测事件时检查软件进程244的注册/终止状态。
多线程识别单元326可以被配置为识别通过处理器内核110操作的所有共存软件进程244。在一个示例中,识别通过处理器内核110操作的所有共存软件进程244包括检测多个软件进程244共享处理器内核110的硬件资源(例如,L1缓存120)。
注册检索单元328可以被配置为确定软件进程244向处理器内核110的最新注册时间。在事件检测单元324检测到软件进程244的注册事件之后,可以记录并存储注册时间。值得注意的是,软件进程244可以向多个处理器内核110按顺序注册和/或终止,并且可以从一个处理器内核110迁移到另一个处理器内核110。注册检索单元328可以检索这些存储的注册时间,以确定软件进程244向处理器内核110的最新注册时间
可以将VM确定单元330配置为确定与多个软件进程244关联的一个或更多个操作系统(OS)级虚拟映像240(例如包括虚拟服务器242)。例如,如图2所示,进程PID 244B和244C是通过处理器内核110B共存的软件进程,虚拟服务器242B和242C被确定为分别与软件进程244B和244C相关联。
CPU使用量确定单元332可以被配置为基于一个或更多个OS级虚拟机242的计数来确定所述一个或更多个OS级虚拟机242中的每一个在一段时间内的CPU使用量。例如,CPU使用量确定单元332可以将CPU使用量平均归因于一个或更多个OS级虚拟机242中的每一个。因此,一个或更多个OS级虚拟机242中的每一个在一时间段内可以确定相同的CPU使用量。也就是说,CPU使用量是在容器级而不是在软件进程级确定的。如果两个OS级虚拟机242各自具有在一段时间期间通过同一个处理器内核110操作的至少一个软件进程244,则即使这两个OS级虚拟机可能具有通过同一处理器内核110同时操作的不同数量的软件进程244,这两个OS级虚拟机也将确定有相同量的CPU使用量。
控制单元334可以被配置为基于具有处理器内核110的一个或更多个OS级虚拟机的确定的CPU使用来控制处理器内核110的CPU注册的分配。
2.示例操作流
参照图5,图5示出了系统300示例操作过程500的示例流程图。在示例操作510中,PID识别单元322可以识别在第一时间段期间通过同一处理器内核110操作的多个软件进程244。任何方法均可用于识别,并且所有方法均包含在本公开中。在一个示例中,识别在第一时间段期间通过同一处理器内核110操作的多个软件进程244包括检测多个软件进程244共享处理器内核110的硬件资源。在另一个示例中,PID识别单元322可以识别在处理器内核110下的多线程架构的同一级下同时操作的多个软件进程244。举例说明,以图2为例,PID识别单元322可以识别通过同一处理器内核110A操作的两个软件进程244A和通过同一处理器内核110B操作的软件进程244B和244C。任何方法都可以设置第一时间段并且包括所有方法。在一个示例中,第一时间段可以包含在采样间隔内,并且可以与采样间隔完全交叠。
在示例操作520中,VM确定单元330可以确定与多个软件进程244相关联的一个或更多个操作系统(OS)级虚拟映像/虚拟机240(例如包括虚拟服务器242)。任何方法可用于确定与软件进程244相关联的虚拟机242,所有这些方法都包含在本公开中。如图2所示,举例说明,软件进程PID 244B和PID 244C与虚拟服务器242B和242C相关联,两个PID 244A与虚拟服务器242A相关联。
应当注意的是,出于示例操作510、520的目的而收集数据的任何和所有方法都可以使用,而且所有方法都包括在本公开中。例如,可以使用基于Windows和/或基于Unix的实时性能监视工具和/或基于日志的性能监视工具来收集关于线程140和/或处理器内核110的进程244和/或虚拟机242的系统操作/CPU注册数据。本公开并不限于以任何特定的方式的数据收集和/或收集的数据将用于操作。
在示例操作530中,CPU使用量确定单元332可以根据一个或更多个OS级虚拟机240的计数来确定所述一个或更多个OS级虚拟机240中的每一个在第一时间间隔内的CPU使用量。例如,CPU使用量确定单元332可以在第一时间间隔内将CPU使用量平均归因于一个或更多个OS级虚拟机240中的每一个。举例来说,在图2中,OS级虚拟服务器242B和242C各自包括在一段时间期间通过同一处理器内核110B操作的至少一个软件进程244(PID 244B和PID244C)。根据虚拟机240的计数,即,两个,这两个OS级虚拟机240将在一段时间内确定相同量的CPU使用量,例如,处理器内核110B的50%的CPU使用量。同样以图2为例,虚拟服务器242A的两个软件进程PID 244A在同一处理器内核110A下操作一段时间。基于所涉及的虚拟机的计数数量,这里,一个虚拟机,处理器内核110A的100%的CPU使用量可能在一段时间内归因于虚拟服务器242A。
在示例操作540中,控制单元334可以根据一个或更多个OS级虚拟机240/242的确定的CPU使用量来控制处理器内核110的CPU注册的分配。控制单元334可以使用虚拟机242所确定的CPU使用量,以各种方式控制分配给虚拟机242的CPU注册,所有这些都包含在本公开中。例如,如果虚拟机242具有一定数量的CPU使用量作为容器协议的一部分,则所确定的CPU使用量(和/或其累积)可用于确定虚拟机242可访问的剩余计算资源。对于另一个示例,所确定的CPU使用量(和/或其积累)可用于对有权访问虚拟机242的硬件计算资源进行优先级排序和/或取消优先级。
图6给出了计算资源分配系统320的详细操作过程。在示例操作610中,事件检测单元324可以在采样间隔期间检测软件进程244向处理器内核110注册的注册事件。对于说明性示例,在采样间隔t0至t2内的时间点t1,事件检测单元324可以检测到向处理器内核110B注册的软件进程PID 244B。在一个示例中,将采样间隔设置为小于阈值时间间隔,在该阈值时间间隔期间,软件进程244能够从一个硬件线程140迁移到另一个硬件线程140。
在示例操作620中,事件检测单元324可以识别采样间隔(例如,t0到t2)的在注册事件(例如,在t1)之后的第一部分(例如,t1到t2)作为第一时间段。
在示例操作630中,多线程识别单元326可以识别与新注册的软件进程244通过同一处理器内核110操作的所有共存的软件进程244。在一个示例中,通过处理器内核110操作的所有共存的软件进程244都包括检测软件进程244共享处理器内核110的硬件资源(例如,缓存)。这里,遵循此示例,多线程识别单元326可以识别出软件进程PID 244C是与新注册的软件进程PID 244B通过同一个处理器内存110B操作的共存软件进程。
在示例操作640中,可以确定新注册的软件进程244和已识别的共存软件进程244是否与同一虚拟机242关联。如图5所示,示例操作520可以确定与多个软件进程244关联的一个或更多个OS级虚拟机242。这里,遵循这个示例,可以确定软件进程PID 244B与虚拟服务器242B相关联,并且软件进程PID 244C与虚拟服务器242C相关联。这两个软件进程244不与同一虚拟机242关联。
在两个软件进程没有关联到同一个虚拟机242的情况下,操作转到示例操作650,其中,注册检索单元328可以确定共存软件进程244向处理器内核110的最新注册时间。在一个示例中,确定共存软件进程244向处理器内核110的最新注册时间被限制在采样间隔内。
遵循说明性示例,对于共存软件进程244C,注册检索单元328可以检索向处理器内核110B的最新注册时间tr。如果tr早于t0,则可以使用相关采样间隔的起始点t0作为共存软件进程244C的最新注册时间。
在示例操作660中,CPU使用量确定单元332可以基于共存软件进程244所涉及的虚拟机的计数来确定虚拟机的CPU使用量(新注册的软件进程244本身就是共存软件进程)。对于第一时间段t1到t2,将处理器内核110B的CPU使用量至少归因于共存软件进程PID 244C的OS级虚拟机242C和新注册的软件进程PID 244B的OS级虚拟机244B。例如,对于第一时间段t1到t2,相同数量的处理器内核110B的CPU使用量的50%可以被归因于虚拟服务器242B和虚拟服务器242C中的每一个。
对于在新注册的软件进程PID 244B的注册事件(t1)之前和共存软件进程PID244C的最近注册时间(t0)之后的采样间隔的第二部分,即,t0到t1,处理器内核110B的CPU使用量至少归因于共存软件进程PID 244C的OS级虚拟机242C。
图7给出了计算资源分配系统320的另一个详细操作过程。在示例操作710中,事件检测单元324可以在采样间隔内检测到软件进程244被一个处理器内核110终止的终止事件。对于说明性示例,同样参照图2,在采样间隔t0至t2内的时间点t1,事件检测单元324可以检测到软件进程PID 244A被处理器内核110A结束。
在示例操作720中,事件检测单元324可以识别采样间隔(例如,t0到t2)的在终止事件(例如,在t1)之前的第一部分(例如,在t0到t1点)作为第一时间段。
在示例操作730中,多线程识别单元326可以识别所有共存的软件进程244,这些软件进程244作为终止的软件进程244通过相同的处理器内核110操作。在一个示例中,识别通过处理器内核110操作的所有共存的软件进程244包括检测多个软件进程244共享处理器内核110的硬件资源。这里,遵循该示例,多线程识别单元326可以识别另一个软件进程PID244A是与新终止的软件进程PID 244A一起通过相同的处理器内核110A操作的共存的软件进程。
在示例操作740中,可以确定新终止的软件进程244和已识别的共存软件进程244是否与同一虚拟机242相关联。如图5所示,示例操作520可以确定与多个软件进程244关联的一个或更多个OS级虚拟机242。这里,遵循这个示例,可以确定新终止的软件进程PID244A和共存的软件进程PID 244A与同一个虚拟服务器242A相关联。
在新终止的软件进程244不与同一OS级虚拟机242相关联并且具有任一个共存的软件进程244的情况下,操作进程可以行进至示例操作750。在示例操作750中,在确定处理器内核110的CPU使用量时,将已终止的软件进程244的OS级虚拟机242从一个或更多个OS级虚拟机242的计数中移除。对于说明性示例,参照图2,软件进程PID 244B和PID 244C是通过处理器内核110B操作的共存软件进程。在PID244B被处理器内核110B终止的情况下,可以将与PID 244B相关联的虚拟服务器242B从OS级虚拟服务器242的计数中移除,并且处理器内核110B的100%的CPU使用量可以归因于PID 244C的虚拟服务器242C。
在新终止的软件进程244与至少一个共存软件进程244关联到同一个虚拟机242的情况下,在示例操作760中,在第一时间段内,相同的CPU使用量可以归因于相同的OS级虚拟机242。对于说明性示例,即使软件进程PID 244A中的一个被处理器内核110A终止,虚拟服务器242A的另一个软件PID 244A仍然被处理器内核110A操作,因此同样地,100%的CPU使用量归因于虚拟服务器242A。
以上与图5至图7相关联地描述的操作可以在硬件、软件或它们的组合中实现。在软件的上下文中,操作代表存储在一个或更多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令在被一个或更多个处理器执行时执行所述的操作。通常,计算机可执行指令包括执行特定的函数或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等。在其他实施例中,硬件组件执行一个或更多个操作。这样的硬件组件可以包括或被合并到处理器、专用集成电路(ASIC)、诸如现场可编程门阵列(FPGA)这样的可编程电路或其他方式。操作被描述的顺序并非被解释为一种限制,而是所描述的任何数量的操作都可以以任何顺序和/或并行地组合以实现上述操作。
存储器可以包括计算机可读介质,诸如易失性存储器(诸如随机存取存储器(RAM))和/或非易失性存储器(诸如只读存储器(ROM)或闪存),等等。存储器是计算机可读介质的示例。
计算机可读介质包括非易失性的、易失性的、可移动的和非移动的媒介,并且可以通过任何方法或技术实现信息存储。这些信息可以是计算机可读的指令、数据结构、程序模块或其他数据。计算机存储介质的示例包括但不限于相变RAM(PRAM)、静态RAM(SRAM)、动态RAM(DRAM)、其他类型的RAM、ROM、电可擦可编程只读存储器(EEPROM)、闪存或其他内存技术、光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储器、磁带、磁带和磁盘存储器或其他磁存储设备或任何其他非传输媒介,并且可以用于存储可进入计算设备的信息。根据本文中的限定,计算机可读介质不包括暂时性介质,诸如调制的数据信号和载波等。
还应指出,术语“包括”、“包含”或其任何变体旨在包括非排他性的包含,使得包括一系列的要素的过程、方法、产品或设备不仅包括这些要素,而且包括未明确指定的其他要素,或者可进一步包括所述过程、方法、产品或设备的固有要素。在没有更多的限制的情况下,被“包括一/一个…”限定的要素不排除在包含该要素的过程、方法、产品或设备中存在其他相同的要素。
上述只是本申请的示例,其并非用于限制本申请。对于本领域技术人员来说,本申请可以具有各种变化和改变。在本申请的精神和原则范围内做出的任何修正、等同替换、改进等应包括在本申请的权利要求的范围内。
本公开可以利用以下条款来理解:
条款1:一种计算机实现的系统,该计算机实现的系统包括:一个或更多个处理器;以及计算机可读存储介质,该计算机可读存储介质在通信上与所述一个或更多个处理器联接,所述计算机可读存储介质中存储有计算机可执行的指令,所述指令在被执行时配置所述一个或更多个处理器以实现计算资源分配系统,所述计算资源分配系统能够进行操作以:识别在第一时间段期间通过处理器内核操作的多个软件进程;确定与所述多个软件进程关联的一个或更多个操作系统(OS)级虚拟机;以及基于所述一个或更多个OS级虚拟机的计数来确定所述一个或更多个OS级虚拟机中的每一个在所述第一时间段的CPU使用量。
条款2:根据条款1所述的计算机实现的系统,其中,所述计算资源分配系统能够进一步进行操作以基于所述一个或更多个OS级虚拟机的CPU使用量来控制所述处理器内核的CPU注册。
条款3:根据条款1所述的计算机实现的系统,其中,识别所述多个软件进程包括:在采样间隔期间检测软件进程被新注册到所述处理器内核的注册事件;将所述采样间隔的在所述注册事件之后的第一部分识别为第一时间段;识别通过所述处理器内核操作的共存软件进程;确定所述共存软件进程和新注册的软件进程是否与同一OS级虚拟机相关联;以及在所述共存软件进程与所述新注册的软件进程不与同一OS级虚拟机相关联的情况下,确定所述共存软件进程向所述处理器内核的最新注册时间。
条款4:根据条款3所述的计算机实现的系统,其中,确定所述共存软件进程向所述处理器内核的最新注册时间被限制在所述采样间隔内。
条款5:根据条款3所述的计算机实现的系统,其中,对于所述采样间隔的在所述注册事件之前和在所述共存软件进程的所述最新注册时间之后的第二部分,将所述处理器内核的CPU使用量至少归因于所述共存软件进程的OS级虚拟机;并且对于所述第一时间段,将所述处理器内核的CPU使用量至少归因于所述共存软件进程的OS级虚拟机和所述新注册的软件进程的OS级虚拟机。
条款6:根据条款1所述的计算机实现的系统,其中,基于所述一个或更多个OS级虚拟机的计数来确定所述一个或更多个OS级虚拟机中的每一个在所述第一时间段的CPU使用量包括针对所述第一时间段将所述CPU使用量平均归因于所述一个或更多个OS级虚拟机中的每一个。
条款7:根据条款1所述的计算机实现的系统,其中,所述多个软件进程在所述处理器内核下的多线程架构的同一级上同时操作。
条款8:根据条款1所述的计算机实现的系统,其中,识别在所述第一时间段期间通过所述处理器内核操作的所述多个软件进程包括检测所述多个软件进程共享所述处理器内核的硬件资源。
条款9:根据条款3所述的计算机实现的系统,其中,所述采样间隔被设置为小于阈值时间间隔,在该阈值时间间隔期间,软件进程能够从一个硬件线程迁移到另一个硬件线程。
条款10:根据条款1所述的计算机实现的系统,其中,所述计算实现的系统包括包含多层的处理单元和处理器内核的对称多处理系统。
条款11:根据条款1所述的计算机实现的系统,其中,识别所述多个软件进程包括:在采样间隔期间检测软件进程被所述处理器内核终止的终止事件;将所述采样间隔的在所述终止事件之前的第一部分识别为所述第一时间段;识别通过所述处理器内核操作的共存软件进程;以及确定所述共存软件进程和终止的软件进程是否与同一OS级虚拟机相关联。
条款12:根据条款11所述的计算机实现的系统,其中,在所述共存软件进程和所述终止的软件进程与同一OS级虚拟机相关联的情况下,在所述采样间隔的在所述终止事件之后的第二部分中,将相同部分的CPU使用量归因于相同的OS级虚拟机。
条款13:根据条款11所述的计算机实现的系统,其中,在所有共存软件进程都不与同一OS级虚拟机相关联并且作为所述终止的软件进程的情况下,在确定所述处理器内核的CPU使用量时将所述终止的软件进程的OS级虚拟机从所述一个或更多个OS级虚拟机的计数中移除。
条款14:一种方法,该方法包括:识别在第一时间段内通过计算系统的处理器内核操作的多个软件进程;确定与所述多个软件进程关联的一个或更多个操作系统(OS)级虚拟化映像;以及在所述一个或更多个OS级虚拟化映像中平均确定与所述处理器内核相关联的计算资源的使用量。
条款15:根据条款14所述的方法,其中,识别所述多个软件进程包括:在采样间隔期间检测软件进程被新注册到所述处理器内核的注册事件;将所述采样间隔的在所述注册事件之后的第一部分识别为第一时间段;识别通过所述处理器内核操作的共存软件进程;确定所述共存软件进程与所述新注册的软件进程是否与同一OS级虚拟化映像相关联;以及在所述共存软件进程与所述新注册的软件进程不与同一OS级虚拟化映像相关联的情况下,确定所述共存软件进程向所述处理器内核的最新注册时间。
条款16:根据条款14所述的方法,其中,对于所述采样间隔的在所述注册事件之前和在所述共存软件进程的所述最新注册时间之后的第二部分,将所述处理器内核的CPU使用量至少归因于所述共存软件进程的OS级虚拟化映像;并且对于所述第一时间段,将所述处理器内核的CPU使用量至少归因于所述共存软件进程的OS级虚拟化映像和所述新注册软件进程的OS级虚拟化映像。
条款17:根据条款14所述的方法,其中,识别在所述第一时间段期间通过所述处理器内核操作的所述多个软件进程包括检测所述多个软件进程共享所述处理器内核的硬件资源。
条款18:根据条款14所述的方法,其中,识别所述多个软件进程包括:在采样间隔期间检测软件进程被所述处理器内核终止的终止事件;将所述采样间隔的在所述终止事件之前的第一部分识别为所述第一时间段;识别通过所述处理器内核操作的共存软件进程;以及确定所述共存的软件进程和终止的软件进程是否与同一OS级虚拟化映像相关联。
条款19:根据条款18所述的方法,其中,在所述共存软件进程和所述终止的软件进程与同一OS级虚拟化映像相关联的情况下,在所述采样间隔的在所述终止事件之后的第二部分中,将相同部分的CPU使用量归因于相同的OS级虚拟化映像。
条款20:一种数据中心应用的服务器,所述服务器包括:处理器;以及与所述处理器在通信上联接的存储器,所述存储器中存储有计算机可执行的指令,所述指令在被执行时配置所述处理器以实现以下操作:识别在第一时间段期间通过执行所述数据中心应用的处理器内核操作的多个软件进程;确定与所述多个软件进程相关联的一个或更多个容器;以及针对所述第一时间段将相同数量的系统资源使用量归因于所述一个或更多个容器中的每一个。
条款21:一种方法,该方法包括:识别在一时间段期间通过计算系统的处理器内核操作的多个软件进程;确定与所述多个软件进程相关联的一个或更多个容器;基于所述容器的计数来确定所述一个或更多个容器中的每一个在所述时间段内的CPU使用量;以及基于所述容器的所确定的CPU使用量来控制CPU资源的分配。
条款22:根据条款21所述的方法,其中,基于所述容器的所确定的CPU使用量来控制CPU资源的分配包括:基于所述容器的所确定的CPU使用量来控制CPU注册的分配。
条款23:根据条款22所述的方法,其中,所述CPU注册包括向所述处理器内核注册软件进程。

Claims (23)

1.一种计算机实现的系统,该计算机实现的系统包括:
一个或更多个处理器;以及
计算机可读存储介质,该计算机可读存储介质在通信上与所述一个或更多个处理器联接,所述计算机可读存储介质中存储有计算机可执行的指令,所述指令在被执行时配置所述一个或更多个处理器以实现计算资源分配系统,所述计算资源分配系统能够进行操作以:
识别在第一时间段期间通过处理器内核操作的多个软件进程;
确定与所述多个软件进程关联的一个或更多个操作系统(OS)级虚拟机;以及
基于所述一个或更多个OS级虚拟机的计数来确定所述一个或更多个OS级虚拟机中的每一个在所述第一时间段的CPU使用量。
2.根据权利要求1所述的计算机实现的系统,其中,所述计算资源分配系统能够进一步进行操作以基于所述一个或更多个OS级虚拟机的CPU使用量来控制所述处理器内核的CPU注册。
3.根据权利要求1所述的计算机实现的系统,其中,识别所述多个软件进程包括:
在采样间隔期间检测软件进程被新注册到所述处理器内核的注册事件;
将所述采样间隔的在所述注册事件之后的第一部分识别为第一时间段;
识别通过所述处理器内核操作的共存软件进程;
确定所述共存软件进程和新注册的软件进程是否与同一OS级虚拟机相关联;以及
在所述共存软件进程与所述新注册的软件进程不与同一OS级虚拟机相关联的情况下,确定所述共存软件进程向所述处理器内核的最新注册时间。
4.根据权利要求3所述的计算机实现的系统,其中,确定所述共存软件进程向所述处理器内核的最新注册时间被限制在所述采样间隔内。
5.根据权利要求3所述的计算机实现的系统,其中,
对于所述采样间隔的在所述注册事件之前和在所述共存软件进程的所述最新注册时间之后的第二部分,将所述处理器内核的CPU使用量至少归因于所述共存软件进程的OS级虚拟机;并且
对于所述第一时间段,将所述处理器内核的CPU使用量至少归因于所述共存软件进程的OS级虚拟机和所述新注册的软件进程的OS级虚拟机。
6.根据权利要求1所述的计算机实现的系统,其中,基于所述一个或更多个OS级虚拟机的计数来确定所述一个或更多个OS级虚拟机中的每一个在所述第一时间段的CPU使用量包括针对所述第一时间段将所述CPU使用量平均归因于所述一个或更多个OS级虚拟机中的每一个。
7.根据权利要求1所述的计算机实现的系统,其中,所述多个软件进程在所述处理器内核下的多线程架构的同一级上同时操作。
8.根据权利要求1所述的计算机实现的系统,其中,识别在所述第一时间段期间通过所述处理器内核操作的所述多个软件进程包括检测所述多个软件进程共享所述处理器内核的硬件资源。
9.根据权利要求3所述的计算机实现的系统,其中,所述采样间隔被设置为小于阈值时间间隔,在该阈值时间间隔期间,软件进程能够从一个硬件线程迁移到另一个硬件线程。
10.根据权利要求1所述的计算机实现的系统,其中,所述计算实现的系统包括包含多层的处理单元和处理器内核的对称多处理系统。
11.根据权利要求1所述的计算机实现的系统,其中,识别所述多个软件进程包括:
在采样间隔期间检测软件进程被所述处理器内核终止的终止事件;
将所述采样间隔的在所述终止事件之前的第一部分识别为所述第一时间段;
识别通过所述处理器内核操作的共存软件进程;以及
确定所述共存软件进程和终止的软件进程是否与同一OS级虚拟机相关联。
12.根据权利要求11所述的计算机实现的系统,其中,在所述共存软件进程和所述终止的软件进程与同一OS级虚拟机相关联的情况下,在所述采样间隔的在所述终止事件之后的第二部分中,将相同部分的CPU使用量归因于相同的OS级虚拟机。
13.根据权利要求11所述的计算机实现的系统,其中,在所有共存软件进程都不与同一OS级虚拟机相关联并且作为所述终止的软件进程的情况下,在确定所述处理器内核的CPU使用量时将所述终止的软件进程的OS级虚拟机从所述一个或更多个OS级虚拟机的计数中移除。
14.一种计算机实现的方法,该方法包括:
识别在第一时间段内通过计算系统的处理器内核操作的多个软件进程;
确定与所述多个软件进程关联的一个或更多个操作系统(OS)级虚拟化映像;以及
在所述一个或更多个OS级虚拟化映像中平均确定与所述处理器内核相关联的计算资源的使用量。
15.根据权利要求14所述的方法,其中,识别所述多个软件进程包括:
在采样间隔期间检测软件进程被新注册到所述处理器内核的注册事件;
将所述采样间隔的在所述注册事件之后的第一部分识别为第一时间段;
识别通过所述处理器内核操作的共存软件进程;
确定所述共存软件进程与所述新注册的软件进程是否与同一OS级虚拟化映像相关联;以及
在所述共存软件进程与所述新注册的软件进程不与同一OS级虚拟化映像相关联的情况下,确定所述共存软件进程向所述处理器内核的最新注册时间。
16.根据权利要求14所述的方法,其中,
对于采样间隔的在注册事件之前和在共存软件进程的最新注册时间之后的第二部分,将所述处理器内核的CPU使用量至少归因于所述共存软件进程的OS级虚拟化映像;并且
对于所述第一时间段,将所述处理器内核的CPU使用量至少归因于所述共存软件进程的OS级虚拟化映像和新注册软件进程的OS级虚拟化映像。
17.根据权利要求14所述的方法,其中,识别在所述第一时间段期间通过所述处理器内核操作的所述多个软件进程包括检测所述多个软件进程共享所述处理器内核的硬件资源。
18.根据权利要求14所述的方法,其中,识别所述多个软件进程包括:
在采样间隔期间检测软件进程被所述处理器内核终止的终止事件;
将所述采样间隔的在所述终止事件之前的第一部分识别为所述第一时间段;
识别通过所述处理器内核操作的共存软件进程;以及
确定所述共存的软件进程和终止的软件进程是否与同一OS级虚拟化映像相关联。
19.根据权利要求18所述的方法,其中,在所述共存软件进程和所述终止的软件进程与同一OS级虚拟化映像相关联的情况下,在所述采样间隔的在所述终止事件之后的第二部分中,将相同部分的CPU使用量归因于相同的OS级虚拟化映像。
20.一种用于数据中心应用的服务器,所述服务器包括:
处理器;以及
与所述处理器在通信上联接的存储器,所述存储器中存储有计算机可执行的指令,所述指令在被执行时配置所述处理器以实现以下操作:
识别在第一时间段期间通过执行所述数据中心应用的处理器内核操作的多个软件进程;
确定与所述多个软件进程相关联的一个或更多个容器;以及
针对所述第一时间段将相同数量的系统资源使用量归因于所述一个或更多个容器中的每一个。
21.一种用于数据中心应用的方法,该方法包括:
识别在一时间段期间通过计算系统的处理器内核操作的多个软件进程;
确定与所述多个软件进程相关联的一个或更多个容器;
基于所述容器的计数来确定所述一个或更多个容器中的每一个在所述时间段内的CPU使用量;以及
基于所述容器的所确定的CPU使用量来控制CPU资源的分配。
22.根据权利要求21所述的方法,其中,基于所述容器的所确定的CPU使用量来控制CPU资源的分配包括:
基于所述容器的所确定的CPU使用量来控制CPU注册的分配。
23.根据权利要求22所述的方法,其中,所述CPU注册包括向所述处理器内核注册软件进程。
CN201780092038.8A 2017-06-16 2017-06-16 确定虚拟化多处理系统的处理器利用率 Active CN110741351B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/088619 WO2018227549A1 (en) 2017-06-16 2017-06-16 Determining processor utilization of multiprocessing system with virtualization

Publications (2)

Publication Number Publication Date
CN110741351A CN110741351A (zh) 2020-01-31
CN110741351B true CN110741351B (zh) 2023-05-09

Family

ID=64659502

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780092038.8A Active CN110741351B (zh) 2017-06-16 2017-06-16 确定虚拟化多处理系统的处理器利用率

Country Status (2)

Country Link
CN (1) CN110741351B (zh)
WO (1) WO2018227549A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007048062A2 (en) * 2005-10-21 2007-04-26 Vir2Us, Inc. Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
CN102402458A (zh) * 2010-10-01 2012-04-04 微软公司 具有非对称处理器核的系统上的虚拟机和/或多级调度支持
EP2799990A2 (en) * 2013-05-03 2014-11-05 VMWare, Inc. Dynamic virtual machine sizing
CN106055384A (zh) * 2009-07-20 2016-10-26 谷歌技术控股有限责任公司 多环境操作系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7886172B2 (en) * 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
CN100511151C (zh) * 2007-12-05 2009-07-08 华为技术有限公司 多路多核服务器及其cpu的虚拟化处理方法
US8341638B2 (en) * 2008-09-30 2012-12-25 International Business Machines Corporation Delegated virtualization across physical partitions of a multi-core processor (MCP)
US20120096462A1 (en) * 2010-10-18 2012-04-19 Electronics And Telecommunications Research Institute Dynamic virtualization technique for multicore processor system
JP6111181B2 (ja) * 2013-10-31 2017-04-05 株式会社日立製作所 計算機の制御方法及び計算機

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007048062A2 (en) * 2005-10-21 2007-04-26 Vir2Us, Inc. Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
CN106055384A (zh) * 2009-07-20 2016-10-26 谷歌技术控股有限责任公司 多环境操作系统
CN102402458A (zh) * 2010-10-01 2012-04-04 微软公司 具有非对称处理器核的系统上的虚拟机和/或多级调度支持
EP2799990A2 (en) * 2013-05-03 2014-11-05 VMWare, Inc. Dynamic virtual machine sizing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Felipe Fernandes等."A virtual machine scheduler based on CPU and I/O-bound features for energy-aware in high performance computing clouds".《Computers &amp Electrical Engineering》.2016,第56卷第854-870页. *
丁晓波等."一种基于资源预分配的虚拟机软实时调度方法".《计算机工程与科学》.2015,第37卷(第5期),第865-872页. *

Also Published As

Publication number Publication date
WO2018227549A1 (en) 2018-12-20
CN110741351A (zh) 2020-01-31

Similar Documents

Publication Publication Date Title
JP6924820B2 (ja) ワーキングセットおよびスレッドの関連付け
US10061610B2 (en) CPU scheduler configured to support latency sensitive virtual machines
US11340945B2 (en) Memory congestion aware NUMA management
US9727355B2 (en) Virtual Hadoop manager
KR101850318B1 (ko) 가상 메모리 관리 장치 및 방법
US9418005B2 (en) Managing garbage collection in a data processing system
Azimi et al. Enhancing operating system support for multicore processors by using hardware performance monitoring
US8271990B2 (en) Removing operating system jitter-induced slowdown in virtualized environments
US20090165007A1 (en) Task-level thread scheduling and resource allocation
US8645963B2 (en) Clustering threads based on contention patterns
CN106104479B (zh) 多线程计算机系统中的闲置时间累积
US9916172B2 (en) Method and apparatus for recovering lock holder preemption
US10394608B2 (en) Prioritization of low active thread count virtual machines in virtualized computing environment
US7631125B2 (en) Dynamically migrating channels
CN106415512A (zh) 存储器管理算法的动态选择
CN110741351B (zh) 确定虚拟化多处理系统的处理器利用率
US8793464B2 (en) Memory management in multi-threaded multi-processor computing system
US8689230B2 (en) Determination of running status of logical processor
CN110928649A (zh) 资源调度的方法和装置
JP5625379B2 (ja) ロック競合管理装置、ロック競合管理方法およびプログラム
CN112256395A (zh) 安全内存分配、虚拟cpu调度方法及相关装置
KR101284195B1 (ko) 개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치
US20240152453A1 (en) Mitigation of garbage collection overhead
Shan et al. APLE: Addressing lock holder preemption problem with high efficiency
US20140040588A1 (en) Non-transactional page in memory

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231130

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Aliyun Computing Co.,Ltd.

Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK

Patentee before: ALIBABA GROUP HOLDING Ltd.