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

Compute Engine 會提供預先定義的機器類型,可讓您在建立執行個體時使用。在預先定義的機器類型中,vCPU 數量和記憶體容量均已預先設定完成,並依據所有定價頁面中所述的固定價格收費。

若預先定義的機器類型不符合需求,也可使用自訂的虛擬化硬體設定來建立執行個體。具體而言就是,您實際上可以使用自訂機器類型建立執行個體,並自訂該執行個體的 vCPU 數量和記憶體大小。自訂機器類型只適用於一般用途機器類型,這表示在建立自訂機器類型時,其實就是從 N1 或 N2 機器類型系列部署自訂機器類型。

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

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

事前準備

規格

一般

  • 自訂機器類型的總計記憶體必須為 256 MB 的倍數,例如無法支援 6.9 GB,但可支援 6.75 GB 和 7 GB。

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

  • 具有自訂機器類型的執行個體,其永久磁碟容量限制與具有預先定義機器類型的執行個體相同。

  • 自訂機器類型的永久磁碟容量限制與一般用途機器類型相同。 目前,每個執行個體各機器類型的永久磁碟總大小上限為 257 TB,永久磁碟的數量上限為 128 個。

N1 自訂機器類型

  • 自訂機器類型允許的 vCPU 數量上限,是由您所選擇的機器類型系列所決定。N1 機器類型的情況如下:

    • 如果是在支援 Skylake CPU 平台的區域中部署,就能建立多達 96 個 vCPU 的自訂機器類型。
    • 如果是在支援 Broadwell、Haswell 或 Ivy Bridge CPU 平台的區域部署,最多可部署具有 64 個 vCPU 的自訂機器類型。

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

  • 根據預設,針對自訂機器類型所能選取的每 vCPU 記憶體量,是以機器類型系列決定。對於 N1 機器類型,每個 vCPU 請選取介於 0.9 GB 至 6.5 GB (含) 的記憶體量。啟用擴充記憶體,即可使用更大量的記憶體。

無效機器類型事例

  • 1 個 vCPU,記憶體總大小 0.2 GB:由於記憶體總量低於 N1 機器類型 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 的可接受範圍內。

N2 自訂機器類型

  • 自訂機器類型允許的 vCPU 數量上限,是由您所選擇的機器類型系列所決定。對於僅支援 Cascade Lake 平台的 N2 機器類型,可部署具有 2 到 80 個 vCPU 的自訂機器類型。

  • N2 機器類型只在特定區域提供。詳情請參閱地區和區域頁面。

  • 根據預設,針對自訂機器類型所能選取的每 vCPU 記憶體量,是以機器類型系列決定。對於 N2 機器類型,每個 vCPU 請選取介於 0.5 GB 至 8.0 GB (含) 的記憶體量。啟用擴充記憶體可使用更大量的記憶體。

  • 如果執行個體的 vCPU 數量大於 32 個 vCPU,則該 vCPU 數必須能以 4 整除。因此,舉例來說,32、36 和 40 個 vCPU 為有效值,但 38 個則無效。

無效機器類型事例

  • 2 個 vCPU,記憶體總大小 0.8 GB。由於記憶體總量低於 N2 機器類型 0.5 GB 的下限,因此無效。
  • 34 個 vCPU,記憶體總大小 34 GB。由於 vCPU 總數不能以 4 整除,因此無效。
  • 1 個 vCPU,記憶體總大小 1024 MB。vCPU 數量太少,因此無效。 N2 自訂機器類型的最低需求為 2 個 vCPU。

有效機器類型範例

  • 36 個 vCPU,記憶體總大小 18 GB。由於 vCPU 總數為偶數,且記憶體總大小為 256 MB 的倍數,因此有效。且每個 vCPU 的記憶體大小為 0.5 GB,符合最低需求。因為 vCPU 數量需大於 32 個 vCPU,所以 vCPU 數量必須能以 4 整除。
  • 2 個 vCPU,總記憶體大小 7 GB。由於有兩個 vCPU 而符合最低值,且記憶體總量為 256 MB 的倍數,因此有效。每個 vCPU 的記憶體大小亦在每個 vCPU 從 0.5 GB 至 8 GB 的接受範圍內。

