建立虛擬機器 (VM) 或裸機執行個體時,Compute Engine 會指派 vCPU 給執行個體。本文說明 vCPU 如何對應至實體硬體,協助您最佳化效能、管理成本,並遵守軟體授權規定。
瞭解 vCPU
虛擬 CPU (vCPU) 代表指派給運算執行個體的中央處理器 (CPU) 運算能力單位。視基礎處理器架構而定,vCPU 會排定在單一硬體執行執行緒或整個專用實體 CPU 核心上執行。
vCPU 是 CPU 平台的一部分。CPU 平台是以 CPU 為基礎的設定,包含下列項目:
- CPU 處理器類型
- 指令集 (例如 AVX2 和 AVX-512)
- 快取大小
- 時脈速度
- NUMA 分割
- 記憶體存取搜尋時間
- 晶片內建加速器
將 vCPU 分配給運算執行個體
如要建立 VM 或裸機執行個體 (統稱為運算執行個體),請使用機型。機型會決定 Compute Engine 分配給執行個體的資源。例如,c4-standard-4 機器類型會建立具有 4 個 vCPU 和 16 GB 記憶體的 VM。
為協助您選擇適合工作負載的機型,Compute Engine 將機型分為機器家族和機器系列。
- 機器家族:已針對特定工作負載完成最佳化的一組精選處理器與硬體設定,例如一般用途、加速器最佳化或記憶體最佳化。
機器系列:機器家族中 CPU 處理器、硬體和網路功能的特定組合。每個系列都著重於運算能力或效能的不同面向。舉例來說,E 系列提供低成本的高效 VM,而 C 系列則提供比 E 系列更優異且更穩定的效能。
- 一個機器系列可以有多個世代,例如 C3 和 C4。代數或系列編號越高,代表基礎 CPU 處理器或技術越新。舉例來說,M4 系列採用第 5 代 Intel Xeon 處理器 (也稱為 Emerald Rapids),是比 M3 機器系列更新一代的產品,後者採用第 3 代 Intel Xeon 處理器 (也稱為 Ice Lake)。
- 機器系列和機型的基礎架構會以機器系列名稱結尾的字母表示。舉例來說,第 4 代 C 機器系列提供 C4 (Intel)、C4D (AMD)、C4A (Arm) 或 C4N (網路最佳化) 等選項。
實體核心對應和多執行緒並行
在大多數 x86 處理器上,每個實體 CPU 核心都支援兩個硬體執行緒。Intel Xeon 處理器使用 Intel 超執行緒技術,AMD EPYC 處理器則使用同步多執行緒 (SMT)。對於這些處理器,Compute Engine 會將每個 vCPU 實作為在實體核心上執行的單一硬體執行緒。因此,兩個 vCPU 會共用一個實體 CPU 核心 (vCPU 與實體核心的比率為 2:1)。舉例來說,具有 4 個 vCPU 的 VM 會使用 2 個採用 SMT 的實體 CPU 核心。
在特定機器系列和處理器架構上,Compute Engine 不會使用 SMT。而是將每個 vCPU 直接對應至一個專屬實體 CPU 核心 (vCPU 與實體核心的比率為 1:1):
- Arm 處理器:在 N4A、C4A 或 A4X 等 Arm64 架構的機器系列中,硬體架構採用單一執行緒核心。每個 vCPU 代表一個完整的實體核心。
- 運算最佳化機器系列:H4D 和 H3 機器系列都不支援 SMT。每個 vCPU 代表一個完整的實體 CPU 核心,可提供高單一執行緒效能,並消除執行緒之間的資源爭用。
- Tau 機器系列:針對 Tau T2A (採用 Ampere Altra 處理器) 和 Tau T2D 機器系列 (採用第 3 代 AMD EPYC Milan 處理器),Compute Engine 預設會停用 SMT。這類運算執行個體類型的每個核心一律有一個 vCPU。
- 裸機執行個體:如果是裸機執行個體,1 個 vCPU 相當於 1 個 CPU。執行個體可用的 vCPU 數量等於主機伺服器上的硬體執行緒數量。您無法手動調整或設定每個核心的執行緒數量。
如要滿足特定工作負載或軟體授權需求,您可以自訂 vCPU 在客體作業系統中的顯示方式。詳情請參閱「自訂可見的 CPU 核心數量」。如需不使用 SMT 的機器系列和架構清單,請參閱「設定每個核心的執行緒數量」。
專用與共用核心 vCPU
選擇機型時,vCPU 會對應至 CPU 硬體執行緒,或使用共用核心資源模型:
- 完整 vCPU:標準、高記憶體、高 CPU 和自訂機型會為每個 vCPU 分配硬體執行執行緒或實體核心。
- 對於一般用途機器家族中的 N4、N4A、N4D 和 E2 機器系列,動態資源管理 (DRM) 系統會確保每個運作中的 vCPU 都有可用的硬體執行緒支援。DRM 可根據資源需求將運算執行個體排程至伺服器,並將 vCPU 執行緒排程至實體 CPU,盡可能縮短等待時間,讓 Compute Engine 充分運用可用的實體 CPU。一般用途機器家族中的 N1、N2 和 N2D 機器系列使用標準主機排程。
- 如果是 C、M、G、Z 和 A 機器系列,vCPU 資源會專門指派給您的執行個體,絕不會與其他運算執行個體共用執行週期。
共用核心 vCPU:共用核心機型包括
e2-micro、e2-small、e2-medium、f1-micro和g1-small。這些機型會透過環境切換,共用實體 CPU 核心。這些共用核心 VM 不使用專屬硬體執行緒,而是維持特定比例的實體核心時間:e2-micro可維持 2 個 vCPU,每個 vCPU 占用 12.5% 的 CPU 作業時間 (共 25%)。e2-small可維持 2 個 vCPU,每個 vCPU 占用 25% 的 CPU 作業時間 (共 50%)。e2-medium可維持 2 個 vCPU,每個 vCPU 占用 50% 的 CPU 作業時間 (共 100%)。f1-micro可維持 1 個 vCPU 長達 20% 的 CPU 作業時間。g1-small可維持單一 vCPU 長達 50% 的 CPU 作業時間。
相較於具備完整 vCPU 的 VM,具備共用核心 vCPU 的 VM 提供了符合成本效益的選項,適合執行小型、非資源密集型應用程式、微服務,或不需要持續達到 CPU 尖峰處理量的開發或測試工作負載。
vCPU 效能特性
vCPU 的處理效能取決於 CPU 平台、時脈速度、快取階層、多執行緒動態和資源排程。
CPU 平台和指令集
Compute Engine 提供運算執行個體,可在多代 Intel、AMD、Arm 和自訂 Google 處理器上執行。每個 CPU 平台都會導入微架構強化功能和專屬指令集:
- Advanced Vector Extensions (AVX-512):適用於 Intel 平台 (例如 Ice Lake、Emerald Rapids 和 Sapphire Rapids) 和 AMD EPYC 平台 (Genoa 和 Turin),可加速向量數學、科學運算和資料壓縮。
- AMX 和 VNNI:這些擴充功能可直接在 vCPU 上加速深度學習推論和矩陣運算。
- Advanced Matrix Extensions (AMX) 適用於 Intel 處理器 (Intel Xeon 第 4 代 Sapphire Rapids 以上版本)。
- Intel 和 AMD EPYC 處理器 (Genoa 第 4 代以上) 均支援向量類神經網路指令 (VNNI)。
- Arm NEON 和 SVE:Ampere Altra CPU 平台支援 Arm NEON,Google Axion 和 NVIDIA Grace CPU 平台則支援 Scalable Vector Extension (SVE),可為雲端原生網頁工作負載提供可擴充的向量執行功能。
時脈速度和 Turbo 頻率
vCPU 會以基礎實體處理器的基本時脈頻率執行指令。當工作負載需要額外的處理能力,且散熱空間允許時,處理器會自動將頻率提高至全核心 Turbo 頻率或單核心 Turbo 頻率。
某些機器系列在 Compute Engine 中會以最高持續時脈速度運作。舉例來說,在 Granite Rapids 上執行的 C4,全核心渦輪加速頻率最高可達 3.9 GHz,而 A3 Mega 或 A3 High 的全核心渦輪加速頻率最高可達 3.8 GHz。如要執行單一執行緒應用程式、電子設計自動化 (EDA) 和遊戲伺服器,請選擇高頻率 vCPU。
如要查看 Compute Engine 使用的各個 CPU 平台頻率,請參閱「CPU 平台」。
多執行緒資源共用
在啟用 SMT 的機器類型 (每個核心 2 個 vCPU) 上,兩個硬體執行執行緒會共用實體核心的第 1 級 (L1) 指令和資料快取、第 2 級 (L2) 快取、執行單元和轉譯查詢緩衝區 (TLB)。
- I/O 繫結和並行工作負載:對於網頁伺服器、API 閘道和經常存取記憶體的資料庫作業,SMT 會在一個執行緒上執行指令,同時讓另一個執行緒等待記憶體擷取,藉此提高整體核心處理量。
- 受運算能力限制的工作負載:如果應用程式持續飽和浮點單位或 L1/L2 快取,在兩個 vCPU 之間共用執行單位可能會導致資源爭用。如果工作負載在啟用 SMT 的運算執行個體上發生爭用,請考慮將每個核心的執行緒數設為 1,藉此停用 SMT,或改用具有專屬實體核心的機器系列 (例如 C4A 或 H4D)。
動態資源管理和效能監控
Compute Engine 採用專門的硬體和軟體最佳化技術,可維持可預測的 vCPU 延遲時間:
- Google Titanium 架構:新一代機器系列 (包括 N4、N4D、N4A、C3、C3D 和 C4) 採用 Google Titanium 卸載卡、自訂 CPU 排程器,以及效能感知即時遷移。動態資源管理會保留 NUMA (非統一記憶體存取) 親和性,並盡可能減少干擾。
- E2 的動態資源管理:對於 E2 VM,管理程序會視需求動態將虛擬 CPU 和記憶體對應至實體資源。這種動態對應機制可充分運用實體資源,提高成本效益。
- 效能監控單元 (PMU):您可以在支援的機器系列 (例如 C4、M4 和 A4X) 啟用 PMU,存取低階硬體計數器。剖析工具會使用 PMU 計數器追蹤分支預測錯誤、快取失敗和每週期指令數 (IPC)。
- Ops Agent:您可以在運算執行個體上安裝 Ops Agent,監控 CPU 使用率並收集系統層級的遙測資料。Ops Agent 會將這項資料傳送至 Google Cloud Observability,協助您分析及最佳化 vCPU 效能。
費用考量事項
為工作負載編列預算和規劃容量時,請考量 Compute Engine 的 vCPU 計費方式和可用的折扣模式。
資源計費精細程度
對於大多數機器系列,Compute Engine 會將 vCPU 和系統記憶體視為獨立的專用資源計費。執行個體是以秒計費,每個運算執行個體啟動後,最低計費時間為 1 分鐘。超過一分鐘後,系統只會根據執行個體實際執行的秒數收費。
如果是共用核心機型 (例如 E2 共用核心和 N1 共用核心),Compute Engine 會將 vCPU 和記憶體合併為單一小時費率,而非以個別資源計費。
您可以在 VM 執行個體定價頁面查看 vCPU 計費費率。
成本最佳化和折扣
您可以採用下列定價選項,降低 vCPU 計費費用:
- 承諾使用折扣 (CUD):如果工作負載有可預測且穩定的 vCPU 需求,您可以購買 1 年或 3 年期承諾使用合約,享有隨選價格 55% 至 70% 的折扣。Compute Engine 提供依資源計算的 CUD (適用於特定區域中的特定機器系列),以及依支出計算的彈性 CUD (適用於多個機器系列和區域)。您可以在 Cloud Billing 帳戶中的專案之間共用 CUD。
- 續用折扣 (SUD):對於符合條件的機器系列 (例如 N1、N2、N2D、C2、M1 和 M2),當 vCPU 執行時間超過帳單月份的 25% 時,Compute Engine 會自動套用 SUD。如果整個月持續執行 VM 執行個體,最多可享 20% 或 30% 的折扣,具體折扣取決於機器系列。以量計價價格較低的機器系列 (包括 E2、N4、C3、C4、Tau T2A 和 A3) 不提供 SUD。
- Spot VM:針對容錯、無狀態或批次工作負載,Spot VM 提供標準隨選 vCPU 價格 60% 至 91% 的折扣。Compute Engine 隨時可以停止或收回 Spot VM,以取回資源。
- 單一租戶節點和 vCPU 超額配置:在單一租戶節點上執行 VM 執行個體時,您必須支付專用實體主機伺服器的費用,而非個別 vCPU 的費用。在單一租戶節點上,您可以設定 CPU 超額配置 (比率最高為 2:1),在 VM 執行個體中排定比實體主機核心數更多的 vCPU,降低開發人員或測試環境的運算成本。
- Dynamic Workload Scheduler (DWS):如果是 AI 或機器學習工作負載,您可以使用 DWS 最佳化 vCPU 成本,並提高資源可用性。
- 彈性啟動型 VM:適合用於成本效益高、排程彈性的工作負載,最多可執行 7 天。
- 日曆模式的未來預留項目要求:用於預留未來特定日期和時間的資源,最長可達 90 天。
- 最適規模建議:Compute Engine 會分析歷來的 vCPU 使用率指標,並自動提供機器類型建議和閒置運算執行個體建議。套用這些建議,有助於調整過度佈建的 vCPU 大小,或停止閒置的執行個體。
機器系列可用性
下表列出 Compute Engine 機器系列的 vCPU 架構模型、多執行緒比率和 vCPU 數量上限。vCPU 數量上限反映各系列中最大的機器類型,包括裸機執行個體。
| 機器家族 | 機器系列 | 處理器架構 | vCPU 與核心比率 | vCPU 數量上限 | 共用核心選項 |
|---|---|---|---|---|---|
| 一般用途 | E2 |
Intel Xeon / AMD EPYC | 2 個 vCPU:1 個核心 (SMT) | 32 個 vCPU | 是 (e2-micro、e2-small、e2-medium) |
| 一般用途 | N1 |
多個世代的 Intel Xeon 處理器 | 2 個 vCPU:1 個核心 (SMT) | 96 個 vCPU | 是 (f1-micro、g1-small) |
| 一般用途 | N2 |
Intel Xeon (Cascade Lake / Ice Lake) | 2 個 vCPU:1 個核心 (SMT) | 128 個 vCPU | 否 |
| 一般用途 | N2D |
AMD EPYC (Rome / Milan) | 2 個 vCPU:1 個核心 (SMT) | 224 個 vCPU | 否 |
| 一般用途 | N4 |
第 5 代 Intel Xeon (Emerald Rapids) | 2 個 vCPU:1 個核心 (SMT) | 80 個 vCPU | 否 |
| 一般用途 | N4D |
第 5 代 AMD EPYC (Turin) | 2 個 vCPU:1 個核心 (SMT) | 96 個 vCPU | 否 |
| 一般用途 | N4A |
Google Axion (Arm64) | 1 個 vCPU:1 個核心 (無 SMT) | 64 個 vCPU | 否 |
| 一般用途 | C3 |
第 4 代 Intel Xeon (Sapphire Rapids) | 2 個 vCPU:1 個核心 (SMT) | 176 個 vCPU | 否 |
| 一般用途 | C3D |
第 4 代 AMD EPYC (Genoa) | 2 個 vCPU:1 個核心 (SMT) | 360 個 vCPU | 否 |
| 一般用途 | C4 |
第 5 代 Intel Xeon (Emerald Rapids) 和第 6 代 Intel Xeon (Granite Rapids) | 2 個 vCPU:1 個核心 (SMT) | 288 個 vCPU | 否 |
| 一般用途 | C4A |
Google Axion (Arm64) | 1 個 vCPU:1 個核心 (無 SMT) | 96 個 vCPU | 否 |
| 一般用途 | C4D |
第 5 代 AMD EPYC (Turin) | 2 個 vCPU:1 個核心 (SMT) | 384 個 vCPU | 否 |
| 一般用途 | Tau T2A |
Ampere Altra (Arm64) | 1 個 vCPU:1 個核心 (無 SMT) | 48 個 vCPU | 否 |
| 一般用途 | Tau T2D |
第 3 代 AMD EPYC (Milan) | 1 個 vCPU:1 個核心 (已停用 SMT) | 60 個 vCPU | 否 |
| 運算最佳化 | C2 |
Intel Xeon (Cascade Lake) | 2 個 vCPU:1 個核心 (SMT) | 60 個 vCPU | 否 |
| 運算最佳化 | C2D |
AMD EPYC (Milan) | 2 個 vCPU:1 個核心 (SMT) | 112 個 vCPU | 否 |
| 運算最佳化 | H3 |
第 4 代 Intel Xeon (Sapphire Rapids) | 1 個 vCPU:1 個核心 (無 SMT) | 88 個 vCPU | 否 |
| 運算最佳化 | H4D |
第 5 代 AMD EPYC (Turin) | 1 個 vCPU:1 個核心 (無 SMT) | 192 個 vCPU | 否 |
| 網路最佳化 | C4N |
第 5 代 Intel Xeon (Emerald Rapids) | 2 個 vCPU:1 個核心 (SMT) | 192 個 vCPU | 否 |
| 記憶體最佳化 | X4 |
第 4 代 Intel Xeon (Sapphire Rapids) | 2 個 vCPU:1 個核心 (SMT) | 1,920 個 vCPU | 否 |
| 記憶體最佳化 | M1 |
Intel Xeon (Skylake 和 Broadwell) | 2 個 vCPU:1 個核心 (SMT) | 160 個 vCPU | 否 |
| 記憶體最佳化 | M2 |
第 2 代 Intel Xeon (Cascade Lake) | 2 個 vCPU:1 個核心 (SMT) | 416 個 vCPU | 否 |
| 記憶體最佳化 | M3 |
第 3 代 Intel Xeon (Ice Lake) | 2 個 vCPU:1 個核心 (SMT) | 128 個 vCPU | 否 |
| 記憶體最佳化 | M4/M4N |
第 5 代 Intel Xeon (Emerald Rapids) | 2 個 vCPU:1 個核心 (SMT) | 224 個 vCPU | 否 |
| 儲存空間最佳化 | Z3 |
第 4 代 Intel Xeon (Sapphire Rapids) | 2 個 vCPU:1 個核心 (SMT) | 192 個 vCPU | 否 |
| 儲存空間最佳化 | Z4D |
第 5 代 AMD EPYC (Turin) | 2 個 vCPU:1 個核心 (SMT) | 288 個 vCPU | 否 |
| 儲存空間最佳化 | Z4M |
第 5 代 Intel Xeon (Emerald Rapids) | 1 個 vCPU:1 個核心 (無 SMT) | 192 個 vCPU | 否 |
| 加速器最佳化 | A4X Max |
NVIDIA Grace | 1 個 vCPU:1 個核心 (無 SMT) | 144 個 vCPU | 否 |
| 加速器最佳化 | A4X |
NVIDIA Grace | 1 個 vCPU:1 個核心 (無 SMT) | 140 個 vCPU | 否 |
| 加速器最佳化 | A4 |
第 5 代 Intel Xeon (Emerald Rapids) 搭配 NVIDIA GPU | 2 個 vCPU:1 個核心 (SMT) | 224 個 vCPU | 否 |
| 加速器最佳化 | A3 |
Intel Xeon (Emerald Rapids 和 Sapphire Rapids) 搭配 NVIDIA GPU | 2 個 vCPU:1 個核心 (SMT) | 224 個 vCPU | 否 |
| 加速器最佳化 | A2 |
第 2 代 Intel Xeon (Cascade Lake) 搭配 NVIDIA GPU | 2 個 vCPU:1 個核心 (SMT) | 96 個 vCPU | 否 |
| 加速器最佳化 | G4 |
第 5 代 AMD EPYC (Turin) 搭配 NVIDIA GPU | 2 個 vCPU:1 個核心 (SMT) | 384 個 vCPU | 否 |
| 加速器最佳化 | G2 |
第 2 代 Intel Xeon (Cascade Lake) 搭配 NVIDIA GPU | 2 個 vCPU:1 個核心 (SMT) | 96 個 vCPU | 否 |
如要瞭解所有系列中每個 vCPU 的記憶體、網路頻寬和本機磁碟支援的詳細規格,請參閱機器資源指南。
後續步驟
- 如要比較 vCPU 和記憶體規格,請參閱機器家族資源與比較指南。
- 瞭解 Compute Engine 上可用的 CPU 平台。
- 如要瞭解共用核心執行個體,請參閱「共用核心 VM」。
- 瞭解如何套用機型建議和閒置 VM 建議,盡可能提高 vCPU 使用率。