Hyper-V性能监控:

物理CPU: \Hyper-V Hypervisor Logical Processor(*)\%Total Run Time

%Total Run Time :处理器处理来宾代码和虚拟机监控程序代码所花费时间的百分比

%Total Run Time = %Guest Run Time + %Hypervisor Run Time

虚拟CPU: \Hyper-V Hypervisor Virtual Processor(*)\%Guest Run Time

根分区CPU: \Hyper-V Hypervisor Root Virtual Processor(_Total)\%Total Run Time  (注:宿主机本身其实也是一台虚机,该虚机的配置=宿主机本身配置)

Hypervisor\Logical Processors:8 宿主机所有CPU核心总数量

Hypervisor\Virtual Processors:20=4C*3+8 > 8(3台运行中VM,每个VM 4vC,宿主8vC)

Hypervisor\Partitions :4=3+1 (3运行中VM+1根分区)

Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time:物理CPU总体使用率,可用
Hyper-V Hypervisor Logical Processor(_Total)\% Guest Run Time
Hyper-V Hypervisor Logical Processor(_Total)\% Hypervisor Run Time

单台VM CPU(每个核心)利用率:(该值与VM中任务管理器中看到的CPU利用率并不是一回事,不能直接使用该值来衡量VM CPU使用率,实际查看还是使用vM中的任务管理器)
Hyper-V Hypervisor Virtual Processor(2003_1:Hv VP 0)\来宾运行时间百分比
Hyper-V Hypervisor Virtual Processor(2003_1:Hv VP 1)\来宾运行时间百分比
Hyper-V Hypervisor Virtual Processor(2003_1:Hv VP 2)\来宾运行时间百分比
Hyper-V Hypervisor Virtual Processor(2003_1:Hv VP 3)\来宾运行时间百分比

Hyper-V Hypervisor Virtual Processor(_Total)\来宾运行时间百分比 (与vCPU数量有关系,不能直接使用该值来衡量实际VM的CPU利用率)
Hyper-V Hypervisor Virtual Processor(_Total)\虚拟机监控程序运行时间百分比
Hyper-V Hypervisor Virtual Processor(_Total)\总运行时间百分比

vCPU/pCPU:
write-host (@(gwmi -ns root\virtualization MSVM_Processor).count / (@(gwmi Win32_Processor) | measure -p NumberOfLogicalProcessors -sum).Sum) "virtual processor(s) per logical processor" -f yellow

上图的最下面黑色区域代表硬件层,包含了硬件信息的描述,中间的Hypervisor层区域,Total代表看到物理CPU的总使用率;Guest代表包括了父分区以及其他正在运行的VM操作系统的总使用率;HvOh表示Hypervisor Overhead,这里的HvOh表示Hypervisor层自己的开销,它的开销数据代表着父分区和其他VM的开销。8Logical CPU,20Virtual CPU(4*3+8)

54%*(4/8)+57%*(4/8)+53%*(4/8)+5%*(8/8)= 87%(所有Guest OS<包括父分区>开销,,数值时刻处于动态,约等于90%)

56%*12/8  + 5%*(8/8)=89% ,约等于90%

当根分区或者子分区CPU压力增大时,Logical Processor\% Total Run Time都会增高。

如果vCPU个数(12,不包含根分区)大于LogicalCPU个数(8)时:第一台VM的CPU利用率达到80%,第二台VM的CPU利用率达到80%,则当第三台VM的CPU利用率逐渐增大时,会导致对物理CPU的争抢,三台VM的CPU利用率都会降低,最后达到一个均衡,如上图

物理CPU和虚拟CPU不能划等号,没有直接关系:

测试:

宿主8C,VM01:8C,VM02:8C

测试1:

VM01和VM02同时开机,VM01的Cpu利用率达到80%(任务管理器),VM01:Hv VP 0:80%,Hyper-V Hypervisor Virtual Processor(_Total)\总运行时间百分比:50%。关闭VM02后,Hyper-V Hypervisor Virtual Processor(_Total)\总运行时间百分比:100%。

可得知Hyper-V Hypervisor Virtual Processor(_Total)\总运行时间百分比 与vCPU总数量有关系,vCPU数量越多(只算运行中的VM),该值越低

测试2:

VM01开机,VM02关机,VM01的Cpu利用率达到80%(任务管理器),VM01:Hv VP 0=80%,宿主CPU:80%。

启动VM02后,VM02的CPU达到80%(任务管理器)的时候,VM01:Hv VP 0=45%,  VM02:Hv VP 0=45%,VM02的CPU达到80%(任务管理器),宿主CPU:99%

