爲新部署的微軟Hyper-V環境中的主機和網絡挑選合適的硬件並不是易事,更不用說在生產環境中衡量和監控性能這項任務了。在這裏,我和你們談談服務器的核心CPU與Hyper-V的結合是如何相得益彰的。html
我接觸的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的調度,形成內存性能的降低。ui
最後,若是你有一個主機,但處理器資源有限,那麼你只要使用虛擬機預留設置和虛擬機限額設置,就能夠改變諸虛擬機之間的平衡關係;虛擬機預留設置確保了虛擬機老是可使用這個數量的處理器資源(但限制了能夠在主機上運行的虛擬機總數),虛擬機限額設置控制着虛擬機可使用多少被分配的處理器容量,Relative weight(相對權重)將該虛擬機與其餘運行的虛擬機做一平衡;若是這個值比較低,意味着它在競爭時間段得到的資源會比較少。微軟的建議是,除非你有充足的理由要改動,不然別去改動這些設置。spa
還有處理器兼容性設置,讓你能夠在擁有不一樣年代處理器的主機之間遷移虛擬機,還讓你能夠運行版本很老的操做系統,好比Windows NT。操作系統
From:http://blog.chinaunix.net/uid-27213548-id-3293763.html