注意:Go 1.11 已於 2024 年 1 月 30 日
停止支援。現有的 Go 1.11 應用程式將繼續執行並接收流量。不過,App Engine 可能會阻擋
支援期限過後使用執行階段的應用程式重新部署。建議您
改用最新的 Go 支援版本。
設定暖機要求以改善效能
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
在將應用程式的程式碼載入到新建立的執行個體時,您可以使用暖機要求來減少要求及回覆的延遲時間。
App Engine 經常需要將應用程式的程式碼載入至新的執行個體。載入執行個體作業可能會在發生以下情況時進行:
- 重新部署應用程式的版本時。
- 因要求的負載超過目前這組運作中執行個體的容量,而建立新的執行個體時。
- 基礎架構或實體硬體進行維護及修復時。
將應用程式的程式碼載入至新的執行個體時,可能會產生載入要求。載入要求可能會讓使用者面臨的要求延遲時間增加,但可使用「暖機要求」來避免此延遲時間增加情形。暖機要求會在任何即時要求到達該執行個體前,先將您應用程式的程式碼載入至新的執行個體。
如果您的應用程式啟用了暖機要求,App Engine 會嘗試偵測應用程式何時需要新的執行個體,並發出暖機要求來初始化新的執行個體。然而,嘗試偵測的功能並非在每種情況下均能有效運作。因此,即使應用程式已啟用暖機要求,仍可能會產生載入要求。舉例來說,如果您的應用程式沒有提供流量,則向應用程式發出的第一個要求一律為載入要求,而非暖機要求。
如同其他所有向 App Engine 應用程式發出的要求,暖機要求也會計入執行個體時數。在大多數啟用暖機要求的情況下,您不會發現執行個體小時數增加,因為應用程式只會在暖機要求中初始化,而非載入要求。如果您決定執行更多工作,例如在暖機要求期間進行預先快取,則執行個體小時用量可能會增加。如果您將 min_idle_instances
設為大於 0
,這些執行個體首次啟動時可能會出現暖機要求,但在該時間過後,這些執行個體仍可供使用。
啟用暖機要求
App Engine 排程器會使用暖機要求,並依據使用者提供的設定,控制執行個體的自動調整資源配置。啟用暖機要求後,App Engine 會向 /_ah/warmup
發出 GET
要求。您可以針對這個要求實作處理常式,以執行應用程式專屬的工作,例如預先快取應用程式資料。
排程器判定需要更多執行個體時,就會啟動執行個體。由於排程器會使用暖機要求啟動執行個體,因此即使停用了暖機要求,這些要求仍可能會出現在記錄檔中。
請注意,系統不保證會呼叫暖機要求,並且在某些狀況下會改為傳送載入要求,例如:該執行個體為首先啟動的執行個體,或是流量發生遽增。然而,如果暖機要求已啟用,系統會「盡可能」嘗試將要求傳送至暖機完成的執行個體。
如要啟用暖機要求,請在 app.yaml
檔案的 inbound_services
指令下方新增 warmup
元素,例如:
inbound_services:
- warmup
建立處理常式
建立處理常式,以便處理傳送至 /_ah/warmup
的要求。處理常式應執行應用程式需要的任何暖機邏輯。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-08 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-07-08 (世界標準時間)。"],[[["Warmup requests reduce latency by loading your app's code into a new instance before live requests arrive, avoiding delays caused by loading requests."],["App Engine uses warmup requests to initialize new instances when needed, such as during redeployments, increased traffic, or infrastructure maintenance."],["Warmup requests are triggered by App Engine issuing `GET` requests to `/_ah/warmup`, and you can implement handlers for this endpoint to perform tasks like pre-caching."],["Enabling warmup requests involves adding the `warmup` element under the `inbound_services` directive in your `app.yaml` file, which activates the feature."],["While warmup requests aim to prevent loading requests, they are not guaranteed in all situations, such as when an instance is the very first one being started or if there is a sudden surge in traffic."]]],[]]