如何在 VMware vSphere 中設定每個插槽的 CPU 核心數:最佳實踐

在為新的虛擬機器設定處理器參數時,了解幾個核心概念至關重要。這些概念包括如何計算每個插槽的 CPU 核心數,以及此配置如何影響虛擬機器的效能。此外,了解使用較少處理器但具備更多核心,與使用較多處理器但具備較少核心這兩種情況所產生的影響,同樣至關重要。釐清這些關聯性,有助於您選擇符合工作負載及主機能力的配置方案。

請繼續閱讀,以了解這些概念,以及在 ESXi 主機上為虛擬機器進行 CPU 配置的基本原則。

NAKIVO for VMware vSphere 備份

NAKIVO for VMware vSphere 備份

為 VMware vSphere 虛擬機器提供全面資料保護及快速還原選項。支援本地、異地及雲端的備份目標。具備防勒索軟體功能。

術語

首先,讓我們來了解在為 CPU 設定時,您應該知道的相關術語定義: 虛擬機器 以協助您了解其運作原理。

一個 CPU (中央處理器、微處理器晶片或處理器)是電腦的關鍵元件。它是由電晶體組成的電子電路,並連接至插槽上。CPU 會執行指令以進行運算、執行應用程式並完成任務。當處理器的時脈速度逼近散熱極限時,製造商便調整了處理器架構,並開始生產具備多核心的處理器。為避免將實體處理器與邏輯處理器或處理器核心混淆,部分供應商將實體處理器稱為”插槽”。

CPU插槽 是主機板上用於連接單一實體 CPU 的物理連接器。每塊主機板至少設有一個 CPU 插槽。伺服器主機板通常配備多個 CPU 插槽,可支援數顆多核心處理器。CPU 插槽會針對不同的處理器系列進行標準化設計。英特爾(Intel)與 AMD 針對各自的處理器系列採用不同的 CPU 插槽。

一個 CPU 核心 這是處理器中包含 L1 快取的部分。它能獨立執行運算任務,無需與”大型”處理器中由各核心共享的其他核心及外部元件進行互動。基本上,一個核心可視為內建於連接至插槽的主處理器中的小型處理器。應用程式應支援平行運算,才能合理地運用多核心處理器。

超執行緒技術 這是一項由英特爾開發的技術,旨在讓僅具備單一處理器核心的處理器也能進行平行運算。超執行緒技術於 2002 年隨著 Pentium 4 HT 處理器的發布而問世,該處理器主要定位於桌上型電腦市場。作業系統會將具備超執行緒技術的單核心處理器識別為擁有兩個邏輯核心(而非實體核心)的處理器。 同樣地,對作業系統而言,具備超執行緒技術的四核心處理器會被視為擁有 8 個核心的處理器。每個核心上執行的執行緒越多,就能並行處理的任務就越多。現代的英特爾處理器同時具備多核心與超執行緒技術。此功能通常預設為啟用狀態,並可透過 BIOS 進行啟用或停用。AMD 同步多執行緒技術(SMT)則是 AMD 處理器中與超執行緒技術相當的功能。

一個 vCPU 是一種虛擬處理器,在虛擬機(VM)的虛擬硬體設定中被配置為虛擬裝置。它可使用多個 CPU 核心。一個 vCPU 會連接至一個虛擬插槽。

CPU 超額分配 當您為位於實體主機上的虛擬機器配置的邏輯處理器(CPU 核心)數量,超過該主機上可用的邏輯處理器總數時,便會發生此情況。

NUMA (非均勻記憶體存取,Non-Uniform Memory Access) 是一種應用於多處理器電腦的記憶體設計。其設計理念是為每個處理器提供獨立的記憶體(有別於 UMA,後者中所有處理器皆透過匯流排存取共用記憶體)。同時,處理器亦可透過共用匯流排存取其他處理器的記憶體(所有處理器皆可存取電腦上的所有記憶體)。 在多處理器電腦中,CPU 存取自身本機記憶體的速度比存取其他記憶體更快,這正是其效能優勢所在。

The UMA and NUMA designs for multiprocessor computers

這些基本架構在現代多處理器電腦中相互結合。處理器被分組於多核心 CPU 封裝或節點上。屬於同一節點的處理器會共用對記憶體模組的存取權限,這與 UMA 架構類似。此外,處理器還能透過共享互連結構存取遠端節點的記憶體。在 NUMA 架構中,處理器也是如此運作,但由於是透過擁有該記憶體的 CPU 進行存取,而非直接存取,因此效能較低。

The mixed architecture for modern multiprocessor computers

NUMA 節點是由一個 CPU 插槽及其最鄰近的記憶體模組所組成的 CPU/記憶體組合。NUMA 通常在 BIOS 中以”節點交錯”或”交錯記憶體”設定進行配置。

虛擬 NUMA(vNUMA) 這是 VMware 虛擬機器中對應於 NUMA 的技術。vNUMA 會調用多個實體 NUMA 節點的硬體資源,以提供最佳效能。vNUMA 技術將 NUMA 拓撲結構揭露給來賓作業系統,因此來賓作業系統能夠感知底層的 NUMA 拓撲結構。若要使用 vNUMA,虛擬機器的虛擬硬體版本必須為 8 或更高。

在 VMware vSphere 6.5、8.0 及 9.0 中,vNUMA 的處理能力已大幅提升。此特點不再受虛擬機器配置中”每個插槽的 CPU 核心數”設定所控制。預設情況下,對於擁有超過 8 個邏輯處理器(vCPU)的虛擬機器,vNUMA 會自動啟用。您可透過編輯虛擬機器的 VMX 配置檔案,並新增以下這行來手動為虛擬機器啟用 vNUMA: numa.vcpu.min=X,其中 X 代表虛擬機器的 vCPU 數量。

雖然 “中的”每插槽核心數”(” )數值並不會控制 vNUMA 的啟用,但手動配置此設定以符合主機的實體 NUMA 節點拓撲,仍是讓具備大量 vCPU 的大型虛擬機器達到最佳效能的最佳實踐。

計算核心數

讓我們來了解如何計算伺服器上的實體 CPU 核心數、邏輯 CPU 核心數及其他參數。

  • 實體 CPU 核心的總數 在主機上的值是根據以下公式計算得出的:

    (處理器插槽數) × (每顆處理器的核心數) = 實體處理器核心數

    : 僅需考慮已安裝處理器的處理器插槽。

  • 如果支援超執行緒技術,您可以計算 邏輯處理器核心的數量 透過使用以下公式:

    (實體處理器核心數)×(2 個執行緒/實體處理器)= 邏輯處理器數

  • 最後,請使用此公式來計算 可用的處理器資源 可指派給虛擬機的:

    (CPU插槽數) × (CPU核心數) × (執行緒數)

    舉例來說,若您擁有一台配備兩顆處理器的伺服器,每顆處理器各有 4 個核心且支援超執行緒技術,則可分配給虛擬機器的邏輯處理器總數為:

    2(CPU)× 4(核心)× 2(超執行緒)= 16 個邏輯處理器

    一個邏輯處理器可被指派為虛擬機器的單一處理器或單一 CPU 核心。

    至於虛擬機器,由於具備硬體模擬特點,其配置中可使用多個處理器及 CPU 核心。一個實體 CPU 核心可被配置為虛擬 CPU,或作為虛擬機器的虛擬 CPU 核心。

  • 時鐘週期的總數 虛擬機可用的資源計算方式如下:

    (邏輯插槽數) × (CPU 時脈速度)

    舉例來說,若您將虛擬機器設定為使用 2 個 vCPU(每個 vCPU 含 2 個核心),而您擁有一顆時脈頻率為 3.0 GHz 的實體處理器,則總時脈頻率為 2 × 2 × 3 = 12 GHz。若 ESXi 主機啟用了 CPU 超額分配功能,當虛擬機器執行 CPU 密集型任務時,該虛擬機器可用的時脈頻率可能會低於計算結果。

每個插槽的 CPU 核心數限制

vSphere 7.0 Update 1 中的 CPU/核心限制, vSphere 8.0 以及 vSphere 9.0 的相關資訊如下:

  • 可分配給虛擬機器的虛擬處理器插槽最大數量為 768 個。若要分配更多,請將虛擬機器設定為使用多核心處理器。
  • 在 vSphere 8.0(虛擬硬體版本 18)中,單一虛擬機器可分配的處理器核心數上限為 768 個,而在 vSphere 9.0(虛擬硬體版本 22)中則增加至 960 個。虛擬機器所能使用的 CPU 核心數,不得超過實體機器上的邏輯處理器核心數。
  • CPU 熱插拔. 若虛擬機器擁有 128 個或更少的 vCPU,則無法使用 CPU 熱擴充特點,也無法在虛擬機器運行時編輯 CPU 配置。
  • 作業系統的 CPU 限制. 若某個作業系統對處理器數量設有上限,而您為虛擬機器指派了更多虛擬處理器,則這些額外的處理器將不會被客體作業系統識別或使用。此類限制可能源於作業系統的技術設計及授權規範。請注意,有些作業系統是按插槽(socket)或按 CPU 核心(core)進行授權的(例如, Windows Server 2019 或 Windows Server 2025)。

