1. 程式人生 > >虛擬機器處理器核數與物理cpu的關係

虛擬機器處理器核數與物理cpu的關係

vCPU,顧名思義,是虛擬CPU。 建立虛擬機器時,需要配置vCPU資源。 因此vCPU是虛擬機器的部件。 因此脫離VM,談論vCPU是沒有意義的。

虛擬化管理系統如何排程vCPU,取決於系統內的虛擬機器數目以及虛擬機器配置的vCPU的情況。

大致的情況如下:
1、當系統內VM所需的vCPU總數少於物理CPU的核數(包括超執行緒Core)時,虛擬化管理系統為vCPU分配的資源不超過一個物理CPU核。 vCPU與物理核的分配關係可以是繫結的,也可能是動態的。
比如伺服器有20個核心,你建立了2個VM,每個VM 4個vCPU,那麼這兩個VM最多能夠使用伺服器的8個核心。

2、當系統內的VM所需要的vCPU核大於物理CPU核數時,虛擬化管理系統首先按照時間片輪流排程一遍,然後如果還有剩餘的CPU資源,則給所需要的vCPU。 比如系統配置了40個vCPU,只有20個物理核。那麼平均每個vCPU獲取一個核心50%的資源。由於一些VM忙,一些VM空閒,虛擬化系統會在一個排程週期內,劃分出若干時間片,輪流給每個vCPU使用。忙的vCPU可以使用完整個時間片,而閒的vCPU用不完整個時間片,會提前釋放資源。這樣在一個排程週期內,對每個vCPU都排程一遍後還有空閒的時間,排程器會把用這剩餘的資源去排程忙的vCPU。 這樣兼顧公平和效率。  這中排程演算法具體下來,大致是如下效果:系統有1個CPU 2.0 Ghz,兩個VM,分配1個vCPU。 如果VM1 和 VM2都忙,那麼各自相當於擁有一個1.0 Ghz的CPU。 如果VM1很忙,VM1只需要 500Mhz的處理能力,那麼在VM1看來,相當於暫時獲得了 1.5Ghz的處理器。


3、通過對Xen的測試,系統所有虛擬機器的vCPU的總數目小於和等於CPU核數時,VM的效能是比較穩定的。 VM的vCPU基本上繫結到了一個CPU核。 當vCPU數目大於物理核數時,VM的效能穩定性變差。