排解預留項目使用問題

本文說明如何解決使用 Compute Engine 可用區資源預留項目時的問題。

可供使用的運算執行個體減少

問題:實體預留的 Compute Engine 執行個體數量 (assuredCount 欄位) 少於預留項目中指定的運算執行個體數量 (count 欄位)。這項差異表示專案可用的運算執行個體數量比預期少,且任何與預留項目共用的專案也是如此。

發生這個問題的原因可能如下:

  • Google Cloud 暫停使用用戶專案或使用者已遷移專案。 Google Cloud 已暫停與預留項目共用的專案、用戶專案,或使用者已將用戶專案遷移至其他機構。 在這些情況下,Compute Engine 會從預訂的 assuredCount 欄位中,扣除消費者專案在遷移或暫停前使用的運算執行個體數量。

  • Google Cloud 暫停擁有者專案。 Google Cloud 已暫停預留項目所在的專案 (即擁有者專案)。在這種情況下,Compute Engine 會將預留項目中的 assuredCount 欄位設為 0。

  • 硬體或主機發生錯誤,導致預訂受到影響。在這種情況下,Compute Engine 會在預留項目中執行下列兩項操作:

    • Compute Engine 會將 status 欄位設為 DEGRADED。

    • Compute Engine 會將 assuredCount 欄位的值減少受影響主機的數量。

解決方式:除非預留資源的擁有者專案遭到停權,否則 Compute Engine 會盡力在 24 小時內解決 assuredCount 和 count 欄位之間的差異。在這段期間,Google Cloud 只會針對「assuredCount」欄位中顯示的實體預留容量向您收費。如果問題在 48 小時內仍未解決,請與帳戶團隊或支援團隊聯絡。

未消耗預留項目的運算執行個體問題

如果運算執行個體無法使用預訂項目,可能是下列一或多個問題所致:

本節說明如何找出及解決這些問題,以及如何驗證預訂消耗量。

已降級的預留項目

問題:您嘗試使用預留項目建立運算執行個體,但建立運算執行個體失敗,並出現下列其中一個錯誤:

BACKEND_ERROR
GCE_STOCKOUT
INFEASIBLE
QUOTA_ERROR
ZONE_RESOURCE_POOL_EXHAUSTED

此外,當您查看預訂詳細資料時,status 欄位的值會設為 DEGRADED。這個值表示預訂中的部分實體保留機器發生硬體或主機錯誤。在這個狀態下,您只能使用預訂項目建立運算執行個體,且數量不得超過 assuredCount 欄位中指定的數量。在問題解決前, Google Cloud 只會根據「assuredCount」欄位中顯示的預留運算執行個體數量向您收費。

解決方式:Compute Engine 會盡力在 24 小時內解決問題。如果預訂的 status 欄位在 48 小時後仍設為 DEGRADED,請與帳戶團隊或支援團隊聯絡,尋求指引。

運算執行個體屬性不符

問題:運算執行個體無法使用具有不同運算執行個體屬性的預留項目。

如要找出運算執行個體和預留項目之間不相符的屬性,請執行下列操作,查看預留項目和運算執行個體的屬性:

  1. 查看預訂詳細資料

  2. 查看運算執行個體的詳細資料

接著比較這兩項輸出內容,確認下列屬性完全相符:

  • project

    • 如果預留項目與多個專案共用 (具體來說,如果預留項目的shareType欄位設為 SPECIFIC_PROJECTS),則運算執行個體可能位於建立預留項目的專案 (擁有者專案),或與預留項目共用的任何專案 (消費者專案)。
  • zone

  • machineType

  • guestAccelerators.acceleratorType (如有)

  • guestAccelerators.acceleratorCount (如有)

  • minCpuPlatform

    • 運算執行個體和預訂項目必須具有完全相同的minCpuPlatform設定。舉例來說,在建立運算執行個體時將 minCpuPlatform 設為 Intel Broadwell,不會與預訂中的 Automatic 的 minCpuPlatform 值相符。
  • localSsds.interface (如有)

    • 預留項目和運算執行個體必須有相同數量的本機 SSD 磁碟,且每個本機 SSD 磁碟的 localSsds.interface 屬性必須相符。
  • resourcePolicies (如有)

  • locationHint (如有)

    • 只有在預訂指定 locationHint 欄位時,您只能在使用 REST API 建立運算執行個體時,指定 locationHint 欄位。

解決方式:找出不相符的屬性後,請嘗試下列任一做法:

更新運算執行個體或建立新預留項目後,請確認預留項目使用情形,檢查運算執行個體是否正在使用預留項目。

預留項目相依性有誤

問題:運算執行個體的預留資源親和性設定有誤。運算執行個體的預留項目相依性會控管運算執行個體可使用的預留項目。如要檢查運算執行個體的預留項目親和性,請按照下列步驟操作:

  1. 查看預留項目的詳細資料,並確認預留項目是自動耗用還是特定預留項目。詳情請參閱「消耗類型」。

  2. 查看運算執行個體的詳細資料,並驗證預留項目相依性。

解決方式:如果運算執行個體的預留項目親和性與預留項目不符,請執行下列任一操作:

  • 建立新的運算執行個體,並使用與預留項目類型相符的預留項目親和性屬性。

  • 更新運算執行個體中的 reservationAffinity 屬性,指定運算執行個體是否可使用任何相符的預留項目或特定預留項目。如要完成運算執行個體的更新,請務必重新啟動運算執行個體。

如要檢查運算執行個體是否正在使用預留項目,請參閱「確認預留項目使用情形」。

預留項目已用盡

問題:耗用這項預留資源的運算執行個體數量,與預留運算執行個體的總數相符。這表示預留項目已用盡。

解決方法:如要確認預留項目是否已完全用盡,請查看預留項目的詳細資料,然後確認使用預留項目的運算執行個體數量,是否與預留項目中的預留運算執行個體總數相符。

如果預留項目已用盡,請嘗試下列其中一種做法:

如果預訂項目未完全用完,但運算執行個體未耗用預訂項目,請按照下列步驟進一步排解問題:

  1. 建立具有相符屬性的特定預留項目。

  2. 建立運算執行個體,使用預留項目。如果運算執行個體和預留項目屬性不符,就無法建立運算執行個體。

共用預留項目超出資源配額

問題:由於專案的配額不足,無法使用您嘗試使用的資源,因此運算執行個體無法使用共用預留項目。

解決方法:共用預留項目有額外配額規定。如要提高專案配額來使用預留資源,請參閱 Cloud Quotas 說明文件中的「申請調整配額」。

停止或刪除運算執行個體後,運算執行個體數量未還原

問題:如果您停止、暫停或刪除正在使用預訂項目的運算執行個體,則作業必須完成,運算執行個體才會不再計入預訂項目,先前使用的資源也會再次可供使用。

解決方法:請稍候幾分鐘,讓系統完成運算執行個體的停止、暫停或刪除作業。接著,如要確認已停止、暫停或刪除的運算執行個體不再計入預訂項目,請使用下列任一方法,檢查預訂項目中已使用的運算執行個體總數:

  • 建議: 監控預訂,並查看預訂的測量結果是否有所變更。

  • 查看預訂詳細資料,並確認 inUseCount 欄位的值是否減少。如果值沒有減少,表示一或多個運算執行個體在停止、暫停或刪除作業完成時,已開始使用預留項目。

運算執行個體意外耗用預留項目

問題:建立自動耗用的預留項目 (預設) 時,運算執行個體可能會不慎耗用這些預留項目。

解決方法:如要避免一或多個運算執行個體意外耗用預留項目,請採取下列任一做法: