Windows

具有 2 個 CPU 的 VM 真的比具有 4 個 CPU 的 VM 快嗎?

  • May 29, 2015

我們的 IT 創建了一個分配了 2 個 CPU 而不是我要求的 4 個 CPU 的 VM。他們的原因是虛擬機在使用 2 個 CPU 而不是 4 個 CPU 時性能更好(根據他們的說法)。基本原理是 VM 管理程序(在本例中為 VMWare)在使用任何 CPU 之前等待所有 CPU 可用。因此,等待 4 個而不是 2 個 CPU 需要更長的時間。

這種說法有意義嗎?

這曾經是正確的,但不再完全正確。

他們指的是Strict Co-Scheduling

最重要的是,在嚴格的協同調度算法中,一個滯後的 vCPU 的存在會導致整個虛擬機協同停止。在寬鬆的協同調度算法中,領先的 vCPU 根據與最慢的同級 vCPU 的偏差來決定它是否應該自行協同停止

現在,如果主機只有 4 個執行緒,那麼分配所有執行緒是愚蠢的。如果它有兩個處理器和每個處理器 4 個執行緒,那麼您可能不想分配單個處理器的所有內容,因為您的管理程序應該嘗試將 vCPU 保持在同一個 NUMA 節點上以加快記憶體訪問速度,而您正在通過將整個套接字分配給單個 VM 使這項工作變得更加困難(參見上面那個 PDF 的第 12 頁)。

因此,在某些情況下,更少的 vCPU 比更多的 vCPU性能更好,但這並不是 100% 的情況。

說了這麼多,我很少為每個客戶分配超過 3 個 vCPU。預設情況下,每個人都獲得 2,如果工作量很大,則獲得 3,對於 SQL Server 或真正繁重的批處理 VM 或具有大量使用者的終端伺服器等事物,則獲得 4。

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