阿里云:函數(shù)計(jì)算冷啟動優(yōu)化最佳實(shí)踐

來源: 阿里云
作者:阿里云
時間:2021-03-30
17694
函數(shù)計(jì)算為用戶提供了按量和預(yù)留兩種類型的資源。按量資源是指函數(shù)實(shí)例的分配和釋放完全由函數(shù)計(jì)算系統(tǒng)負(fù)責(zé),用戶只需要根據(jù)實(shí)例執(zhí)行請求的時間按需付費(fèi)。按量實(shí)例大大簡化了用戶管理應(yīng)用資源的難度,但也造成了冷啟動延時毛刺等性能問題。

按量函數(shù)實(shí)例的冷啟動優(yōu)化

函數(shù)計(jì)算為用戶提供了按量和預(yù)留兩種類型的資源。按量資源是指函數(shù)實(shí)例的分配和釋放完全由函數(shù)計(jì)算系統(tǒng)負(fù)責(zé),用戶只需要根據(jù)實(shí)例執(zhí)行請求的時間按需付費(fèi)。按量實(shí)例大大簡化了用戶管理應(yīng)用資源的難度,但也造成了冷啟動延時毛刺等性能問題。

ia_100000023164.png

按量實(shí)例的冷啟動環(huán)節(jié)

如上圖所示,冷啟動是指在函數(shù)調(diào)用鏈路中包含了代碼下載、啟動函數(shù)實(shí)例容器、運(yùn)行時初始化、用戶代碼初始化等環(huán)節(jié)。當(dāng)冷啟動完成后,函數(shù)實(shí)例就緒,后續(xù)請求就能直接被函執(zhí)行。冷啟動的優(yōu)化是一個共享的責(zé)任(shared responsibility),需要開發(fā)者和平臺共同努力。函數(shù)計(jì)算已經(jīng)對系統(tǒng)側(cè)的冷啟動做了大量優(yōu)化。對于用戶側(cè)的冷啟動,建議您通常從以下幾方面優(yōu)化:

1.精簡緊湊的代碼包: 開發(fā)者要盡可能瘦身代碼包,去掉不必要的依賴。降低 Download/Extract Code 的時間。例如對 Nodejs 函數(shù)使用 npm prune, 對 Python 函數(shù)使用autoflake,autoremove 去除沒有使用的依賴。另外一些第三方庫中可能會包含測試用例源代碼,無用 binary 和數(shù)據(jù)文件。有選擇地刪除無用文件可以降低函數(shù)代碼下載解壓時間。

2.選擇合適的函數(shù)語言: 由于語言理念的差異,Java 運(yùn)行時冷啟動時間通常要高于其他語言。對于冷啟動延遲敏感的應(yīng)用。在熱啟動延遲差別不大的情況下,使用 Python 這樣的輕量語言可以大幅降低長尾延遲。

3.選擇合適的內(nèi)存: 在并發(fā)量一定的情況下,函數(shù)內(nèi)存越大,冷啟動表現(xiàn)越優(yōu)。

4.降低冷啟動概率:

使用定時觸發(fā)器預(yù)熱函數(shù)

使用 Initializer 函數(shù)入口,函數(shù)計(jì)算會異步調(diào)用初始化接口,消除掉 “User Code Init” 的時間,在函數(shù)計(jì)算系統(tǒng)升級或者函數(shù)更新過程中,用戶對冷啟動無感知。

使用預(yù)留實(shí)例優(yōu)化函數(shù)性能

很多時候,用戶難以消除用戶側(cè)的冷啟動。比如深度學(xué)習(xí)推理中,要加載數(shù) GB 的模型文件;或者函數(shù)要和遺留系統(tǒng)交互,必須使用初始化耗時很長的客戶端等等。在這些場景下,如果函數(shù)對延時非常敏感,您可以為函數(shù)預(yù)留實(shí)例,或者在同一個函數(shù)里同時使用預(yù)留和按量實(shí)例。預(yù)留實(shí)例的分配和釋放由用戶管理,根據(jù)實(shí)例的運(yùn)行時長計(jì)費(fèi)。當(dāng)負(fù)載對資源的需求超過預(yù)留實(shí)例的能力后,系統(tǒng)自動使用按量實(shí)例,從而在性能和資源利用率上獲得很好的平衡。通過預(yù)留實(shí)例,一方面用戶能夠根據(jù)函數(shù)的負(fù)載變化提前分配好計(jì)算資源;另一方面系統(tǒng)能夠在擴(kuò)容按量實(shí)例時仍然使用預(yù)留實(shí)例處理請求,從而徹底消除冷啟動帶來的延時毛刺。下圖展示了用戶混合使用預(yù)留和按量資源的情況,既避免了冷啟動的延時毛刺,又實(shí)現(xiàn)了極高的資源利用率。

