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
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLi0zaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLwkzX39GZhh2csATMflHLwEzX4xSZz91ZsADMx8FdsYkRGZkRG9lcvx2bjxSa2EWNhJTW1AlUxEFeVRUUfRHelRHL2EzXlpXazxyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3PnVGcq5CZ1YjYjVWZwUGZ5AjZ5ImM3YGNhVDZ5cDNzYDM0MjZi9CXzIzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL4M3Lc9CX6MHc0RHaiojIsJye.jpeg)
上圖的最下面黑色區域代表硬體層,包含了硬體資訊的描述,中間的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。