总结:vCPU数量越多,宿主CPU利用率越高。当物理CPU利用率已达到100%时,再启动新的VM,则VM之间会争夺CPU资源,导致VM性能下降(此时 Hyper-V Hypervisor Virtual Processor(VM01:Hv VP 0)\总运行时间百分比 会下降,最终每台VM之间比例基本持平)。虽然VM01和VM02分别分配了8vCPU,但实际上只是抢到了4LCPU的资源,相当于4vCPU

测试3:

宿主共计48个logicalCPU,4个NUMA,每个NUMA 12个logicalCPU
使用计数器 HV VM Vid Partition\perferred NUMA Node Index(VM01)得知VM01位于NUMA节点1(LogicalCPU:12-23,共计12个)
VM2008:
分配给VM2008 4vCPU, CPU达到80%, 使用了NUMA1节点的8 个LogicalCPU
分配给VM2008 8vCPU, CPU达到80%, 使用了NUMA1节点的12 个LogicalCPU
分配给VM2008 12vCPU,CPU达到80%, 使用了NUMA1节点的12 个LogicalCPU
分配给VM2008 16vCPU(此时该VM需要使用两个NUMA节点LogicalCPU资源),当CPU达到80%, 使用了NUMA1和3节点的24 个LogicalCPU

VM2003:
分配给VM2003 1vCPU,CPU达到80%,使用了当前NUMA节点上的4个LogicalCPU
分配给VM2003 2vCPU,CPU达到80%,使用了当前NUMA节点上的4个LogicalCPU
分配给VM2003 4vCPU,CPU达到80%,使用了当前NUMA节点上的8个LogicalCPU
分配给VM2003 8vCPU,CPU达到80%,使用了当前NUMA节点上的8个LogicalCPU

总结:VM如果只位于某一个NUMA节点上,则不会使用其他NUMA节点上的资源,vCPU与logicalCPU并没有直接对应关系,4vC就会调用到8logicalCPU的资源

=======================================================

The “Hyper-V Hypervisor Virtual Processor” and “Hyper-V Hypervisor Root Virtual Processor” counter sets have the same counters.  The only difference between the two is the ““Hyper-V Hypervisor Root Virtual Processor” contains counters for only the Root Virtual Processors (VP’s) whereas “Hyper-V Hypervisor Virtual Processor”  has counter for all other partitions.

partition=分区=虚机,一个分区就是一个虚机,根分区就是宿主机

参考:http://blogs.msdn.com/b/tvoellm/archive/2008/05/12/hyper-v-performance-counters-part-four-of-many-hyper-v-hypervisor-virtual-processor-and-hyper-v-hypervisor-root-virtual-processor-counter-set.aspx

与在 Hyper-V 上运行来宾操作系统相关的成本

与所有服务器虚拟化软件一样,运行必需的虚拟化代码以支持在 Hyper-V 上运行的来宾操作系统都会产生一定的开销。以下各节总结了在 Hyper-V 虚拟机上运行来宾操作系统时所产生的特定资源开销:

CPU 开销

在 Hyper-V 虚拟机中运行来宾操作系统时所产生的 CPU 开销的范围是 9% 到 12%。例如,在 Hyper-V 虚拟机中运行的来宾操作系统通常有 88–91% 的空闲 CPU 资源可用于在物理硬件上运行的对等操作系统。

内存开销

在 Hyper-V 虚拟机中运行来宾操作系统时所产生的内存开销大约为 300 MB(用于虚拟机监控程序),加上第一次为每台虚拟机分配 1 GB RAM 时产生的 32 MB 内存开销,再加上以后每次为每台虚拟机分配 1 GB RAM 时产生的 8 MB 内存开销。

网络开销

与在 Hyper-V 虚拟机中运行来宾操作系统直接相关的网络延迟大约不到一毫秒 (ms),而且来宾操作系统维护的网络输出队列长度通常不超过 1。

磁盘开销

在 Hyper-V 中使用直通磁盘功能时,与在 Hyper-V 虚拟机中运行来宾操作系统相关联的磁盘 I/O 开销的范围是 6% 到 8%。例如,在 Hyper-V 上运行的来宾操作系统通常有 92–94% 的空闲磁盘 I/O 可用于在物理硬件上运行的对等操作系统。

相关链接:http://www.cnblogs.com/dreamer-fish/p/3794036.html

Hyper-V性能监控_CPU的更多相关文章

  1. cpu和memory性能监控

    cpu性能监控 #!/bin/bash column_count= i= m= is_want= str_msg=""; file_name=./test/`date +%Y-%m ...

  2. 《深入理解Java虚拟机》虚拟机性能监控与故障处理工具

    上节学习回顾 从课本章节划分,<垃圾收集器>和<内存分配策略>这两篇随笔同属一章节,主要是从理论+实验的手段来讲解JVM的内存处理机制.好让我们对JVM运行机制有一个良好的概念 ...

  3. Apache服务器性能监控

    Apache服务器性能监控 1.使用自带mod_status模块监控 1)加载mod_status.so 模块 在httpd.conf中打开LoadModule status_module modul ...

  4. jvm性能监控与故障处理工具

    jdk为我们提供了一系列的jvm性能监控和故障处理工具,在这里根据学习进度进行整理记录.便于之后查阅 1.jps 虚拟机进程工具  类似于Linux系统中的ps命令,用于查看虚拟机进程,常用的有以下功 ...

  5. 【转载】Linux系统与性能监控

    原文地址:http://kerrigan.sinaapp.com/post-7.html Linux System and Performance Monitoring http://www.hous ...

  6. Linux系统与性能监控

    原文地址:http://kerrigan.sinaapp.com/post-7.html Linux System and Performance Monitoring http://www.hous ...

  7. Sysstat性能监控工具包中20个实用命令

    Sysstat性能监控工具包中20个实用命令 学习mpstat, pidstat, iostat和sar等工具,这些工具可以帮组我们找出系统中的问题.这些工具都包含了不同的选项,这意味着你可以根据不同 ...

  8. Linux运维不可不知的性能监控和调试工具

    Linux运维不可不知的性能监控和调试工具 1 nagios Nagios是一个开源监控解决方案,我觉得他可以监控一切 ,可以看一下我以前的文章:NAGIOS 2 ps #用来查看程序的运行情况 ps ...

  9. 前端性能监控系统ShowSlow

    作者:zhanhailiang 日期:2014-11-14 1. 简单介绍 ShowSlow是开源的前端性能监控系统,提供了下面功能: 前端性能指标数据收集功能:ShowSlow原生提供了数据收集工具 ...

随机推荐

  1. zoj 3757&&3758

    3757一个模拟题,简单,但容易错: 3758 大素数判定就行: #include<cstdio> #include<cstring> #include<algorith ...

  2. ubuntu下firefox安装Adobe Flash Player

    转自ubuntu系统自带的火狐(firefox)如何安装Adobe Flash 当你刚装完系统,发现打开某些网站时,提示你"需要安装flash",然后你点击确定,过了一会,提示你安 ...

  3. php多线程thread开发与应用的例子

    Php多线程的使用,首先需要PHP5.3以上版本,并安装pthreads PHP扩展,可以使PHP真正的支持多线程,扩展如何安装请自行百度 PHP扩展下载:https://github.com/kra ...

  4. MySQL 5.6数据库配置主从同步

    win7环境下mysql主从搭建 我下载的是压缩包,免安装的那种 1.简单安装 解压后把my-default.ini复制一份改为my.ini默认mysql会找这个文件,首先从system32下找,然后 ...

  5. ASP.NET 導入Excel

    常常碰到這種需求,為了避免自己每次寫Code都要東翻西找Sample,乾脆丟上來當備份 此外,也為了方便網路上的大大們Copy Paste方便,小弟已經順便標示要複製程式碼的起始結束位置 在歡樂的貼程 ...

  6. C#创建https请求并使用pfx证书

    常规情况下创建Web请求,并获取请求数据的代码如下: WebRequest req = WebRequest.Create(url); req.Timeout = 15000; WebResponse ...

  7. Ubuntu下配置Scheme开发环境

    MIT-Scheme环境 http://www.gnu.org/software/mit-scheme/ 在官网下载安装包,编译安装即可,期间会提示找不到m4这个库,安装即可 Scheme自带的交互环 ...

  8. MySQL优化技巧之五(mysql查询性能优化)

    对于高性能数据库操作,只靠设计最优的库表结构.建立最好的索引是不够的,还需要合理的设计查询.如果查询写得很糟糕,即使库表结构再合理.索引再合适,也无法实现高性能.查询优化.索引优化.库表结构优化需要齐 ...

  9. LightOJ 1370 Bi-shoe and Phi-shoe 欧拉函数+线段树

    分析:对于每个数,找到欧拉函数值大于它的,且标号最小的,预处理欧拉函数,然后按值建线段树就可以了 #include <iostream> #include <stdio.h> ...

  10. ActiveMQ的安全机制使用及其源代码分析 [转]

    ActiveMQ是目前较为流行的一款开源消息服务器.最近在项目开发中,需要为ActiveMQ开发基于IP的验证和授权机制,因此,对ActiveMQ的安全机制进行了了解,以下将介绍ActiveMQ的安全 ...