全部產品
Search
文件中心

Serverless App Engine:SAEAuto Scaling最佳實務

更新時間:Sep 03, 2024

SAEAuto Scaling可以實現在秒級流量波峰到來時應用執行個體自動擴容,波峰結束後自動縮容,保障應用平穩運行,具有高可靠性、免營運、低成本的特點。以應對電商大促為例,您可以通過部署應用、配置彈性規則、即時監控並調整策略,以及執行後續的營運最佳化的全流程,確保平台高效穩定響應使用者的需求。

Auto Scaling流程圖

SAEAuto Scaling情境的實踐全流程如下圖所示。

dg_best_practice_of_sae_scaling_rule

使用限制

僅適用於微服務應用。

準備工作

  • 配置應用健全狀態檢查:確保應用在Auto Scaling過程中的整體可用性,僅在啟動、運行並且準備完成時才接收流量。具體操作,請參見設定健全狀態檢查

  • 配置應用生命週期管理:確保縮容時按照預期實現應用優雅下線,配置停止前處理(PreStop設定)。具體操作,請參見設定應用生命週期管理

  • 採用指數重試機制:為避免因彈性不及時、應用啟動不及時或應用沒有優雅上下線導致服務調用異常,採用Java指數重試機制進行服務調用。

  • 最佳化應用啟動速度。

    • 軟體包最佳化:最佳化應用啟動時間,降低因類載入、緩衝等外部因素對應用啟動時間長度造成的影響。

    • 鏡像最佳化:精簡鏡像大小,減少建立執行個體時鏡像拉取耗時,可以藉助開源工具分析並精簡鏡像層資訊。

    • Java應用啟動最佳化:在SAE上建立應用時,選擇Dragonwell 11環境能夠開啟應用加速功能。具體操作,請參見設定Java應用的啟動加速

配置彈性規則

配置Auto Scaling指標

SAE支援基礎監控、應用監控多指標組合配置,您可以根據當前應用的屬性(CPU敏感、記憶體敏感或IO敏感)靈活配置。

您可以查看基礎監控應用監控對應指標的歷史資料( 例如過去6小時、12小時、1天或7天峰值,P95或P99數值)並預估指標目標值,藉助PTS等壓測工具進行壓測,瞭解應用可以應對的並發請求數量、需要的CPU和記憶體數量,以及高負載狀態下的應用回應程式式,以評估應用容量峰值大小。

在配置Auto Scaling策略時,您需要考慮以下因素:

  • 權衡可用性與成本,配置指標目標值。樣本如下:

    • 可用性最佳化策略:配置指標值為40%。

    • 可用性成本平衡策略:配置指標值為50%。

    • 成本最佳化策略:配置指標值為70%。

  • 考慮梳理上下遊、中介軟體和DB等相關依賴性,並配置對應的彈性規則或限流降級手段,以確保擴容時全鏈路的可用性。

彈性規則配置完成後,您可以通過監控並調整彈性規則使容量接近應用實際負載。關於查看監控的具體步驟,請參見基礎監控

配置記憶體指標

Java應用運行時最佳化是通過釋放實體記憶體,增強記憶體指標與業務關聯性。藉助Dragonwell運行時的環境,通過增加JVM參數開啟ElasticHeap能力,支援Java堆記憶體的動態Auto Scaling,從而節約了Java應用在運行時實際使用的實體記憶體。關於ElasticHeap的更多資訊,請參見G1ElasticHeap

推薦配置為Dragonwell+ElasticHeap Periodic uncommit模式 (自動模式)。具體操作,請參見操作步驟設定啟動命令

  • Java環境:在配置JAR包地區,從Java環境下拉式清單中,選擇Dragonwell類型的配置項。配置Jar包

  • JVM參數:在啟動命令設定地區,輸入-XX:+ElasticHeapPeriodicUncommit啟動參數

說明

不適用配置記憶體指標的應用類型:採用動態記憶體管理進行記憶體配置(例如Java JVM記憶體管理、Glibc Malloc和Free操作)的部分應用,沒有及時向作業系統釋放其閑置記憶體,導致無法即時減少執行個體消耗的實體記憶體和新增執行個體消耗的平均記憶體,進而導致無法觸發縮容。

配置執行個體數

  • 最小執行個體數配置

    確認最小執行個體數≥2,配置多可用性區域vSwitch。避免因底層節點異常導致執行個體驅逐或可用性區域無可用執行個體,應用停止工作。

  • 最大執行個體數配置

    確認最大執行個體數≤可用性區域IP數。避免因配置的IP數超出限制,應用無法新增執行個體。

    您可以在基本資料頁面的應用資訊地區查看當前應用的可用IP數。如果可用IP較少,請替換或新增vSwitch。具體操作,請參見驗證Auto Scaling策略

    應用資訊

觀測Auto Scaling過程

彈性達到最大值

您可以在應用概覽頁頁面查看當前開啟Auto Scaling配置的應用,並監控當前執行個體數已經到達峰值的應用,對其Auto Scaling配置重新進行評估。

彈性生效的應用

說明

如果單個應用需要彈出超過50個執行個體,請加入釘群(釘群號:32874633)申請白名單。

可用性區域再均衡

Auto Scaling觸發縮容後,可能會導致可用性區域分配不均。您可以在應用基本資料頁面的執行個體列表,查看執行個體所屬可用性區域。如果可用性區域不均衡,您可以通過重啟執行個體實現再均衡。

vSwitch

配置自動回復彈性

進行部署應用等變更單操作時,SAE會停止當前應用的Auto Scaling配置,避免兩種操作衝突。如果您希望變更單完成後能夠恢複彈性配置,可以在部署應用頁面選擇系統自動回復

恢複自動彈性方式

營運Auto Scaling

查看應用事件

您可以在目標應用的應用事件頁面,觀測SAE彈性生效行為,包括查看Auto Scaling時間和動作,以此來衡量Auto Scaling策略的有效性並按需調整。更多資訊,請參見查看應用事件

應用事件

查看應用執行個體監控圖

您可以在目標應用的基本資料頁面的基本資料頁簽,觀測應用執行個體趨勢圖,包括7天內的CPU使用率、記憶體使用量率和TCP活躍串連數、服務要求量和平均回應時間等監控指標。更多資訊,請參見查看應用執行個體監控(邀測)

sc_pod_trend_indicator_chart