Kvm-Virtualization

KVM 和虛擬到物理 CPU 的映射

  • May 16, 2018

我是一個相對較晚參加虛擬派對的人,所以如果這似乎是一個明顯的問題,你必須原諒我。

如果我的伺服器有 12 個可用核心,每個 KVM 來賓是否都可以訪問所有 12 個核心?我了解 KVM 使用 Linux 調度程序,但這就是我對“接下來會發生什麼”的理解結束的地方。

我問的原因是,我們打算在 KVM 來賓中執行的 10 個左右不同的任務(為了隔離以促進升級)不會 100% 使用單個核心,因此在此基礎上似乎很浪費必須為每個來賓分配 1 個虛擬 CPU - 我們從一開始就沒有核心,並有一個“完整”的空閒伺服器來顯示它。

換句話說,假設我上面的描述,就處理能力而言,1 個虛擬 CPU 實際上等於 12 個物理核心嗎?或者這不是它的工作原理?

非常感謝

史蒂夫

一個虛擬 CPU 相當於 1 個物理核心,但是當您的 VM 嘗試處理某些內容時,它可能會在當時恰好可用的任何核心上執行。調度程序處理這個,而虛擬機不知道它。您可以將多個 vCPU 分配給 VM,從而允許它在多個核心上同時執行。

核心根據需要在所有 VM 之間共享,因此您可以擁有一個 4 核系統,並在其上執行 10 個 VM,每個 VM 分配 2 個 vCPU。根據調度程序的確定,VM 非常有效地共享系統中的所有核心。這是虛擬化的主要好處之一——充分利用訂閱不足的資源來支持多個作業系統實例。

如果您的虛擬機太忙以至於它們不得不爭用 CPU 時間,結果就是虛擬機可能不得不等待 CPU 時間。同樣,這對 VM 是透明的並由調度程序處理。

我不熟悉 KVM,但以上所有內容都是大多數虛擬化系統的通用行為。

引用自:https://serverfault.com/questions/313333