色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

華為云發布冷啟動加速解決方案:助力Serverless計算速度提升90%+

華為DevCloud ? 來源:未知 ? 2023-01-19 16:15 ? 次閱讀
子游:華為元戎高級工程師
平山:華為云中間件 Serverless 負責人
琪君:華為元戎負責人


|Key Takeaways
  1. 冷啟動 (Cold Start) 一直是 Serverless 領域面臨的優化難題之一,華為云創新提出了基于進程級快照的冷啟動加速解決方案,致力于在用戶幾乎無感知的前提下,有效提升應用的冷啟動性能;
  2. 特別的,Java 應用冷啟動速度慢的問題尤為突出。本文以 Java 場景為例,介紹華為云在冷啟動性能優化方面的探索歷程,并揭秘 90%+ 性能提升背后的技術實現原理。文末我們也提供了 Quick Start,幫助用戶更快地上手該新特性。

|問題引言:

Java 應用冷啟動速度面臨巨大挑戰

Serverless 應用啟動時,都需要先進行初始化。其初始化時長一般取決于應用本身的屬性,如業務邏輯、編程語言等,其中 Java 應用的初始化過程通常是最慢的。以下基于一個典型的 Java 應用,對其啟動時延進行拆解,各階段耗時分布如圖 1 所示:
圖 1:Java 應用啟動耗時分解
其中,端到端冷啟動耗時可分為 2 大部分:
  • 平臺側時間:
主要包含執行環境創建(如容器啟動)、執行環境初始化(如代碼包下載、部署)等準備工作,此階段最多是秒級響應,在冷啟動整體耗時中占比很低,通常不到 5%,平臺側也支持一些優化方式,將耗時進一步壓縮至毫秒級;
  • 服務側時間:
主要包含應用框架啟動(如構建 Spring ApplicationContext)、業務初始化(如業務數據初始化)等動作,此階段耗時一般較長。在本例中,應用框架啟動耗時占比約 30%,業務初始化占比約 65%。由此推斷,該階段執行的動作是 Java 應用啟動慢的核心所在
Java 應用啟動慢的根因其實也不難理解,主要有:
  • 框架復雜:Spring 作為一個企業級的框架,為了支持廣泛的應用需求,存在大量的可配置和初始化邏輯,并通過復雜的設計模式來支撐這種靈活性。例如,一個 spring-boot-web 的 hello world,依賴的 class 文件就多達 7404 個,見圖 2;
  • JVM 的一次編譯,到處運行:類加載時,查找類、校驗類的開銷會隨著應用復雜度而增長;同時,在應用剛啟動時,方法還沒有完全被 JIT 編譯完成,因此大部分情況停留在解釋執行,影響了應用啟動的速度。
圖 2:hello world 依賴的 class 個數
因此,對于時延敏感型的 Java 應用程序,在突發流量下發生冷啟動時,可能會導致用戶體驗下降。為了應對這一挑戰,用戶可以提前預留資源來減少冷啟動發生的頻率,或者對自己的應用進行性能調優,但是第一類方案無形中增加了用戶的 keep-alive 成本,第二類方案也有著較高的技術門檻且往往效果比較有限。


|基于快照技術的冷啟動加速:

華為云的優化探索之路

Part I:站在巨人的肩膀上
業界針對 Java 應用的啟動速度優化已有一些優秀的實踐,可分為以下幾類:
AOT:
主要有 GraalVM[1]、EJET 等,AOT 方案是通過在程序運行前,直接將 Java 源碼編譯成本地機器碼,因為提前編譯并不占用運行時間,以此來顯著提升應用的啟動速度,同時本地機器碼可以持久化于磁盤中,不占用內存且可重復使用。但是該類方案在特定場景也存在一定的局限性,如 GraalVM 對反射的支持并不友好,在涉及反射的地方都需要新增配置;EJET 雖然解決了反射的問題,但是其編譯時間較長且不穩定,在復雜應用場景下也存在性能劣化問題。
AppCDS[2]
AppCDS 方案是通過在 JVM 啟動時從 JSA 文件讀取共享數據,省略了共享類的加載過程,提升 JVM 啟動速度;同時,多個 JVM 共享同一個歸檔文件,減少動態內存占用,可以提升內存使用率。該類方案主要適用于類加載比較多的場景,在一般場景下提升有限,且其對共享類的支持有一定限制,如運行時動態生成類不支持共享等。
其他針對性(Spring 框架)方案:
如 Lazy Initialization[3]、Scanning-index[4] 等,前者通過懶加載的方式來減少啟動時加載類的數量,一定程度上提升啟動速度;后者通過在編譯階段創建索引,避免啟動時掃描所有路徑來進行加速。但是該類方案在 Serverless 場景缺乏一定的普適性。
華為云 FunctionGraph 創新提出的基于進程級快照的冷啟動加速解決方案,致力于在用戶無感知(無需 / 少量進行代碼適配)的前提下,幫助用戶突破冷啟動的性能瓶頸。本優化方案直接從應用初始化后的快照進行運行環境恢復,跳過復雜的框架、業務初始化階段,從而顯著降低 Java 應用的啟動時延,實測性能提升達 90%+。
Part II:快照方案如何優化 Java 應用啟動速度
當用戶 Java 函數打開冷啟動加速的配置開關后,華為云 FunctionGraph 會預先執行函數對應的初始化代碼,獲取其初始化執行上下文環境的快照,并進行加密緩存。后續調用該函數并觸發冷啟動擴容時,會直接從提前初始化后的應用快照來恢復執行環境,而非重新走一遍初始化流程,以此達到極大提升啟動性能的效果。
先結合圖 3 直觀對比一下優化前、后的冷啟動流程差異:
圖 3:基于快照加速的冷啟動流程
基于快照的冷啟動流程,主要包含以下幾個關鍵步驟:
Step 1:平臺側提前準備執行環境,并預執行初始化代碼、保存應用快照,此動作后續統稱為 Checkpoint
  • 與圖 1 對應,此階段一般占總耗時的 90% 左右。
Step 2:在請求到達,觸發函數新實例擴容時,直接從應用快照來恢復新的執行環境,此動作后續統稱為 Restore
  • Restore 耗時是秒級,相當于將數十秒完整的初始化時間(在圖 1 的示例中)縮短至秒級 Restore 耗時,啟動性能提升了一個數量級
Step 3:(可選)應用進程從快照恢復后,執行 Restore Hook 完成業務狀態的刷新
  • 由于 Image File 是進程運行時的快照,在重建進程之后,會涉及到進程持有狀態的有效性更新。例如已建立的外部鏈接、加載到進程里的緩存信息等。故我們引入了 Restore Hook 的概念,提供手段讓業務對這些狀態進行刷新,詳見 Part IV
Step 4:應用 Ready,具備接著往下執行業務邏輯的能力
特別的,容器本身也是主機上的進程,故本優化方案也支持容器粒度的 Checkpoint,即對容器內指定進程進行 CR,與傳統的輕量化虛機快照相比,其精細化程度更高、也更靈活。其原理詳見圖 4:
圖 4:基于容器的 CR 流程
  1. 在 Source 機器上啟動微服務,通過健康檢查和初始化調用后,進行 Checkpoint,停止服務,生成進程快照信息;
  2. 在 Source 機器上將進程快照信息和微服務所有相關依賴,進行壓縮,加密生成內存快照包,并上傳至云端存儲。
  3. 在 Target 機器上從持久化存儲中下載對應微服務的內存快照包,進行解壓恢復。
  4. 在 Target 機器上 Restore 微服務進程;
Part III:快照技術揭秘
華為云提出的基于進程級快照的冷啟動加速方案,其核心技術依托于 CRIU[5],它支持對用戶空間指定的進程進行“凍結”(即停止進程,并將該進程運行的所有上下文持久化為鏡像文件),并在必要時對其進行“解凍”(即通過保存的鏡像文件來正確恢復進程運行的上下文),其核心工作流程如圖 5-6 所示[6]
圖 5:CRIU 如何工作——Checkpoint
圖 6:CRIU 如何工作——Restore
Checkpoint
  1. CRIU 首先通過操作系統的 /proc 目錄獲取指定進程和該進程下所有子進程的信息,包含文件描述符 (/proc/$pid/fd)、管道參數網絡配置和內存映射文件 (/proc/$pid/maps) 等;
  2. CRIU 接著通過 Linux 的 ptrace syscall 接口把一段特殊代碼動態注入到該進程的地址空間,通過執行該動態代碼,CRIU 以 UNIX 守護進程的方式收集 dumpee 進程存放在寄存器里的內存數據;
  3. CRIU 將所有進程信息都收集完畢后,再次調用 ptrace 接口,去掉動態注入的代碼,恢復該進程的原有代碼;
  4. CRIU 根據收集的進程內存信息,生成多個以功能分類的鏡像文件,并默認殺死進程,完成 Checkpoint;
Restore
  1. CRIU 解析 Checkpoint 階段生成的鏡像文件,并分析多進程的共享資源;
  2. CRIU 通過 Linux 的 fork 接口重新構建、恢復進程和其共享資源;
  3. CRIU 恢復所有任務的資源,但不包含內存映射地址,定時器,線程等;
  4. CRIU 根據鏡像文件重新映射內存空間,切換進程上下文,恢復進程的繼續執行,完成 Restore;
Part IV:Restore Hook
如 Part II 所述,雖然本優化方案能極大提升 Java 應用的冷啟動速度,但是快照技術在某些場景也存在一定的局限性,較難做到對現有應用的全透明化。通過快照恢復后,應用的網絡連接狀態會受到影響,涉及到 TCP Socket 重連等場景,如服務注冊、DB 連接,分布式通信,消息隊列等。
這部分場景依賴應用本身的網絡重連機制來更新正確,因此,本優化方案中也引入了 Restore Hook 的概念,提供手段讓業務對這些狀態進行刷新。Restore Hook 當前已支持大部分主流第三方組件的重連,詳見圖 7:
圖 7:Restore Hook 支持的第三方組件

不難發現,Restore Hook 需要應用本身進行少量的代碼適配。為了進一步簡化應用的改造負擔,我們也進行了一種新的技術嘗試,可以理解其充當了用戶應用與 BaaS 之間的紐帶,通過狀態卸載等手段,對開發者透明,幫助應用完成狀態的自動化刷新。這部分探索會在后續的技術博文中跟大家分享,敬請期待。

|效果實測:

Java 冷啟動時延降低 90%+

我們選取了公司內部典型的 Java 應用,對其原始初始化流程、Restore 流程進行了對比測試,如圖 8 所示。測試結果表明,本優化方案將應用的啟動速度平均提升了 95%+,即使快照包的增大一定程度上增加了包下載、解壓的耗時,但最終端到端的冷啟動時延也降低了 90%+。
圖 8:冷啟加速前后的數據對比

|快速上手:

基于華為云 FunctionGraph 的簡單實戰

華為云發布的基于進程級快照的冷啟動加速方案,是一種性能優化服務,用戶無需額外付費,只需進行簡單的配置、少量的代碼修改,即可享受到該創新方案帶來的冷啟動性能提升。
下文基于華為云 FunctionGraph,為大家帶來特性 Quick Start:
1. 登錄 FunctionGraph 控制臺,創建 Java 函數,并打開“快照式冷啟動”開關
2. 可選)配置 Restore Hook,并在函數代碼中實現對應的 Hook 邏輯
3. 函數發布新版本后,觸發快照的自動化制作
4. 請耐心等待快照制作完成(5min 超時時間)
5. 調用 Java 函數,體驗快照優化后的性能提升


|總結與展望

本文介紹了華為云對冷啟動優化這一業界難題的探索之路,創新提出了基于進程級快照的優化方案。當然,本方案也并非十全十美,它依然面臨著一系列挑戰,如文中提到的應用狀態刷新、進程級 CR 的精細化控制、多平臺的兼容性等,我們也在持續探索、優化中。
同時,FunctionGraph 作為華為元戎內核加持的下一代 Serverless 函數計算與編排服務,致力于持續為用戶提供方便、迅捷的 Serverless 服務體驗。您可以登錄華為云 FunctionGraph 控制臺來深入體驗,更多信息請參閱 FunctionGraph 官方文檔 [7]。后續我們將分享更多圍繞通用全場景 Serverless 的前沿理論及其案例實踐,回饋社區。


參考資料
[1]https://www.graalvm.org/22.3/reference-manual/java/compiler/
[2]https://wiki.openjdk.org/display/HotSpot/Application+Class+Data+Sharing+-+AppCDS
[3]https://spring.io/blog/2019/03/14/lazy-initialization-in-spring-boot-2-2
[4]https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-scanning-index
[5]https://github.com/checkpoint-restore/criu
[6]https://speakerdeck.com/udzura/introduction-to-criu?slide=32
[7]https://support.huaweicloud.com/functiongraph/index.html


原文標題:華為云發布冷啟動加速解決方案:助力Serverless計算速度提升90%+

文章出處:【微信公眾號:華為DevCloud】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 華為
    +關注

    關注

    216

    文章

    34411

    瀏覽量

    251503

原文標題:華為云發布冷啟動加速解決方案:助力Serverless計算速度提升90%+

文章出處:【微信號:華為DevCloud,微信公眾號:華為DevCloud】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于亞馬遜科技的GROW with SAP解決方案 助力企業簡化云端ERP部署

    GROW with SAP解決方案將上架亞馬遜科技Marketplace,助力企業快速應用ERP軟件,并利用前沿生成式AI解決方案實現創
    的頭像 發表于 12-09 15:11 ?165次閱讀

    華為、上海鈞達數科 發布區塊鏈數據要素聯合解決方案

    【摘要】 9 月 19 日,在華為全聯接大會 2024 期間,華為與上海鈞達數科在上海世博展覽館聯合發布了基于華為
    的頭像 發表于 10-09 20:16 ?441次閱讀
    <b class='flag-5'>華為</b><b class='flag-5'>云</b>、上海鈞達數科 <b class='flag-5'>發布</b>區塊鏈數據要素聯合<b class='flag-5'>解決方案</b>

    華為全域 Serverless 8 月更新盤點

    CCE Autopilot、Serverless 應用托管 CAE、數據倉庫 DWS、事件網格 EventGrid 等。華為函數工作流 FunctionGraph 一項基于事件驅
    的頭像 發表于 09-27 00:06 ?832次閱讀
    <b class='flag-5'>華為</b><b class='flag-5'>云</b>全域 <b class='flag-5'>Serverless</b> 8 月更新盤點

    基于DPU的容器冷啟動加速解決方案

    Serverless計算方式,極大地簡化了開發人員的工作,使他們能夠專注于應用的構建與運行,而不再需要承擔服務器管理的負擔。 然而,FaaS模式也并非沒有缺陷,其中最為人詬病的便是“冷啟動”問題。所謂
    的頭像 發表于 09-13 11:50 ?407次閱讀
    基于DPU的容器<b class='flag-5'>冷啟動</b><b class='flag-5'>加速</b><b class='flag-5'>解決方案</b>

    華為發布基于盤古大模型的醫療健康解決方案

    華為近期發布了基于其強大盤古大模型的醫療健康解決方案,該方案精準聚焦于藥物研發、智慧醫療、基因測序、臨床研究及中醫藥五大關鍵領域,標志著A
    的頭像 發表于 08-13 18:25 ?1181次閱讀

    更快更穩更優質:華為 618 營銷季下載加速解決方案測評

    體驗帶來了極大的困擾,同時也會對相關企業帶來巨大損失。為此,華為 CDN 下載加速解決方案應運而生,為企業加速域名下的靜態內容提供提供智能
    的頭像 發表于 06-24 17:46 ?392次閱讀
    更快更穩更優質:<b class='flag-5'>華為</b><b class='flag-5'>云</b> 618 營銷季下載<b class='flag-5'>加速</b><b class='flag-5'>解決方案</b>測評

    設置應用冷啟動優化案例

    應用,詳細介紹如何進行冷啟動的性能優化。 AppSpawn 預加載 可以通過預加載一些so,加快冷啟動速度。預加載so 配置在appspawn_preload.json文件中。 文件路徑base
    發表于 04-22 16:31

    華為 Serverless 應用中心:一鍵開啟 AI 文生圖新時代,引領行業創新浪潮

    隨著數字化時代的快速發展,AI 技術已成為推動行業創新的關鍵動力。華為緊跟時代步伐,全新上線 Serverless 應用中心,為用戶提供海量應用模板,實現一鍵部署函數和周邊依賴資源,讓您輕松擁抱
    的頭像 發表于 03-19 22:57 ?461次閱讀

    華為 Serverless 應用中心嶄新上線,一鍵部署 AI 文生圖應用引領創新潮流

    近日,華為再次展現其技術實力,全新推出了 Serverless 應用中心,為用戶提供了海量的應用模板,讓一鍵部署函數及關聯資源成為現實,極大提升了應用的部署效率。無論是開發者還是運維
    的頭像 發表于 03-19 22:56 ?511次閱讀
    <b class='flag-5'>華為</b><b class='flag-5'>云</b> <b class='flag-5'>Serverless</b> 應用中心嶄新上線,一鍵部署 AI 文生圖應用引領創新潮流

    軟通動力與華為聯合發布智慧養殖解決方案

    )合作伙伴身份受邀參會,并攜手華為發布了面向農牧行業的聯合解決方案——軟通動力華為智慧養殖解決方案。該
    的頭像 發表于 03-19 22:21 ?451次閱讀
    軟通動力與<b class='flag-5'>華為</b>聯合<b class='flag-5'>發布</b>智慧養殖<b class='flag-5'>解決方案</b>

    華為發布金融AICC智能聯絡中心解決方案2.0,賦能全球金融行業

    西班牙巴塞羅那2024年3月5日?/美通社/ -- MWC24 巴塞羅那期間,華為發布了"華為金融AICC智能聯絡中心解決方案2.0",
    的頭像 發表于 03-06 14:33 ?524次閱讀
    <b class='flag-5'>華為</b><b class='flag-5'>發布</b>金融AICC智能<b class='flag-5'>云</b>聯絡中心<b class='flag-5'>解決方案</b>2.0,賦能全球金融行業

    華為發布Net5.5G智能網4大主力方案,躍升數字生產力

    2024年世界移動大會(MWC 2024)期間,在主題為“智能網,加速行業智能化” 的IP Club技術菁英匯上,華為面向智能化時代,發布Net5.5G智能
    的頭像 發表于 02-28 09:42 ?510次閱讀

    鴻蒙原生應用元服務實戰-Serverless華為賬戶認證登錄需盡快適配

    一、ArkTS\\\\API9,服務器端基于serverless開發的應用與元服務華為賬號注冊登錄功能暫時是不支持的 二、3月1日后的審核要求 3月1日的時間是快到了。 三、會導致的結果
    發表于 02-20 10:14

    軟通動力聯合華為發布基線解決方案

    政策,共同展望生態合作前景。主會場中,重磅發布了2024年“華為生態伙伴聯合解決方案”,軟通動力受邀出席發布儀式,與
    的頭像 發表于 01-17 10:48 ?887次閱讀

    軟通動力成為華為聯合基線解決方案TOP1服務商

    近日,軟通動力與華為長期以來的深入合作、深度協作再結碩果,雙方共同設計的企業上服務解決方案、數據中臺及數據治理服務解決方案,順利通過
    的頭像 發表于 01-09 10:59 ?801次閱讀
    軟通動力成為<b class='flag-5'>華為</b><b class='flag-5'>云</b>聯合基線<b class='flag-5'>解決方案</b>TOP1服務商
    主站蜘蛛池模板: 2022年国产精品久久久久| 在线电影一区二区| XXX国产麻豆HD真实乱| 香蕉免费高清完整| 欧美精品AV一区二区无码| 国模精品一区二区三区视频| 中文字幕在线播放视频| 亚洲国产在线综合018| 青青伊人久久| 浓毛BWBWBWBWBW日本| 京香在线播放| 国产亚洲欧洲日韩在线三区| 亚洲免费国产| 2018年免费三级av观看| a视频在线观看| 国产精品永久免费| 精品久久久久中文字幕加勒比东京热| 久久不卡免费视频| 男女做爽爽爽视频免费软件| 欧美亚洲色帝国| 午夜福利理论片在线播放| 亚洲精品色播一区二区| 88.7在线收听| 国产3级在线观看| 久久伊人精品青青草原2021| 欧美阿v在线免播播放| 国产精品国产三级国产an| 国产精品AV无码免费播放| 国产AV精品一区二区三区漫画| 动漫H片在线观看播放免费| 国产成人亚洲精品老王| 国产精品18久久久久久欧美 | 国内精品自产拍在线少密芽 | 一个人视频日本在线观看| 亚洲精品天堂在线| 亚洲午夜久久久无码精品网红A片 亚洲午夜久久久久中文字幕 | 国产精品久久久久久久久LI无码| 攻把受做得合不拢腿play| 国产日韩成人内射视频| 精品人妻无码一区二区三区蜜桃臀 | 免费视频久久只有精品|