天天看點

Hyper-V性能監控_CPU

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

Hyper-V性能監控_CPU

上圖的最下面黑色區域代表硬體層,包含了硬體資訊的描述,中間的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。

磁盤開銷

繼續閱讀