ia_100000023165.png

在函數(shù)的預(yù)留和按量資源間自動伸縮

當(dāng)用戶混合使用預(yù)留和按量實(shí)例時,函數(shù)計(jì)算保證優(yōu)先使用預(yù)留資源實(shí)例。假設(shè)您為函數(shù)預(yù)留了 10 個實(shí)例,意味著每秒鐘能使用的預(yù)留資源是 10 個實(shí)例的算力。如果一秒內(nèi)需要的實(shí)例數(shù)超過 10 個,系統(tǒng)會創(chuàng)建新的按量實(shí)例處理請求。判斷一個實(shí)例是否滿載和該實(shí)例上的并發(fā)請求數(shù)配置有關(guān)。系統(tǒng)追蹤每個函數(shù)實(shí)例上正在處理的請求數(shù),當(dāng)并發(fā)的請求數(shù)達(dá)到用戶設(shè)定的上限后,系統(tǒng)會選擇其他的函數(shù)實(shí)例。當(dāng)所有實(shí)例的請求數(shù)都達(dá)到上限后,則創(chuàng)建新的實(shí)例。預(yù)留實(shí)例由用戶管理,即使沒有請求,您也需要為閑置的預(yù)留實(shí)例付費(fèi)。按需實(shí)例由函數(shù)計(jì)算系統(tǒng)管理,系統(tǒng)在適當(dāng)?shù)臅r候?qū)⒒厥諞]有請求處理的閑置按量實(shí)例。您只需為按量實(shí)例實(shí)際處理請求的時間段付費(fèi)。計(jì)費(fèi)規(guī)則詳情請參考函數(shù)計(jì)算計(jì)費(fèi)文檔。您可以設(shè)置按量資源的使用上限,確保資源的使用在期望的范圍內(nèi)。

函數(shù)計(jì)算提供“活躍實(shí)例數(shù)(Active Instance Count)”指標(biāo)幫助您掌控函數(shù)實(shí)際使用的資源。該指標(biāo)的含義是當(dāng)前時刻正在處理請求的預(yù)留和按量函數(shù)實(shí)例數(shù)總和,詳情請參見指標(biāo)項(xiàng)文檔。如下圖所示,通過對比活躍實(shí)例數(shù)和預(yù)留實(shí)例數(shù),您能夠一目了然的判斷是否設(shè)置了合理數(shù)量的預(yù)留資源。

ia_100000023167.jpg

總結(jié)

綜上,函數(shù)計(jì)算為您提供了豐富的手段和指標(biāo)項(xiàng),幫助您輕松消除冷啟動帶來的延時毛刺,獲得穩(wěn)定的性能。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于阿里云,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
阿里云助力《誅仙世界》端游正式開服!
阿里云助力《誅仙世界》端游正式開服!
近?,完美世界游戲歷時多年打造的新國?仙俠MMORPG端游《誅仙世界》在阿?云上正式開服。
阿里云
云服務(wù)
2024-12-292024-12-29
一文詳解阿里云AI大基建
一文詳解阿里云AI大基建
面向AI時代,阿里云基礎(chǔ)設(shè)施是如何創(chuàng)新與發(fā)展的?計(jì)算、網(wǎng)絡(luò)、存儲、服務(wù)器、集群、可觀測等,阿里云全新升級的AI Infra到底有哪些重磅更新?
阿里云
云服務(wù)
2024-11-022024-11-02
AI時代云安全新范式,阿里云安全能力全線升級!
AI時代云安全新范式,阿里云安全能力全線升級!
AI時代,云安全面臨著新的挑戰(zhàn),不僅要持續(xù)面對以往的傳統(tǒng)問題,更需要全新理念落地于產(chǎn)品設(shè)計(jì)、技術(shù)演進(jìn)、架構(gòu)設(shè)計(jì),才能實(shí)現(xiàn)效果、性能、和成本的最優(yōu)解。
AI
阿里云
云服務(wù)
2024-09-272024-09-27
連續(xù)四年!阿里云領(lǐng)跑中國公有云大數(shù)據(jù)平臺
連續(xù)四年!阿里云領(lǐng)跑中國公有云大數(shù)據(jù)平臺
近日,國際數(shù)據(jù)公司(IDC)發(fā)布《中國大數(shù)據(jù)平臺市場份額,2023:數(shù)智融合時代的真正到來》報(bào)告——2023年中國大數(shù)據(jù)平臺公有云服務(wù)市場規(guī)模達(dá)72.2億元人民幣,其中阿里巴巴市場份額保持領(lǐng)先,占比達(dá)40.2%,連續(xù)四年排名第一。
阿里云
云服務(wù)
2024-09-182024-09-18
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家