某些作業系統對 CPU(CPU 插槽)的支援限制:

  • Windows 10 Pro – 2 顆 CPU
  • Windows 10 家庭版 – 1 顆 CPU
  • Windows 10 工作站 – 4 顆 CPU
  • Windows 11 家庭版/Pro x64 – 2 顆 CPU(邏輯處理器或 vCPU/核心數上限為 256)
  • Windows 11 Pro for Workstations – 4 顆 CPU(邏輯處理器或 vCPU/核心數上限為 256)
  • Windows Server 2022(標準版/資料中心版)– 64 個 CPU(最多 640 個邏輯處理器或 CPU 核心)
  • Windows Server 2025(標準版/資料中心版)– 64 個 CPU(最多 2048 個邏輯處理器或 CPU 核心)
  • Windows Server 2019 標準版/資料中心版 – 64 個 CPU
  • Windows XP Pro x64 – 2 顆處理器
  • Windows 7 Pro/旗艦版/Enterprise – 2 顆 CPU
  • Windows Server 2003 資料中心版 – 64 個 CPU
試試看 NAKIVO Backup & Replication 適用於 VMware vSphere

試試看 NAKIVO Backup & Replication 適用於 VMware vSphere

立即開始您的 15 天免費試用,體驗無代理程式、增量式的虛擬機器備份功能,並享有即時完整還原與細粒度還原選項、防勒索軟體防護等更多功能。

設定建議

對於較舊的 vSphere 版本,建議在虛擬機器配置中優先使用”插槽”而非”核心”。起初,您可能不會注意到 CPU 插槽或 CPU 核心之間的顯著差異,但這可能會影響虛擬機器的效能。請留意某些配置特點。當您考慮為虛擬機器設定多個虛擬處理器(插槽)以達到最佳效能時,請務必記住 NUMA 和 vNUMA。

若 vNUMA 未自動配置,請複製實體伺服器的 NUMA 拓撲結構。以下是針對 VMware vSphere 6.5 及後續版本(包括 vSphere 8.0 和 9.0)中虛擬機器的一些建議:

  • 為虛擬機器定義邏輯處理器(vCPU)數量時,請選擇”每插槽核心數”的配置。重複此步驟,直到總數超過 ESXi 伺服器上單一 NUMA 節點的 CPU 核心數為止。接著以同樣的邏輯繼續操作,直到超過實體 ESXi 伺服器單一 NUMA 節點上可用的記憶體容量為止。
  • 有時,虛擬機器 (VM) 配置中的邏輯處理器數量會超過單一 NUMA 節點上的實體 CPU 核心數,或是 RAM 容量高於單一 NUMA 節點可用的總記憶體容量。為獲得最佳效能,請考慮將邏輯處理器 (vCPU) 的數量分配至最少數量的 NUMA 節點上。
  • 若 CPU 數量或記憶體容量超過 CPU 核心數,請勿設定奇數個 vCPU。若記憶體容量超過實體伺服器上單一 NUMA 節點的分配量,亦應遵循此原則。
  • 請勿建立虛擬機器,其 vCPU 數量不得超過實體主機上的實體處理器核心數。
  • 若因系統需求而無法停用 vNUMA,請勿啟用 vCPU 熱添加特點。

若在 vSphere 6.5 之前的版本中已啟用 vNUMA,且您已為虛擬機器定義了邏輯處理器(vCPU)的數量,請選擇虛擬插槽的數量,同時將”每插槽核心數”維持為 1(預設值)。 “每個插槽一個核心”的配置可讓 vNUMA 自動為來賓作業系統選擇最佳的 vNUMA 拓撲。此自動配置能針對伺服器的底層實體拓撲達到最佳效果。

若已啟用 vNUMA,且您使用相同數量的邏輯處理器(vCPU),但同時增加虛擬 CPU 核心數並減少相同數量的虛擬插槽,則 vNUMA 將無法為虛擬機器設定最佳的 NUMA 配置。因此,虛擬機器的效能將受到影響,甚至可能下降。

如果虛擬機器上的來賓作業系統及其他軟體採用”每處理器”授權模式,請將虛擬機器設定為使用較少的處理器,但每個處理器具備較多的 CPU 核心。例如,Windows Server 2012 R2 採用”每插槽”授權模式,而 Windows Server 2016(及後續版本)則採用”每核心”授權模式。

若您在 VMware 虛擬機器的設定中使用 CPU 超額分配功能,請注意以下數值:

  • 1:1 至 3:1 – 運行虛擬機器應無問題;
  • 3:1 至 5:1 – 可觀察到效能下降;
  • 6:1 – 預計效能將顯著下降。

在測試與開發環境中,若 CPU 超額分配的數值處於正常範圍內,即可安全地使用。

在 ESXi 主機上設定虛擬機器

首先,請確定您的實體主機需要多少個邏輯處理器(即 CPU 總數),才能讓虛擬機器正常運作並達到足夠的效能。接著,請根據前述建議與限制,為該虛擬機器設定應具備的虛擬插槽數(含處理器,即 vSphere Client 中的插槽數)以及 CPU 核心數(每個插槽的核心數)。下表可協助您選擇所需的配置。

calculate CPU cores per socket for multiprocessor VMs

若您需要為虛擬機器指派超過 8 個邏輯處理器,其運作邏輯依然相同。要計算邏輯 CPU 的數量,請參閱 vSphere Client, 將插槽數乘以核心數。例如,若需將虛擬機器配置為使用 2 個處理器插槽,且每個插槽各有 2 個 CPU 核心,則邏輯 CPU 的總數為 2 × 2 = 4。這表示您應在 vSphere Client 的虛擬機器虛擬硬體選項中選擇 4 個 CPU,以套用此配置。

在 vSphere Client 中設定每顆 CPU 的核心數

以下將說明如何在 VMware vSphere Client 中為虛擬機器設定 CPU 選項。此設定流程在 vSphere 6.x、7.0、8.0 及 9.0 版本中均完全相同。

  1. 請輸入您的 IP 位址 vCenter Server 在網頁瀏覽器中,開啟 VMware vSphere Client。
  2. 在瀏覽器中,開啟 主機與叢集,然後選取您要設定的虛擬機器。請確保該虛擬機器已關機,才能變更 CPU 設定。
  3. 右鍵點擊虛擬機器,然後選取 編輯設定 從快顯選單中開啟虛擬機器設定。
  4. 展開 CPU 中的””部分 虛擬硬體 的””分頁 編輯設定 視窗。
    • CPU. 點擊 CPU 字串中的下拉式選單,並選擇此虛擬機器所需的邏輯處理器總數。在此範例中,我們為 Ubuntu 虛擬機器選擇 4 個邏輯處理器(部落格-Ubuntu1).
    • 每個插槽的核心數. 在此字串中,請點擊下拉式選單,並為每個虛擬插槽(處理器)選取所需的核心數。
    • CPU 熱插拔. 若要使用此特點,請選取 啟用 CPU 熱插拔 核取方塊。請務必留意相關限制與需求。

      Configuring processors and the number of cores per CPU

    • 預訂. 為 ESXi 主機或叢集上的虛擬機器,選取 CPU 時脈速度(頻率,以 MHz 或 GHz 為單位)的保證最低配額。
    • 限制. 設定虛擬機器處理器的最大 CPU 時脈速度。此頻率即為虛擬機器的最高頻率,即使該虛擬機器是 ESXi 主機或叢集中唯一正在運行的虛擬機器,且該主機或叢集尚有更多閒置處理器資源時亦然。 所設定的限制適用於該虛擬機的所有虛擬處理器。若該虛擬機擁有 2 顆單核心處理器,且限制值為 1000 MHz,則這兩顆虛擬處理器的總時脈頻率將為每秒一百萬個時鐘週期(每顆核心各 500 MHz)。
    • 股份. 此參數用於定義虛擬機器在 ESXi 主機或資源池上消耗資源的優先級(低、正常、高、自訂)。與 預訂限制 參數,該 股份 只有當 ESXi 主機、資源池或 DRS 叢集內缺乏 CPU 資源時,該參數才會套用至虛擬機器。

      可用的選項包括 股份 參數:

      • – 每個虛擬處理器 500 股
      • 正常 – 每個虛擬處理器 1000 股
      • – 每個虛擬處理器 2000 股
      • 自訂 – 設定自訂值

      越高的 股份 此數值越高,在 ESXi 主機或資源池內為該虛擬機器配置的 CPU 資源就越多。

    • 硬體虛擬化. 勾選此核取方塊以啟用 嵌套虛擬化. 若您希望在另一台虛擬機器內執行虛擬機器,以進行測試或教學用途,此選項將非常實用。
    • 效能計數器. 此特點可讓您在測量虛擬機器內安裝的應用程式之 CPU 效能後,對該應用程式進行除錯與最佳化。
    • 排程親和性. 此選項用於將虛擬機器指派給特定的處理器。其值可以是這樣的:”0, 2, 4-7”.
    • I/O MMU. 此特點可讓虛擬機器直接存取硬體輸入/輸出裝置,例如儲存控制器、網路卡和顯示卡(而非使用模擬或半虛擬化的裝置)。 I/O MMU 亦稱為”Intel 定向 I/O 虛擬化技術”(Intel VT-d)及”AMD I/O 虛擬化”(AMD-V)。I/O MMU 預設為停用狀態。此選項在 vSphere 7.0 中已宣告過時。若啟用 I/O MMU,則無法透過 vMotion 且不支援快照、記憶體超額分配、虛擬機器暫停狀態、實體網路介面卡共享以及 NSX 網路虛擬化.

如果您使用獨立的 ESXi 主機,並透過 VMware Host Client 在網頁瀏覽器中設定虛擬機器,其設定原則與 VMware vSphere Client 相同。

在 VMware 工作站中設定每顆 CPU 的核心數

若您在 VMware 工作站 並開啟 vSphere 虛擬機器的設定,即可編輯虛擬處理器的基本設定。

  1. 點擊 VM > 設定, 請選取 硬體 按一下”分頁”並點擊 處理器.
  2. 請選擇虛擬處理器(插槽)的數量,以及每個處理器的核心數量。

    在下方的螢幕截圖中,您可以看到先前在 vSphere Client 中設定的同一台 Ubuntu 虛擬機器的處理器配置。

    總處理器核心數(ESXi 主機或叢集上實體處理器的邏輯核心數)會自動計算並顯示於下方。相較之下,在 vSphere Client 的介面中,您需先設定總處理器核心數(“CPU”選項),選擇每個處理器的核心數,系統才會據此計算並顯示虛擬插槽的數量。

    the number of cores per CPU for vSphere VMs in VMware Workstation

在 PowerCLI 中設定虛擬機器處理器

如果您偏好使用命令列介面來設定 VMware vSphere 的元件,請使用 Power CLI 以編輯虛擬機器的 CPU 設定。讓我們來了解如何編輯虛擬機器的 CPU 設定(Ubuntu 19) 在 Power CLI 中。請針對已關機的虛擬機器使用這些指令。

  1. 若要將虛擬機器設定為使用兩個單核心虛擬處理器(即使用兩個虛擬插槽),請執行以下指令:

    get-VM -name Ubuntu19 | set-VM -NumCpu 2

    若要為虛擬機器設定其他處理器(插槽)數量,請輸入另一個數字。

  2. 在以下範例中,您可以了解如何設定虛擬機器以使用兩個雙核心虛擬處理器(使用 2 個插槽):

    $VM=Get-VM -Name Ubuntu19

    $VMSpec=New-Object -Type VMware.Vim.VirtualMachineConfigSpec -Property @{ “NumCoresPerSocket” = 2

    $VM.ExtensionData.ReconfigVM_Task($VMSpec)

    $VM | Set-VM -NumCPU 2

    一旦將新的 CPU 配置套用至虛擬機器,該配置便會儲存於該虛擬機器的 VMX 配置檔案中。在此範例中,我們檢查 Ubuntu19.vmx 檔案的位置在資料存放區中 VM 目錄內(/vmfs/volumes/datastore2/Ubuntu19/). 包含新 CPU 配置的行位於 VMX 檔案的末尾。

    numvcpus = “2”

    cpuid.coresPerSocket = “2”

  3. 若需減少虛擬機器的處理器(插槽)數量,請使用與先前相同的指令,並將數量值設為較小的數值。例如,若要將虛擬機器的處理器(插槽)設定為一個,請使用以下指令:

    get-VM -name Ubuntu19 | set-VM -NumCpu 1

使用 Power CLI 的主要優勢在於能夠批量配置多台虛擬機器。 任務自動化 若需設定的虛擬機器數量較多,此步驟便顯得十分重要。請使用 VMware cmdlet 並配合 Microsoft PowerShell 的語法來建立腳本。

結論

在 VMware vSphere 中設定虛擬插槽及每個插槽的核心數,可讓您定義虛擬機器(VM)的 CPU 拓撲結構應如何呈現給來賓作業系統。這些設定有助於確保虛擬機器的佈局符合已安裝作業系統及應用程式的需求。VMware 提供了靈活的選項來調整每個插槽的核心數,使配置能配合管理或授權需求。在規劃虛擬機器部署時,了解 vSphere 如何呈現 CPU 拓撲結構至關重要。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,探索本解決方案的所有資料保護功能。免費試用 15 天。無任何特點或容量限制。無需提供信用卡資訊。

People also read