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

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

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

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

ia_100000023164.png

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

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

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

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

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

4.降低冷啟動(dòng)概率:

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

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

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

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

ia_100000023165.png

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

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

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

ia_100000023167.jpg

總結(jié)

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

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