定價

Google 會根據執行個體使用的 vCPU 數量與記憶體時數,收取自訂機器類型費用。這與預先定義的機器類型計費不同,因此建議在建立自訂機器類型之前,先查看定價頁面。

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

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

對於 Google Cloud Platform 工具和說明文件,機器類型記憶體是以 GB 計算,1 GB 是 230 個位元。這種計算單位又稱為 GiB。將記憶體從 GB 轉換為 MB 時,換算方式為 1 GB = 1024 MB。

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

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

在您建立執行個體前,請確定您已詳閱並瞭解建立自訂機器類型的規格

Console

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

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

  2. 選取您要代管這個執行個體的區域。這項操作也會篩選出只有該區域可用的機器類型清單。
  3. 在 [Machine configuration] (機器設定) 下,選取 [General-purpose] (一般用途)。
  4. 在 [Generation] (代別) 下拉式選單中,若為 N1 自訂機器類型,請選取 [First] (第一代),N2 自訂機器類型則選取 [Second] (第二代)。
  5. 在 [Machine type] (機器類型) 下拉式選單中,選取 [Custom] (自訂)。
  6. 請拖曳滑桿,選擇執行個體的 vCPU 數量和記憶體大小。當您變更 vCPU 和記憶體的數量時,主控台會顯示執行個體的估計費用。
  7. 儲存變更,並繼續完成其餘的建立程序。

gcloud

自訂機器類型的 gcloud 指令,會因機器類型系列而略有不同。

若為 N1 機器類型,請使用 gcloud compute instances create 指令,並加入以下其中一個選項:

  • --custom-cpu--custom-memory 標記。
  • --machine-type=custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB] 標記。

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

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

若為 N2 機器類型,請使用 gcloud beta compute instances create 指令,並加入以下其中一個選項:

  • --custom-cpu--custom-memory--custom-vm-type 標記。
  • --machine-type=n2-custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB] 標記。

使用 --custom-memory 標記時,請指定記憶體的總和大小 (單位為 GB 或 MB)。該屬性必須為整數,因此若想指定記憶體增量 0.25 GB,請將該值轉換為 MB。

若要指定增量值 (例如 2.5 GB 的記憶體),請將該值轉換為 MB,並提供加上 MB 後綴的值。以下範例會建立 N2 機器類型的執行個體:

gcloud beta compute instances create example-instance \
    --custom-cpu 6 --custom-memory 3072MB --custom-vm-type n2

您也可以使用下列格式指定自訂機器類型:

gcloud beta compute instances create example-instance \
    --machine-type n2-custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB]

其中:

  • [NUMBER_OF_CPUS] 是您想要的 CPU 數量
  • [NUMBER_OF_MB] 是您需要的記憶體大小 (單位為 MB)。

例如:

gcloud compute instances create example-instance --machine-type n2-custom-6-3072

API

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

  • 若為 N1 機器類型,請使用:

    zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY_MB]
    
  • 若為 N2 機器類型,請使用:

    zones/[ZONE]/machineTypes/n2-custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY_MB]
    

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

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

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

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

視機器類型的不同,每個機器類型根據預設可擁有一定額度的記憶體。舉例來說,如果建立的是 N1 自訂機器類型的 VM,該 VM 的每個 vCPU 最多可擁有 6.5 GB 記憶體。若為 N2 自訂機器類型,每個 vCPU 最多可擁有 8 GB 記憶體。

對於某些工作負載來說,這樣的記憶體容量可能不敷使用。您可額外付費,讓單個 vCPU 取得超出預設限制的記憶體量。這種做法稱為擴充記憶體。

擴充記憶體可讓您增加機器類型的記憶體,而不受每個 vCPU 的限制。依據機器類型的不同,可將擴充記憶體增加到指定限額。

  • N1 機器類型每個 VM 可擴充到共 624 GB 的記憶體總量上限。
  • N2 機器類型每個 VM 可擴充到共 640 GB 的記憶體總量上限。

