執行個體是 App Engine 用來自動調整應用程式資源調度的運算單位。在任何特定時間內,您的應用程式皆可在單一或多個執行個體上執行,處理遍布這些執行個體的要求。
採用手動資源調度的執行個體應可無限期執行,但無法保證運作時間,因為執行個體可能會因失敗或重新啟動更新而提早終止。系統可能會無預警地發生軟硬體故障,導致作業提前終止或執行個體頻繁重新啟動,而且可能需要耗費大量時間才能解決問題。
如有可用的更新,所有彈性執行個體都會每週重新啟動一次。我們無法保證這項時程。在重新啟動期間,系統會自動提供回溯相容的重要更新給基礎作業系統使用。每次重新啟動,應用程式的映像檔皆維持不變。
健康狀態檢查
App Engine 會定期傳送健康狀態檢查要求,確認執行個體是否正在執行,以及檢查執行個體是否已完全啟動,並準備好接受傳入的要求。根據預設,系統會啟用這些健康狀態檢查,稱為分割健康狀態檢查。收到健康狀態檢查的執行個體必須在指定的時間間隔內回應。
如果您需要將分割健康狀態檢查的預設行為延伸至應用程式,可以自訂 app.yaml
檔案,設定兩種類型的健康狀態檢查:
- 有效性檢查可偵測 VM 執行個體及其容器是否正在執行。如果 VM 執行個體無法通過存活檢查,系統會自動重新啟動該執行個體。有效性檢查可能會因設定的閾值和時間間隔,或因容器當機而失敗。
- 就緒檢查可偵測 VM 執行個體是否已準備好接受傳入的要求。如果 VM 執行個體未通過完備性檢查,表示 VM 執行個體尚未完成啟動,且尚未準備好接收要求。當 VM 執行個體通過就緒檢查並完成啟動程序後,就會新增至可用執行個體集區。
如要進一步瞭解分割健康狀態檢查行為,請參閱遷移至分割健康狀態檢查指南。
執行個體進行這些健康狀態檢查時,App Engine 記錄可指出執行個體處於下列任何狀態:
- 健康。執行個體已收到健康狀態檢查要求,並正在處理這些要求。健康狀態表示執行個體的可用磁碟空間超過 820 MB,且應以
200
的 HTTP 狀態碼回應健康狀態檢查。 - 不健康:執行個體拒絕健康狀態檢查要求,且未能回應指定次數的連續健康狀態檢查要求。如果健康狀態不良的執行個體持續未能回應健康狀態檢查,且連續失敗次數達到預定值時,App Engine 會繼續傳送健康狀態檢查要求,並重新啟動該執行個體。
- Lameduck。執行個體已排定關閉或重新啟動。在關閉期間,執行個體會完成目前的要求,並拒絕新的要求。應用程式會傳回
503
程式碼,表示執行個體無法處理要求。在執行個體關閉或重新啟動之前,關機指令碼的執行時間有限,無法設定為更短或更長。 - 應用程式 Lameduck。執行個體正在準備處理流量。應用程式會傳回
503
代碼,表示執行個體無法處理要求。當 VM 執行個體完成啟動程序,並準備好提供流量時,執行個體就會恢復正常,並處理要求。如果 VM 執行個體未在期限內啟動,就會變為不健康,並遭到移除。
無效狀態和應用程式無效狀態行為都是虛擬機器執行個體經歷的正常程序。
監控資源使用量
您可以在 Google Cloud 控制台的「執行個體」頁面查看執行個體的運作情況,當中會顯示每個執行個體的記憶體與 CPU 使用量、運作時間、要求次數及其他統計資料。您也可以針對任何執行個體手動啟動關閉程序。
NTP 與 App Engine 彈性環境
App Engine 彈性環境提供網路時間通訊協定 (NTP) 服務,使用 Google NTP 伺服器。不過,彈性環境中的 NTP 服務無法編輯。
執行個體位置
系統會根據專案設定,依地理區域自動配置執行個體。
執行個體資源調度
應用程式執行時,系統會將連入要求轉送至適用服務/版本的現有或新執行個體。每個有效版本都必須至少有一個執行中的例項,而服務/版本的縮放類型會控制如何建立額外的例項。您可以在應用程式的 app.yaml
中指定縮放類型。根據預設,應用程式會使用自動調整資源配置,也就是說,App Engine 會管理閒置執行個體的數量。
- 自動調整資源配置
- 自動調整資源配置會根據要求頻率、回應延遲時間和其他應用程式指標建立執行個體。您可以設定
automatic_scaling
元素,為每項指標指定閾值,以及隨時保持運作的執行個體數量下限。
- 手動調整資源配置
- 手動調整資源配置會指定持續執行的執行個體數量,無論工作負載程度為何皆然。這種資源配置類型讓各項工作 (例如複雜的初始化) 及各時期皆依賴記憶體狀態的應用程式得以執行。
管理服務
視執行個體的調整型態而定,您可以在 Google Cloud 控制台或 Google Cloud CLI 中管理服務和版本。
停止版本
根據您設定的處理流量,App Engine 中的每個版本都會在一或多個執行個體中執行。
按一下分頁標籤,瞭解如何使用自選工具:
主控台
如要停止或停用服務的版本,請按照下列步驟操作:
前往 Google Cloud 控制台的 App Engine「Versions」頁面:
從表格中選取版本,然後按一下「停止」。
gcloud
執行以下指令:
gcloud app versions stop --service=SERVICE VERSION
取代:
- SERVICE 改為您的服務名稱。
- VERSION 改為您的服務版本名稱。
刪除服務
每項服務都可以設定為使用不同的執行階段,並以不同的效能設定運作。您無法刪除預設服務。刪除服務時,系統也會一併刪除專案中的所有相關版本。
按一下分頁標籤,瞭解如何使用自選工具:
主控台
如要刪除服務:
前往 Google Cloud 控制台的 App Engine「Services」(服務) 頁面:
在表格中選取服務,然後按一下「刪除」。
gcloud
執行以下指令:
gcloud app services delete SERVICE
取代:
- SERVICE 改為您的服務名稱。