Hyper-V性能-CPU分配


  為新部署的微軟Hyper-V環境中的主機和網絡挑選合適的硬件並非易事,更不用說在生產環境中衡量和監控性能這項任務了。在這里,我和大家談談服務器的核心CPU與Hyper-V的結合是如何相得益彰的。

   我接觸的IT管理員對於虛擬處理器和邏輯處理器是什么,它們對於某一個物理主機上虛擬機的最大數量有何影響經常存在一種誤解。這不僅與分配給虛擬機的處理器數量有關,還與每個主機的物理內存數量直接有關。

   邏輯處理器是多核處理器的一個核心,所以一個四核處理器有四個邏輯處理器。如果該四核處理器有超線程(Hyper Threading)技術,它會顯示為八個核心;這意味着,你的系統有八個邏輯處理器。盡管微軟的說明文檔這么介紹邏輯處理器,但是要注意:超線程並不會神奇地讓處理器容量翻番。為了穩妥起見,就看核心算作邏輯處理器——如果你啟用了超線程技術,其數量也不會翻番。

   虛擬處理器是你分配給一個個虛擬機的資源,你能分配多少個虛擬處理器,取決於訪客/虛擬機操作系統。在這里,操作系統版本越新,功能就越強,所以Windows 2008/2008 R2能與四個虛擬處理器協同運行,而Windows Server 2003只能被分配一兩個虛擬處理器。SuSE Linux企業版、CentOS和紅帽企業版Linux(它們都是得到支持的操作系統版本)最多可以被分配四個虛擬處理器。如果你在虛擬桌面基礎架構(VDI)環境中運行客戶機操作系統,Windows 7最多可以與四個虛擬處理器協同運行,Vista能看到兩個虛擬處理器,Windows XP SP3能看到兩個虛擬處理器。

   就因為你為某一個虛擬機分配了兩個或四個虛擬處理器,並不是說你應該這么做。首先,由於跨處理器的通信,在任何多處理器系統中存在一定的開銷——無論是物理處理器還是虛擬處理器。但是在較新的操作系統中開銷比較低,所以Windows 2008 R2虛擬機使用四個虛擬處理器沒什么問題,而Windows Server 2003可能需要進行測試,看看在你的特定環境下使用兩個虛擬處理器有沒有好處。其次,這完全取決於工作負載——有些應用程序是密集的多線程(想一想SQL Server等類似應用),使用幾個虛擬處理器比較好;而單線程應用程序或者只有幾個線程的應用程序得到的好處並不大。

   另一個常見的誤解是為虛擬機分配一個或多個虛擬處理器與物理核心有關系。為虛擬機分配虛擬處理器其實更像為虛擬機分配一段預定的處理器時間,而虛擬機管理程序實際上把運行虛擬機的負擔分攤到所有可用的處理器核心上。分配給某一個主機上多個虛擬機的虛擬處理器數量與微軟的這個建議密切相關:一個系統中每個邏輯處理器的虛擬處理器至少是4個,每個邏輯處理器的虛擬處理器最多是8個。例外情況是:如果你在VDI環境下是清一色的Windows 7虛擬機,支持的最大比率是12;也就是說每個邏輯處理器的虛擬處理器最多可以是12個。

   如果你有配備2個四核處理器(即八個邏輯處理器)的Hyper-V主機,那么運行8個虛擬機完全沒問題,每個虛擬機有4個虛擬處理器(共32個虛擬處理器)和最多16個虛擬機(共64個虛擬處理器)。如果你為每個虛擬機只分配了兩個虛擬處理器,那么在每個虛擬機一模一樣的這個例子中把那些數量提高一倍。當然,在實際情況下,不同虛擬機中虛擬處理器的數量會有所不同,具體看里面運行的工作負載。

  沒有必要不建議跨NUMA使用多顆CPU核心,最好只使用單個NUMA節點下最大的邏輯CPU數量,因為這涉及到vCPU的調度,造成內存性能的下降。

 

   最后,如果你有一個主機,但處理器資源有限,那么你只要使用虛擬機預留設置和虛擬機限額設置,就可以改變諸虛擬機之間的平衡關系;虛擬機預留設置確保了虛擬機總是可以使用這個數量的處理器資源(但限制了可以在主機上運行的虛擬機總數),虛擬機限額設置控制着虛擬機可以使用多少被分配的處理器容量,Relative weight(相對權重)將該虛擬機與其他運行的虛擬機作一平衡;如果這個值比較低,意味着它在競爭時間段獲得的資源會比較少。微軟的建議是,除非你有充足的理由要改動,否則別去改動這些設置。

   還有處理器兼容性設置,讓你可以在擁有不同年代處理器的主機之間遷移虛擬機,還讓你可以運行版本很老的操作系統,比如Windows NT。

   From:http://blog.chinaunix.net/uid-27213548-id-3293763.html

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM