使用自訂機器類型建立 VM 執行個體

Compute Engine 會提供預先定義的機器類型,可讓您在建立執行個體時使用。預先定義的記憶體類型具有預設 vCPU 數量與記憶體大小,且採固定價格收費,如定價頁面中所述。

若預先定義的機器類型不符合需求,也可使用自訂的虛擬化硬體設定來建立執行個體。具體而言,您可使用自訂機器類型,有效率地建立具有自訂 vCPU 數量和記憶體大小的執行個體。

自訂機器類型最適合下列情境:

  • 工作負載不適合可用的預先定義機器類型。
  • 工作負載需要更多處理效能或記憶體,但不需要新一代機器類型提供的所有升級功能。

事前準備

規格

  • 自訂機器類型允許的 vCPU 數量上限,是由將要託管執行個體的所在區域來決定:

    • 某些支援 Skylake CPU 平台的區域 (非所有區域),最多可支援具有 96 個 vCPU 的自訂機器類型。
    • 某些支援 Broadwell、Haswell 或 Ivy Bridge CPU 平台的區域 (非所有區域),最多可支援具有 64 個 vCPU 的自訂機器類型。
    • 支援 Sandy Bridge CPU 平台的所有區域,均可支援最多具有 16 個 vCPU 的自訂機器類型。

    如要查看每個區域的可用平台,請參閱地區與區域表格。

  • 執行個體 vCPU 數量必須為大於 1 的偶數,例如 2、4、6、8、10 等。

  • 自訂機器類型中每個 vCPU 的記憶體必須介於 0.9 至 6.5 GB/vCPU 之間 (含 0.9 及 6.5)。

  • 自訂機器類型的總計記憶體必須為 256 MB 的倍數。例如 6.9 GB 為不可接受的值,但 6.75 GB 和 7 GB 則可接受。

  • 具有自訂機器類型的執行個體,其永久磁碟容量限制與具有預先定義機器類型的執行個體相同。不過,自訂機器類型仍有最多 16 個獨立永久磁碟區的限制。

如需有效與無效機器類型的範例,請參閱建立執行個體一節。

定價

Google 會根據執行個體使用的 vCPU 數量與記憶體大小,收取自訂機器類型費用。此種方式與預先定義機器類型的收費方式有所不同,因此建議在建立自訂機器類型之前,請先詳閱定價頁面。

執行自訂機器類型的執行個體,與其他所有執行個體同樣皆遵循 1 分鐘最低收費的規範,但自訂機器類型的續用折扣會採不同方式計算。如需更多資訊,參閱適用自訂機器類型的續用折扣

使用自訂機器類型建立執行個體

建立執行個體之前,請確認您已閱讀並瞭解建立自訂機器類型所需的規格。簡單來說:

  • 僅可建立具有 1 個 vCPU 或偶數量 vCPU 的機器類型。
  • 每個 vCPU 的記憶體大小必須介於 0.9 GB 至 6.5 GB 之間。
  • 執行個體的總計記憶體大小必須為 256 MB 的倍數。
  • 允許的 vCPU 數量上限取決於區域。支援 Haswell 與 Broadwell 處理器的區域,最多可支援具有 64 個 vCPU 的機器類型;支援 Ivy Bridge 處理器的區域,最多則可支援具有 32 個 vCPU 的機器類型。採用 Sandy Bridge 處理器的區域,可支援最多 16 個 vCPU 的機器類型。

無效機器類型範例

  • 1 個 vCPU,總計記憶體大小 0.6 GB:由於總計記憶體大小少於 0.9 GB 的下限,因此無效。
  • 1 個 vCPU,總計記憶體大小 0.9 GB:由於總計記憶體大小必須為 256 MB 的倍數,因此無效。若為 1 個 vCPU,請至少使用 1024 MB 的記憶體。

有效機器類型範例

  • 32 個 vCPU,總計記憶體大小 29 GB:由於總計 vCPU 數量為偶數,且總計記憶體大小為 256 MB 的倍數,因此有效。每個 vCPU 的記憶體大小為 0.9 GB,符合最低需求。
  • 1 個 vCPU,總計記憶體大小 1 GB:由於有一個 vCPU 而符合最低值,且總計記憶體大小為 256 MB 的倍數,因此有效。每個 vCPU 的記憶體大小亦在每個 vCPU 0.9 GB 至 6.5 GB 的可接受範圍內。

使用 GB 或 MB 做為記憶體表示單位

機器類型記憶體是以十億位元組 (GB) 為計算單位,其中 1GB 等於 230 位元組。這種計算單位又稱為 GiB。將記憶體從 GB 轉換為 MB 時,換算方式為 1 GB = 1024 MB。

在 API 中,提供記憶體時請務必以 MB 為單位。若使用的是 gcloud 指令列工具,在提供執行個體的記憶體總和時,則能以 GB 或 MB 為單位。不過,gcloud 工具要求記憶體值應為整數,因此無法提供浮點數值。例如,若要表示 5.75 GB,請將 5.75 GB 轉換為 MB。在此案例中,5.75 GB 應為 5888 MB。

建立執行個體

主控台

  1. 前往「Create instance」(建立執行個體) 頁面

    前往「Create instance」(建立執行個體) 頁面

  2. 在「Machine type」(機器類型) 下方,按一下 [自訂]
  3. 請拖曳滑桿,選擇執行個體的 vCPU 數量和記憶體大小。當您變更 vCPU 和記憶體的數量時,主控台會顯示執行個體的估計費用。
  4. 儲存變更,並繼續完成其餘的建立程序。

gcloud

請透過 gcloud 指令列工具使用 instances create 子指令,然後再加上 --custom-cpu--custom-memory 標記。請指定記憶體的總和大小 (單位為 GB 或 MB)。該屬性必須為整數,因此若想指定記憶體增量 0.25 GB,請將該值轉換為 MB。

例如,下列指令會建立具有 4 個 vCPU 和 5 GB 總計記憶體的執行個體:

gcloud compute instances create example-instance --custom-cpu 4 --custom-memory 5

若要指定增量值 (例如 5.25 GB 的記憶體),請將該值轉換為 MB,並提供加上 MB 後綴的值:

gcloud compute instances create example-instance --custom-cpu 4 --custom-memory 5376MB

API

請在 API 中,依一般方式建立執行個體建立要求,但在指定 machineType 值時,請使用下列格式。請將 NUMBER_OF_CPUS 替換為需要的 CPU 數量,並將 AMOUNT_OF_MEMORY 替換為需要的記憶體大小。請以 MB 為單位來提供記憶體:

zones/[ZONE]/machineTypes/custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY

例如,下列網址會建立具有 4 個 vCPU 和 5 GB (5120 MB) 記憶體的執行個體:

zones/us-central1-f/machineTypes/custom-4-5120

您也可以使用上述格式指定自訂機器類型,以透過自訂機器類型建立先佔執行個體,或是透過自訂機器類型建立執行個體群組

為機器類型新增擴充記憶體

根據預設,自訂機器每個 vCPU 最多可擁有 6.5 GB 的記憶體。然而,這樣的記憶體容量對您的工作負載而言可能不敷使用。您可額外付費,讓單個 vCPU 取得超出 6.5 GB 限制的記憶體量。這種做法稱為擴充記憶體。

擴充記憶體可讓您為機器類型額外新增記憶體,而不受每個 vCPU 的限制。無論 CPU 平台為何,皆可為每個 VM 總共增加最多 455 GB 的擴充記憶體。若執行個體在具有 96 個可用 vCPU 機器類型的區域中使用 Skylake CPU 平台,則可為每個 VM 執行個體最多增加共 624 GB 的擴充記憶體。若您需要更多記憶體,則必須使用其中一種超高記憶體使用率機器類型,可為每個 VM 執行個體,建立總計 1.4 TB 記憶體的執行個體。

判斷是否需要擴充記憶體

某些工作負載會需要每個 vCPU 具備超過 6.5 GB 的記憶體,方可獲得最佳效果。像是以記憶體內分析和高效能資料庫為基礎的工作負載就屬於此類,包括 MS SQL Server、MongoDB 和 MemcacheD/Redis 等關聯資料庫和 NoSQL 資料庫。再加上作業系統和軟體堆疊的 vCPU 型授權,導致想要挑選出最佳的 VM 記憶體設定,比挑選預先定義的機器類型更加困難。您可使用擴充記憶體自由新增需要的記憶體數量,讓 VM 執行個體達到最適宜的價格和效能。

定價

使用自訂機器類型時,如果每個 vCPU 分配最多 6.5 GB 的記憶體,系統會根據標準的自訂機器類型定價來計費。對於超出每個 vCPU 最多 6.5 GB 臨界值的記憶體,Compute Engine 會根據擴充記憶體定價收取擴充記憶體費用。請注意,此擴充記憶體價格與低於每個 vCPU 6.5 GB 臨界值的記憶體價格不同。

擴充記憶體價格取決於區域。透過擴充記憶體執行的執行個體,與其他所有執行個體同樣皆遵循 1 分鐘最低收費的規範。擴充記憶體亦享有續用折扣資格。如需更多資訊,請參閱適用於自訂機器類型的續用折扣

如需定價相關資訊,請參閱擴充記憶體定價

限制

  • 僅可將擴充記憶體新增至自訂機器類型。不支援預先定義的機器類型。
  • 您可新增的每 vCPU 記憶體無任何限制,但每個 VM 執行個體可新增的記憶體大小有其上限。無論 CPU 平台為何,您皆可為每個 VM 新增最多共 455 GB 的擴充記憶體。若執行個體使用的是 Skylake CPU 平台,而區域可使用具有 96 個 vCPU 的機器類型,則每個 VM 最多可新增共 624 GB 的擴充記憶體。
  • 必須以 256 MB 增量來指定記憶體。
  • 擴充記憶體未享有承諾使用折扣的資格。

建立執行個體時新增擴充記憶體

若要透過擴充記憶體建立 VM 執行個體,請按照以下操作說明進行。

主控台

  1. 前往 Google Cloud Platform 主控台的「建立執行個體」頁面。

    前往「建立執行個體」頁面

  2. 在「機器類型」下方,按一下 [自訂]
  3. 選取要用於 VM 執行個體的 vCPU。
  4. 選取需要的記憶體大小。若要新增擴充記憶體,請勾選 [Extend memory] (擴充記憶體) 選項。可選記憶體的範圍會隨即展開。
  5. 繼續執行個體建立程序。

gcloud

請透過 gcloud 工具使用instances create 子指令,然後再加上 --custom-extensions 標記,以啟用擴充記憶體。接著再使用 --custom-memory 參數,指定需要的總計記憶體。

例如,下列指令會建立具有 2 個 vCPU、15 GB 記憶體的執行個體 (含 2 GB 擴充記憶體):

gcloud compute instances create example-instance --custom-cpu 2 --custom-memory 15 --custom-extensions

API

請在 API 中,依一般方式建構執行個體建立要求,但在指定 machineType 值時,請使用下列格式:

zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext

其中:

  • [NUMBER_OF_CPUS] 是 vCPU 數量
  • [AMOUNT_OF_MEMORY] 是您需要的記憶體大小。請以 MB 為單位提供記憶體大小。

例如,下列指令所指定的是具有 2 個 vCPU 和 15 GB 記憶體的機器類型:

zones/[ZONE]/machineTypes/custom-2-15360-ext

為現有 VM 執行個體新增擴充記憶體

若要為現有執行個體新增更多記憶體,您必須先停止執行個體。執行個體停止後,請按照以下的操作說明為 VM 新增更多記憶體。

主控台

  1. 前往「VM 執行個體」頁面。

    前往「VM 執行個體」頁面

  2. 從執行個體清單中,選擇您要修改的已停止執行個體。
  3. 按一下頁面頂端的 [編輯]
  4. 在「機器類型」下方,按一下 [自訂]
  5. 選取需要的 vCPU 數量。
  6. 選取需要的記憶體大小。若要新增擴充記憶體,請勾選 [Extend memory] (擴充記憶體) 選項。可選記憶體的範圍會隨即展開。
  7. 儲存變更。

gcloud

請以 gcloud 指令列工具使用 instances set-machine-type 子指令,然後再以 --custom-extensions 標記搭配現有的 --custom-memory 參數。

例如,若要在 us-central1-b 區域中,替具有 2 個 vCPU、13 GB 記憶體的 example-instance 執行個體額外新增 2GB 記憶體,請使用下列指令:

gcloud compute instances set-machine-type example-instance \
   --zone us-central1-b --custom-cpu 2 \
   --custom-memory 15 --custom-extensions

API

透過 APIsetMachineType 方法發出 POST 要求,並在要求主體中包含您想要的機器類型。指定新機器類型時,請使用下列格式:

zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext

其中:

  • [NUMBER_OF_CPUS] 是 vCPU 數量
  • [AMOUNT_OF_MEMORY] 是您需要的記憶體大小。請以 MB 為單位提供記憶體大小。

例如,下列指令會使用具有 2 個 vCPU 和 15 GB 記憶體的機器類型:

zones/[ZONE]/machineTypes/custom-2-15360-ext

例如:

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setMachineType

{
    machineType: "zones/us-central1-f/machineTypes/custom-2-15360-ext"
}
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件