日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

函數計算冷啟動優化最佳實踐

本文介紹如何通過設置函數計算的預留模式實例優化按量模式實例的冷啟動和函數性能。

什么是冷啟動

函數計算提供了按量模式和預留模式兩種實例使用模式。按量模式是指函數實例的分配和釋放完全由函數計算系統負責,您只需要根據實例執行請求的時間按需付費。按量模式降低了管理應用資源的難度,但也造成了冷啟動、延時等性能問題。

冷啟動是指在函數調用鏈路中的代碼下載、啟動函數實例容器、運行時初始化、代碼初始化等環節。當冷啟動完成后,函數實例就緒,后續請求就能直接被執行。

image

優化按量模式的冷啟動

冷啟動的優化需要用戶和平臺配合完成。函數計算已經對系統側的冷啟動做了大量優化。對于用戶側的冷啟動,建議您從以下幾方面優化:

  • 精簡代碼包

    開發者要盡量縮小代碼包。去掉不必要的依賴。例如,在Node.js中執行npm prune命令,在Python中執行autoflake 。另外,某些第三方庫中可能會包含測試用例源代碼、無用的二進制文件和數據文件等,刪除無用文件可以降低函數代碼下載和解壓時間。

  • 選擇合適的函數語言

    由于語言理念的差異,Java運行時冷啟動時間通常要高于其他語言。對于對冷啟動延遲敏感的應用,在熱啟動延遲差別不大的情況下,使用Python輕量語言可以大幅降低長尾延遲。

  • 選擇合適的內存

    在并發量一定的情況下,函數內存越大,分配的CPU資源相應越多,因此冷啟動表現越優。

  • 降低冷啟動概率

    • 使用定時觸發器預熱函數。

    • 使用Initializer回調,函數計算會異步調用初始化接口,消除掉代碼初始化的時間,在函數計算系統升級或者函數更新過程中,您對冷啟動無感知。

混合模式

用戶側的冷啟動一般難以消除。例如,在深度學習推理中,要加載大量的模型文件時;函數要和遺留系統交互,必須使用初始化耗時很長的客戶端時。在這些場景下,如果函數對延時非常敏感,您可以為函數設置預留模式實例,或者在同一個函數里同時使用預留模式實例和按量模式實例。

預留模式實例的分配和釋放由您管理,根據實例的運行時長計費。當負載對資源的需求超過預留模式實例的能力后,系統自動使用按量模式實例,從而在性能和資源利用率上獲得平衡。通過預留模式實例,您能夠根據函數的負載變化提前分配好計算資源,系統能夠在擴容按量模式實例時仍然使用預留模式實例處理請求,從而徹底消除冷啟動帶來的延時。

下圖展示了混合使用預留模式實例和按量模式實例,既避免了冷啟動的延時,又實現了極高的資源利用率。

按量實例和預留實例

當您混合使用預留模式實例和按量模式實例時,保證優先使用預留模式實例。假設您為函數預留了10個實例,如果一秒內需要的實例數超過10個,系統會創建新的按量模式實例處理請求。判斷一個實例是否滿載和該實例上的并發請求數配置有關。系統追蹤每個函數實例上正在處理的請求數,當并發的請求數達到您設定的上限后,系統會選擇其他的函數實例。當所有實例的請求數都達到上限后,創建新的實例。預留模式實例由您管理,即使沒有請求,您也需要為閑置的預留模式實例付費。按量模式實例由函數計算系統管理,系統在適當的時候將回收沒有請求處理的閑置按量模式實例。您只需為按量模式實例實際處理請求的時間段付費。計費規則詳情,請參見計費概述。您可以設置按量模式實例的使用上限,確保資源的使用在期望的范圍內。