若您需要更多記憶體,則必須使用其中一種超高記憶體使用率機器類型,可為每個 VM 執行個體,建立總計 1.4 TB 記憶體的執行個體。

判斷是否需要擴充記憶體

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

定價

使用自訂機器類型時,如果每個 vCPU 分配到等於或小於預設容量記憶體,系統會根據 N1 自訂機器類型定價N2 自訂機器類型定價計費。對於超出每個 vCPU 預設值的記憶體,Compute Engine 會依據 N1 擴充自訂記憶體定價N2 擴充自訂記憶體定價收取擴充記憶體費用。請注意,此擴充記憶體定價與下列預設臨界值的記憶體價格不同。

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

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

限制

  • 僅可將擴充記憶體新增至自訂機器類型。不支援預先定義的機器類型。
  • 您可新增的每 vCPU 記憶體無任何限制,但每個 VM 執行個體可新增的記憶體大小有其上限。N1 機器類型每個 VM 的記憶體總量可擴充到 624 GB。N2 機器類型每個 VM 的記憶體總量可擴充到 640 GB。
  • N2 機器類型只在特定區域提供:
    • us-central1-aus-central1-c
    • europe-west4-beurope-west4-c
  • 必須以 256 MB 增量來指定記憶體。
  • 擴充記憶體未享有承諾使用折扣的資格。

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

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

Console

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

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

  2. 選取您要代管這個執行個體的區域。這項操作也會篩選出只有該區域可用的機器類型清單。
  3. 在 [Machine configuration] (機器設定) 下,選取 [General-purpose] (一般用途)。
  4. 在 [Generation] (代別) 下拉式選單中,若為 N1 自訂機器類型,請選取 [First] (第一代),N2 自訂機器類型則選取 [Second] (第二代)。
  5. 在 [Machine type] (機器類型) 下拉式選單中,選取 [Custom] (自訂)。
  6. 選取需要的記憶體大小。若要新增擴充記憶體,請勾選 [Extend memory] (擴充記憶體) 選項。可選記憶體的範圍會隨即展開。
  7. 繼續執行個體建立程序。

gcloud

若是 N1 機器類型,請使用 gcloud 工具和 instances create 子指令,並加入 --custom-extensions 標記來啟用擴充記憶體。接著再使用 --custom- memory 參數,指定需要的總計記憶體。

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

若是 N2 機器類型,請使用 gcloud beta 指令和 instances create 子指令。設定 --custom-extensions--custom-cpu--custom-memory 標記,然後加上 --custom-vm-type 標記,以指定 N2 機器類型:

gcloud beta compute instances create example-instance \
    --custom-extensions --custom-cpu 2 --custom-memory 16 \
    --custom-vm-type n2

API

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

  • 若為 N1 機器類型,請使用:

    zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext
    
  • 若為 N2 機器類型,請使用:

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

其中:

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

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

zones/[ZONE]/machineTypes/n2-custom-2-20480-ext

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

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

Console

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

    前往 VM 執行個體頁面

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

gcloud

請以 gcloud 指令列工具使用 instances set-machine-type 子指令,然後再以 --custom-memory 參數搭配現有的 --custom-extensions 標記。如要將 N1 機器類型變更為 N2 機器類型,請提供 --custom-vm-type 標記,反之亦然。

舉例來說,若要擴充 2 GB 記憶體到名為 example-instance 的執行個體,該執行個體目前位在 us-central1-b 區域,屬於 N1 機器類型,有 2 個 vCPU,記憶體容量為13 GB,則請使用下列指令:

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

在 N1 與 N2 機器類型之間切換:

gcloud beta compute instances set-machine-type example-instance \
   --zone us-central1-a  --custom-extensions --custom-cpu 2 \
   --custom-memory 16 --custom-vm-type n2

API

透過 APIsetMachineType 方法發出 POST 要求,並在要求主體中加進您想要的機器類型:請使用下列其中一種格式:

  • 若為 N1 機器類型,請使用:

    zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext
    
  • 若為 N2 機器類型,請使用:

    zones/[ZONE]/machineTypes/n2-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://compute.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 說明文件