《華為:2024鯤鵬原生開發技術白皮書(81頁).pdf》由會員分享,可在線閱讀,更多相關《華為:2024鯤鵬原生開發技術白皮書(81頁).pdf(81頁珍藏版)》請在三個皮匠報告上搜索。
1、鯤鵬原生開發鯤鵬原生開發技術白皮書技術白皮書文檔版本文檔版本01發布日期發布日期2024-09-30華為技術有限公司華為技術有限公司 版權所有版權所有 華為技術有限公司華為技術有限公司 2024。保留一切權利。保留一切權利。非經本公司書面許可,任何單位和個人不得擅自摘抄、復制本文檔內容的部分或全部,并不得以任何形式傳播。商標聲明商標聲明和其他華為商標均為華為技術有限公司的商標。本文檔提及的其他所有商標或注冊商標,由各自的所有人擁有。注意注意您購買的產品、服務或特性等應受華為公司商業合同和條款的約束,本文檔中描述的全部或部分產品、服務或特性可能不在您的購買或使用范圍之內。除非合同另有約定,華為公
2、司對本文檔內容不做任何明示或暗示的聲明或保證。由于產品版本升級或其他原因,本文檔內容會不定期進行更新。除非另有約定,本文檔僅作為使用指導,本文檔中的所有陳述、信息和建議不構成任何明示或暗示的擔保。文檔版本 01(2024-09-30)版權所有 華為技術有限公司i 安全聲明安全聲明 漏洞處理流程漏洞處理流程華為公司對產品漏洞管理的規定以“漏洞處理流程”為準,該流程的詳細內容請參見如下網址:https:/ 文檔版本 01(2024-09-30)版權所有 華為技術有限公司ii目目 錄錄1 鯤鵬原生開發的機遇和挑戰鯤鵬原生開發的機遇和挑戰.12 鯤鵬原生開發的核心技術理念鯤鵬原生開發的核心技術理念.2
3、3 鯤鵬原生開發能力介紹鯤鵬原生開發能力介紹.33.1 代碼開發階段.33.1.1 代碼開發.33.1.1.1 代碼開發介紹.33.1.1.2 應用開發工具.33.1.1.3 鯤鵬 BoostKit 應用使能套件.83.1.1.3.1 鯤鵬 BoostKit 應用使能套件簡介.83.1.1.3.2 鯤鵬 BoostKit 應用加速.93.1.1.3.3 鯤鵬 BoostKit 基礎加速.193.1.2 代碼優化.223.1.2.1 代碼優化介紹.223.1.2.2 親和分析工具.233.1.3 編譯.253.1.3.1 編譯介紹.253.1.3.2 畢昇編譯器.253.1.3.3 畢昇 JDK
4、.263.1.3.4 GCC for openEuler.263.1.4 調試.263.1.4.1 調試介紹.263.1.4.2 編譯調試工具.263.1.5 調優.313.1.5.1 調優介紹.313.1.5.2 系統性能分析工具.323.1.5.2.1 系統性能分析工具簡介.323.1.5.2.2 通用分析.343.1.5.2.3 系統部件分析.363.1.5.2.4 專項分析.383.1.5.2.5 調優助手.403.1.5.2.6 AI 調優.433.1.5.2.7 場景化調優.45鯤鵬原生開發技術白皮書目 錄文檔版本 01(2024-09-30)版權所有 華為技術有限公司iii3.1
5、.5.3 Java 性能分析工具.473.1.5.3.1 Java 性能分析工具簡介.473.1.5.3.2 在線分析.513.1.5.3.3 采樣分析.513.1.5.4 系統診斷工具.533.1.5.4.1 系統診斷工具簡介.533.1.5.4.2 內存診斷.543.1.5.4.3 網絡 IO 診斷.563.1.5.4.4 存儲 IO 診斷.573.2 流水線階段.583.2.1 門禁檢查.583.2.1.1 門禁檢查介紹.583.2.1.2 應用遷移命令行.583.2.1.3 親和分析命令行.593.2.1.4 編碼規范檢查.613.2.2 編譯構建.623.2.3 調優.623.2.3
6、.1 調優介紹.623.2.3.2 自動反饋優化.633.2.4 測試.633.2.4.1 測試介紹.633.2.4.2 兼容性測試工具.643.2.4.3 Java 性能測試工具.643.2.5 版本發布.643.3 OS 底座(openEuler 系操作系統).653.3.1 openEuler 簡介.653.3.2 openEuler 基礎能力.653.3.2.1 iSulad 輕量級容器引擎.663.3.2.2 StratoVirt.673.3.2.3 openEuler AI 軟件棧.693.3.2.4 A-Tune 智能調優引擎.693.3.3 openEuler 工具和社區服務.
7、703.3.3.1 操作系統遷移.703.3.3.2 EulerMaker 構建系統.713.3.3.3 EulerTest 測試管理平臺.723.3.3.4 EulerPipeline 流水線.733.3.3.5 CVE Manager 漏洞管理.743.3.3.6 openEuler 官方倉及擴展倉.744 修訂記錄修訂記錄.76鯤鵬原生開發技術白皮書目 錄文檔版本 01(2024-09-30)版權所有 華為技術有限公司iv1 鯤鵬原生開發的機遇和挑戰鯤鵬原生開發的機遇和挑戰鯤鵬計算產業聚焦計算架構創新和開源基礎軟件的研發,以及華為云服務,致力于推動鯤鵬生態發展。通過戰略性、長期性的研發投
8、入,吸納全球計算產業的優秀人才和先進技術,持續推進全棧計算技術的創新發展,加快構筑面向多樣化計算的全球開源體系與產業標準?;凇坝布_放、軟件開源、使能伙伴、發展人才”的策略推動鯤鵬計算產業發展。目前,鯤鵬全棧創新已覆蓋國計民生核心場景,主流伙伴核心應用已遷移到鯤鵬。如何保證伙伴應用鯤鵬版本的持續發布,是鯤鵬計算產業面臨的一大問題。另外,如何支撐高效率地持續開發高性能、多平臺兼容的應用的用戶訴求,也是目前急需解決的問題。在此基礎上,識別到如下技術挑戰:伙伴期望一套流水線支持多套架構,但流水線改造繁瑣、工作量大。如何使能鯤鵬微架構等優化,獲得性能提升;使能安全合規掃描,提升多算力版本質量;使能多
9、算力測試套件,提升測試效率。鯤鵬原生開發技術白皮書1 鯤鵬原生開發的機遇和挑戰文檔版本 01(2024-09-30)版權所有 華為技術有限公司12 鯤鵬原生開發的核心技術理念鯤鵬原生開發的核心技術理念鯤鵬原生開發的核心技術理念:基于鯤鵬硬件+openEuler+雙Kit(DevKit、BoostKit)套件,1套代碼+1條流水線+N個版本,持續且首發商用版本。鯤鵬原生開發包含代碼開發階段和流水線階段:代碼開發階段:通過鯤鵬DevKit、BoostKit開發代碼,充分應用鯤鵬架構優勢,性能更優。流水線階段:鯤鵬DevKit以命令行方式1小時接入CI/CD,便捷發布多平臺版本。圖圖 2-1 核心技
10、術理念極簡融入&高效發布:DevKit原生開發插件1小時接入兩大主流(Jenkins、GitLab)CI/CD流水線,高效提升鯤鵬流水線搭建及版本發布效率。鯤鵬親和&極致性能:鯤鵬流水線使能鯤鵬親和分析工具、編譯器、性能工具等,實現應用性能提升。多架構兼容:1套流水線同時支持多樣性算力版本構建及測試。鯤鵬原生開發技術白皮書2 鯤鵬原生開發的核心技術理念文檔版本 01(2024-09-30)版權所有 華為技術有限公司23 鯤鵬原生開發能力介紹鯤鵬原生開發能力介紹3.1 代碼開發階段3.2 流水線階段3.3 OS底座(openEuler系操作系統)3.1 代碼開發階段代碼開發階段3.1.1 代碼開
11、發代碼開發3.1.1.1 代碼開發介紹代碼開發介紹鯤鵬原生開發在代碼開發階段提供了DevKit應用開發工具和BoostKit應用使能套件,可通過啟發式編程及多場景化SDK提供的示例Demo和文檔,有效提升鯤鵬原生開發效率。圖圖 3-1 代碼開發階段3.1.1.2 應用開發工具應用開發工具應用開發工具支持創建鯤鵬應用工程,支持C/C+開發語言,編碼時能夠自動匹配鯤鵬加速庫函數字典、智能提示、高亮、聯想字典中可以替換的庫和函數。支持以下功能:鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司3鯤鵬應用工程:只需要在創建鯤鵬應用工程頁面進行
12、簡單的輸入和選擇,便可以實現自動化構建鯤鵬應用工程,包括空工程、通用計算應用工程、安全計算應用工程、高性能計算應用工程、DPAK應用工程和數據IO應用工程。字典管理:支持加速庫函數字典管理,可線上(自動)和線下更新。編程輔助:支持鯤鵬加速庫函數的懸浮提示、函數搜索,支持Coding時自動聯想和高亮鯤鵬加速庫優化后的相關函數。應用開發工具,詳細介紹與最新內容請參見鯤鵬鯤鵬DevKit-開發開發。鯤鵬應用工程鯤鵬應用工程提供場景化的鯤鵬應用工程模板,快速輔助工程環境構建、配置檢查、依賴下載、構建文件生成等。步驟步驟1 創建鯤鵬應用工程(通用計算應用工程,界面截圖以VS Code環境為例)。圖圖 3
13、-2 創建工程步驟步驟2 部署SDK。圖圖 3-3 部署 SDK鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司4步驟步驟3 工程創建成功后,展示結果。圖圖 3-4 工程創建成功步驟步驟4 單擊“打開工程”,查看工程樣例代碼。圖圖 3-5 查看樣例代碼-結束結束字典管理字典管理支持加速庫函數字典管理,可線上(自動)和線下更新。步驟步驟1 當用戶實際網絡環境無法連接外網時,可上傳本地字典文件。鼠標移動到“字典導入”旁的,單擊“下載”下載字典文件并在本地字典文件框內上傳。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(20
14、24-09-30)版權所有 華為技術有限公司5圖圖 3-6 上傳本地字典文件步驟步驟2 開啟加速庫提示,開啟后,用戶編碼過程中將會自動聯想、補齊與字典中匹配的庫和函數,方便用戶下載使用。圖圖 3-7 開啟加速庫提示步驟步驟3 開啟編譯選項智能聯想,開啟后,工具將會根據用戶選擇的編譯器版本進行智能聯想,可在編譯器版本下拉列表中選擇合適的編譯器版本。圖圖 3-8 開啟編譯選項智能聯想說明說明用戶構建腳本時,工具將會根據用戶選擇的GCC版本或BiSheng Compiler版本進行智能聯想,BiSheng Compiler版本范圍在2.1.04.0.0,GCC版本范圍在4.8.510.3.1。步驟步
15、驟4 設置跳過證書驗證的網站,設置后的網站無需進行證書驗證。單擊“添加網站”,在彈框中輸入網站地址。圖圖 3-9 添加網站鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司6圖圖 3-10 輸入網站地址-結束結束編程輔助編程輔助支持鯤鵬加速庫函數的懸浮提示、函數搜索,支持編碼時智能聯想和高亮鯤鵬加速庫優化后的相關函數。步驟步驟1 在代碼編輯區輸入代碼,工具會根據輸入的內容自動聯想函數或補全代碼。圖圖 3-11 自動聯想函數步驟步驟2 通過代碼編輯區右上角的(放大鏡),在搜索框輸入關鍵字,可實現函數搜索。鯤鵬原生開發技術白皮書3 鯤鵬原
16、生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司7圖圖 3-12 函數搜索-結束結束3.1.1.3 鯤鵬鯤鵬 BoostKit 應用使能套件應用使能套件3.1.1.3.1 鯤鵬鯤鵬 BoostKit 應用使能套件簡介應用使能套件簡介鯤鵬BoostKit應用使能套件,基于鯤鵬硬件、基礎軟件和應用軟件的全棧優化,提供高性能開源組件、基礎加速軟件包和應用加速軟件包,使能應用極致性能,其針對大數據、分布式存儲、數據庫、虛擬化和ARM原生等場景進行了深度優化。它整合了鯤鵬芯片級特性,如內存管理、計算調度等方面的技術優勢,通過預置的高性能庫和框架,賦能開發者輕松構建適應鯤鵬架
17、構的高性能應用。在同一個構建流程中,當集成BoostKit后,基于鯤鵬架構的目標軟件包能夠獲益較大的性能提升。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司8圖圖 3-13 鯤鵬 BoostKit 應用使能套件簡介獲取最新的鯤鵬BoostKit應用使能套件和詳細的用戶指南,請參見鯤鵬應用使能套件鯤鵬應用使能套件BoostKit。3.1.1.3.2 鯤鵬鯤鵬 BoostKit 應用加速應用加速鯤鵬BoostKit提供性能倍增的應用加速軟件包,使能數據處理極致性能、數據訪問極致高效和云手機極致體驗。鯤鵬BoostKit應用加速軟件包,
18、詳細介紹與最新內容請參見鯤鵬應用使能套件鯤鵬應用使能套件BoostKit-應用加速軟件包應用加速軟件包。圖圖 3-14 鯤鵬 BoostKit 場景化基礎加速能力介紹鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司9圖圖 3-15 鯤鵬 BoostKit 場景化應用加速能力介紹ARM 原生原生鯤鵬BoostKit ARM原生利用ARM指令集同構優勢,支持移動應用無損上云,同時將多年技術積累濃縮到Kbox云手機容器、指令流引擎、視頻流引擎核心能力等組件,形成了云手機Turbo套件,降低了開發難度,提升整機的密度,降低云手機單路成本,其
19、中HostOS支持Ubuntu和openEuler,GuestOS支持android-9.0.0_r55和android-11.0.0_r48,用戶可以基于云手機Turbo套件進行二次開發,從而實現云手機極致的性能和業務體驗。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司10圖圖 3-16 鯤鵬 BoostKit ARM 原生云手機整體架構ExaGear AArch32指令翻譯軟件ExaGear AArch32指令翻譯軟件為TaiShan 200服務器(型號2280)提供AArch32特性,基于TaiShan 200服務器(型號2
20、280),在ARM原生場景下能夠完全兼容AArch32的應用,保障AArch32 V8.0指令應用100%兼容。同時也支持pre-translator特性,優化翻譯后的APP啟動時間,提升客戶體驗。Kbox云手機容器Kbox云手機容器提供了軟件定義手機的基礎能力,其基于鯤鵬服務器,在Docker容器技術和Android開源項目(AOSP)基礎上,實現了將GPU設備直通到容器的輕量級設備仿真層架構方案,提供了基于Android系統的云手機容器參考方案??蓪崿F在鯤鵬920 2*64核服務器支持100路720p30fps的Kbox云手機容器高并發(以托管場景為例,云手機并發密度取決于客戶云手機實際應
21、用),具有高密度、高兼容性等商業價值。視頻流引擎視頻流云手機方案基于視頻流的端云協同引擎,提供了低時延的云手機畫面同步能力,支持H.264和H.265硬編碼,在畫質相當的情況下,可實現H.265編碼帶寬減少30%+,其實現原理是利用云端強大的能力將應用和游戲的運行、渲染成最終的畫面,并進行視頻的壓縮流化后,發送到終端播放顯示。視頻流引擎支持視頻編碼能力、視頻解碼播放能力、云手機圖像截屏能力、觸控和音頻抓取/播放能力等核心功能,客戶可以基于這些引擎進行二次開發,實現在移動終端上進行操控應用和游戲等操作。云端采用專業顯卡進行渲染,可以獲取高畫質的業務體驗;對終端的要求極低,只要求有視頻解碼能力即可
22、;提供統一API,降低二次開發難度,易集成。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司11指令流引擎指令流云手機方案采用業界獨創的端云分離渲染技術,可實現云側免GPU部署,整機硬件成本下降10%,其實現原理是云手機利用云端強大的算力,通過引擎實現云端復制應用和游戲的渲染指令,并進行渲染指令和紋理數據壓縮流化,在端側使用手機終端的GPU把這些指令渲染出來圖像。指令流引擎,支持機指令分離渲染、紋理數據視頻流化、觸控和音頻抓取/放能力等核心功能,客戶可以基于這些引擎進行二次開發,實現在移動終端上進行操控應用和游戲等操作。通過指令流引
23、擎技術,可以支持云手機全系統渲染,并提供近乎無損的畫質,在1080P/2k/4k分辨率下均不影響傳輸帶寬,并通過資源緩存技術,有效降低網絡帶寬50%+;突破云端GPU能力限制,實現無GPU高密運行機制,單路硬件成本降低40%,支持圖形渲染狀態機的本地執行與遠端同步,實現1080P 30FPS低響應時延的用戶體驗。大數據大數據鯤鵬BoostKit大數據聚焦大數據查詢效率低、性能優化難等挑戰,提供大數據組件的開源使能和調優、OmniRuntime、機器學習和圖分析算法加速庫等應用加速軟件包,提升大數據分析效率。圖圖 3-17 大數據應用加速軟件包介紹openEuler和畢昇JDK性能優化適用Hiv
24、e 2.X/3.X、Spark 2.X,openEuler操作系統基于大數據核心組件Hive、Spark通過磁盤IO、網絡IO的調度策略優化、Neon指令優化等實現大數據計算性能提升。畢昇JDK性能優化基于鯤鵬處理器構建開源JDK社區,通過AppCDS、GC算法優化、編譯優化等提升大數據核心組件Hive、Spark的計算性能。Hive性能提升9%32%,Spark性能提升11%29%。OmniRuntime大數據OmniRuntime是鯤鵬BoostKit大數據面向應用加速推出的一系列特性,包括OmniData算子下推、OmniOperator算子加速、OmniShuffle Shuffle加
25、速、OmniMV物化視圖、OmniAdvisor參數調優和OmniHBaseGSI全局二級索引,旨在通過插件化的形式,端到端提升數據加載、數據計算和數據交換的性能,從而提升大數據分析的性能。Spark使用OmniRuntime加速特性執行SQL計算,相比原生性能提升20%40%,具體包括組件如下:OmniData算子下推適用于存算分離場景或大規模存算融合場景,支持Spark 3.0.0/3.1.1、Hive3.1.0(Tez 0.10.0),是一種將大數據引擎的算子下推到存儲節點或卸載節點的服務,從而實現了近數據計算,減少了網絡帶寬,將該特性集成到Spark后,基于TPC-H測試用例12條算子
26、下推的SQL性能平均提升40%。集成到Hive后,基于TPC-H測試用例4條算子下推SQL性能平均提升20%。OmniOperator算子加速適用于虛擬化場景,支持Spark 3.1.1版本,其采用native code(C/C+)實現大數據SQL算子來提高查詢性能的特性,通過列式存儲和向量化執行技鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司12術,同時利用鯤鵬加速庫,提升算子的執行效率,將該特性集成到Spark后,基于TPC-DS 99條SQL驗證,可實現Spark性能提升30%。OmniShuffle Shuffle加速適用
27、于虛擬化場景,支持RDMA和TCP兩種網絡模式,支持Spark 2.4.6及以上版本,其基于TCP/RDMA等網絡介質,優化數據分析過程中跨節點的數據寫入、傳輸和讀取流程,提升Shuffle性能,支持數據分析過程性能提升,將該特性及算子加速特性集成到Spark后,基于TPC-DS 99條SQL驗證,可實現Spark性能提升40%。OmniMV物化視圖適用于虛擬化場景,支持Spark 3.1.1版本,支持ClickHouse 22.3.6.5版本,其通過AI算法從歷史SQL查詢中推薦出最優物化視圖,并在Spark中自動對用戶SQL進行物化視圖匹配,將匹配成功的物化視圖替換用戶執行計劃的部分SQL
28、,大幅減少重復計算,提升查詢性能,在將該特性集成到Spark后,基于TPC-DS基準測試用例實現了Spark組件計算性能平均提升30%,集成到ClickHouse后,基于Star Schema BenchMark實現ClickHouse計算性能平均提升數倍。OmniAdvisor參數調優適用于虛擬機場景,支持Spark 3.1.1和Hive 3.1.0(只支持Hive on Tez模式),因Spark/Hive引擎參數眾多,取值范圍大,人工調優存在調優效率低,調優效果不佳,OmniAdvisor旨在通過AI的方式,實現參數的自動推薦,從而提升調優效率和調優效果。集成該特性后,基于TPC-DS
29、10條SQL可實現Spark性能提升10%。OmniHBaseGSI全局二級索引適用于虛擬機場景,支持HBase 2.4.14版本,因HBase原生提供了主鍵索引,但若使用非Rowkey進行查詢,則需要進行全表掃描,不僅耗費大量資源,查詢時延也很長,HBase全局二級索引,可以在非Rowkey列上創建全局二級索引,從而極大加速非Rowkey列的查詢性能,集成該特性后,可實現在100并發下,平均時延小于30ms,P99時延小于300ms。機器學習和圖分析算法兼容Spark原生機器學習和圖分析算法的API接口,支持適配Spark 2.3.2、Spark2.4.5、Spark 2.4.6版本,部分算
30、法支持Spark 3.1.1和Spark 3.3.1版本,通過對算法原理和芯片特征針對機器學習和圖分析算法進行深入優化,從而可以大幅提升了大數據算法場景的計算性能?;邛H鵬CPU的機器學習&圖分析算法加速庫相比基于友商的Spark原生MLlib和GraphX,相同精度下計算性能提升20%以上。HBase索引優化適用于虛擬化場景,支持HBase 2.2.3版本,其他HBase版本技術上支持,HBase索引優化特性使用Louds Tries Index代替原生LEAF Index索引,大大減少了LRU(Least Recently Used)Cache的使用,提升了內存使用效率,同時優化了索引流程
31、。原生索引50%命中、Trie Index全命中場景下HBase隨機讀性能提升1倍+。存算分離加速與硬件組件強相關,支持Hadoop 3.1.1、Ceph 14.2,其他Hadoop 2.X、Hadoop3.X、Ceph 14.X技術上支持,大數據+Ceph存算分離適用于大數據下存儲容量大、計算資源需要彈性擴展的場景,作為大數據與Ceph之間的接口連接庫,被HDFS軟件調用,實現計算和存儲分開彈性擴容的需求。存算分離下Spark、Hive、HBase性能持平三副本。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司13分布式存儲分布式
32、存儲鯤鵬BoostKit分布式存儲使能套件聚焦開源Ceph存儲的性能低、成本高等關鍵挑戰,通過存儲加速算法庫和存儲Ceph加速庫等特性提升系統性能和降低存儲成本,充分發揮鯤鵬算力優勢,提供高性價比存儲方案。壓縮算法適用于塊存儲服務數據壓縮和對象存儲服務數據壓縮,與主流開源壓縮算法相比,壓縮率可提升25%,帶寬性能提升10%。KAE zlib壓縮優化KAE zlib壓縮,最大化CPU處理OSD進程的能力,發揮硬件最大性能。數據在OSD引擎中進行壓縮/解壓,壓縮解壓的過程使用鯤鵬920處理器zlib硬件壓縮引擎進行加速。1M以上大數據塊混合讀寫及基于KAE zlib壓縮算法的分布式存儲場景下鯤鵬平
33、臺相比x86帶寬性能提升14%+。IO智能預取IO智能預取利用小容量的高速存儲介質作為緩存盤,配合高效的預取算法,針對4.14內核版本的Bcache場景,提升順序讀性能。在塊存儲順序讀場景下,512K以下IO的IOPS性能提升20%以上。根據業務Workload特征,提前將數據預讀到Cache中,提高讀Cache命中率,進而提高讀場景IOPS性能。KAE MD5摘要算法支持通過OpenSSL 1.0.2k版本接口進行使用,在對象存儲服務業務下,使用鯤鵬920處理器MD5加速引擎,計算MD5校驗,提升對象存儲服務寫帶寬性能。存儲加速算法庫支持Ceph 14.2.8版本,其采用鯤鵬優化的算法代替主
34、流開源算法,提升存儲性能。當前包括EC算法、CRC16 T10DIF算法和CRC32C算法,具體介紹如下:EC算法適用于塊存儲或對象存儲場景,支持2+2、4+2、6+2、12+3和20+3配比,其他配比暫不支持,其采用向量化EC編解碼方案,以低階二元XOR操作替代傳統標量編碼的高階有限域乘法,配合編碼調度,復用中間計算結果減少操作數,與主流開源算法相比,EC算法編碼性能提升1倍以上。CRC16 T10DIF算法和CRC32C算法通過大數求余算法和配合鯤鵬向量化指令實現編碼加速,與主流開源算法相比,CRC16 T10DIF算法性能提升100%,CRC32C算法4K性能提升20%。存儲維護工具庫存
35、儲維護工具庫(KSML)是華為自研的存儲維護工具庫,包括HDD/SSD故障預測與HDD/SSD慢盤檢測功能,基于機器學習算法,通過收集SMART數據訓練模型,預測與識別存儲集群潛在故障盤,通過采集系統磁盤的svctm完成慢盤檢測。SPDK使能KAESPDK的BDEV設備作為虛擬設備層對接底層多種設備類型(虛擬設備、物理設備),通過在BDEV設備中使能壓縮和加解密能夠支持所有SPDK設備。鯤鵬KAE通過Zlib和Openssl提供壓縮和加解密,通過在BDEV設備中支持Zlib和OpenSSL的KAE加速實現對應能力的硬件卸載。EC Turbo支持Ceph 14.2.8版本,適用于使用塊存儲或對象
36、存儲服務場景,不支持Bcache,該特性是針對開源Ceph的EC流程進行優化,降低了數據讀寫流程中的IO放大比例,從而使得整體性能更高。相對于Ceph開源EC,在均衡型配置下,對于塊存儲服務,EC Turbo性能可達到x86三副本80%以上,存儲成本降低50%;對于對象存鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司14儲服務,ECTurbo(4+2)性能達到x86三副本80%以上,大IO存儲成本比三副本降低50%,小IO成本與三副本持平。智能寫Cache支持Ceph 14.2.8版本,適用于塊存儲和對象存儲服務寫場景,其支持通過
37、IO直通、QoS控制策略、Writeback控制策略以及GC控制策略,提升Bcache場景下的Ceph集群寫性能。在塊存儲隨機寫場景下,IOPS性能可提升20%以上。IO直通O直通工具是針對Ceph均衡型場景下的一個流程優化工具,可以自動對Ceph集群進行性能優化。在均衡型配置場景下,使用IO直通特性可提升存儲性能15%以上。數據壓緊通過消除補零對齊操作帶來的數據浪費問題,結合壓緊封裝、空間計數分配、粒度分流、聚合提交、批量回調等手段提升數據縮減率并提升系統整體IOPS,實現成本性能雙收益。數據壓緊可將數據壓縮率再提高20%以上,對系統性能無損失。元數據加速元數據加速特性在RocksDB的基礎
38、上,結合華為自研算法進行了性能加速優化,在使能鯤鵬加速特性時可以獲取更佳的性能。較開源RocksDB,混合讀寫場景性能提升超過30%。Ucache智能讀緩存智能讀緩存通過IO智能預取精準識別熱點請求并針對順序、間隔等IO流進行IO預取,將IO提前載入讀緩存,同時讀緩存通過LRU算法淘汰冷數據,從而提高緩存的IO命中率,提升讀性能。Ucache智能讀緩存可提高讀請求IO命中率以提升讀性能。熱點、順序、間隔等IO流下性能提升100%。BoostIO在存算分離架構下,BoostIO利用計算側的內存和磁盤資源構建分布式多級緩存,寫緩存通過RDMA高速通信、緩存親和策略、副本冗余和線性布局等特性提升業務
39、寫性能,提高數據可靠性;讀緩存通過數據預取提前將熱點數據加載緩存磁盤中,通過LRU淘汰策略和冷熱識別提高讀緩存命中率,從而提升業務讀性能RDMA網絡加速通過在Ceph網絡框架AsyncMessage中新增插件支持UCX網絡框架,實現Ceph全閃存場景支持網絡全RDMA化。UCX通信處理層主要包含ceph與UCX接口適配,并根據RNDV協議的特點,實現了零拷貝,提升大塊寫的性能。機密計算機密計算鯤鵬BoostKit機密計算TrustZone套件是基于ARM TrustZone技術的一個機密計算軟件套件,包含華為自研TEE(Trusted Execution Environment,可信執行環境)
40、安全操作系統,鯤鵬服務器BMC和BIOS等,結合開源的操作系統驅動以及SDK,旨在幫助伙伴更便捷地為行業客戶構建機密計算解決方案,從而為用戶的關鍵數據提供完整性、機密性保護和可信使用。普通鯤鵬服務器默認不帶有機密計算TrustZone完整套件,需要在購買鯤鵬服務器時明確帶有TEE功能,支持TEE功能的服務器會在出廠階段完成TrustZone套件預置安裝。iTrustee基于TrustZone技術實現了整套安全解決方案,包含正常模式的客戶端應用(Client Application,CA)、安全模式的可信應用(Trusted Application,TA)、安全模式下的可信操作系統。鯤鵬原生開發
41、技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司15iTrustee應用于金融大數據數據挖掘場景,可保證數據處理過程中的機密性??蓱糜谝惑w化大數據中心場景,確保數據可信交易,同樣也可用于行業隱私計算認證場景,確保計算過程中避免泄漏個人隱私信息。iTrustee安全可靠,其基于華為自研的微內核實現,安全OS已在手機側商用近10年,用戶數已過億,同時安全性獲得CC EAL4+認證,兼容性獲得GlobalPlatform認證。在規格方面也較為靈活,其中TEE側安全內存支持按需配置,最大可配128GB,可支持大數據、AI等大型應用運行。圖圖 3-18
42、 機密計算TEE SDK:提供機密計算REE(Rich Execution Environment,富執行環境)側和TEE的接口、TA/CA加密和簽名工具、參考代碼和接口說明等,方便用戶快速構建應用。REE Patch:操作系統的驅動,包括內核模塊以及用戶接口庫。TEE OS:華為自研安全操作系統,為可信應用提供加解密、安全存儲等服務,并確保TA的完整性和機密性。BIOS:完成對TEE OS的解密以及驗證,確保TEE OS的機密性以及完整性。BMC:支持對TEE OS的升級維護。數據庫數據庫鯤鵬BoostKit數據庫對開源MySQL OLAP查詢效率低、OLTP場景高并發下鎖導致的性能問題等關
43、鍵挑戰,提供MySQL可插拔向量化分析引擎、MySQL無鎖優化、MySQL可插拔線程池和MySQL CRC32指令優化等加速軟件包,深度優化了OLAP查詢分析效率鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司16和OLTP在線交易事務處理能力,充分發揮多核算力極致性能。提供主流開源和商業數據庫最佳實踐,幫助開發者高效完成開源組件遷移和調優。MySQL NVMe SSD原子寫適用MySQL各版本,通過SSD硬件原子寫特性消除doublewrite雙寫軟件冗余提升數據庫的性能,通過SSD硬件原子寫特性密集寫場景性能預計提升15%。Ga
44、zelle網絡優化適用MySQL各版本,基于DPDK在用戶態直接讀寫網卡報文,共享大頁內存傳遞報文,使用輕量級LwIP協議棧。能夠大幅提高應用的網絡IO吞吐能力,通過Gazelle網絡優化,TPC-C綜合性能預計提升10%。鯤鵬GCC CFGO反饋優化適用MySQL各版本,采用多模態(源代碼、匯編碼、二進制)、全生命周期(編譯、鏈接、后鏈接)的持續優化手段,獲取性能更優的目標程序。使數據庫TPC-C綜合性能提升10%。KAEzip壓縮解壓縮優化支持使用zlib進行壓縮和解壓的Greenplum版本,使用鯤鵬硬加速模塊實現壓縮、解壓縮算法,結合無損用戶態驅動框架從而提升查詢性能。采用KAEzip
45、可以在到達硬件瓶頸之前,在同一時間只處理一個請求、IO占比多的場景下,端到端的性能提升10%。MySQL并行查詢優化支持MySQL 8.0.20、MySQL 8.0.25版本,MySQL單SQL查詢只能調度單線程,多核CPU無法使用,單查詢性能查詢差難于滿足查詢場景的性能要求,通過并行查詢優化提升查詢性能??蓪崿F查詢性能提升1倍(性能提升與并行度有關)。MySQL無鎖優化支持MySQL 8.0.20版本,在MySQL OLTP場景下DML語句(Insert、Update、Delete)大量并發操作trx_sys全局結構體中的關鍵數據結構,造成臨界區的競爭和同步瓶頸。MySQL無鎖優化改造后使用
46、無鎖哈希表維護事務單元,減少鎖沖突,提升并發度,可實現Sysbench寫場景下性能提升20%。MySQL細粒度鎖優化支持MySQL 8.0.20版本,在MySQ LOLTP場景下DML語句(Insert,Update,Delete)大量并發操作訪問lock_sys-mutex全局鎖保護的關鍵數據結構,造成鎖競爭嚴重導致性能下降。替換成細粒度hash桶鎖。減少鎖沖突,提升并發度??蓪崿FTPC-C綜合性能預計提升10%。MySQL NUMA調度優化支持MySQL 8.0.20、MySQL 8.0.25版本,在MySQL OLTP場景下高并發下系統默認的線程調度使得線程頻繁跨NUMA的訪問,這種情況
47、導致CPU開銷增大,性能提升受限制,需要對用戶處理線程做動態綁定固定NUMA CPU減少跨NUMA訪問,同時需要保證CPU訪問的負載必須均衡,后臺線程靜態綁定固定NUMA CPU減少跨NUMA訪問,提升后臺線程效率??蓪崿FOLTP場景性能提升10%。MySQL可插拔線程池支持MySQL 5.7.27、8.0.20、8.0.25、8.0.30和8.0.35版本,僅基于MySQL8.0.25、8.0.30和8.0.35的線程池特性支持可插拔動態加載。在MySQL OLTP場景下,高并發下線程數過多,CPU消耗在無效的資源競爭和頻繁切換上,線程池方案通過隊列方式管理任務,所有的任務先放入等待執行隊列
48、,按系統執行能力取出任務隊列讓CPU執行,每個CPU同時處理任務個數是有限的,一般25個最優,從而保持穩定的業務處理能力??蓪崿FOLTP TPC-C場景性能10000并發性能下降到最優的10%左右,開啟線程池功能,性能可維持在85%。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司17CRC32指令優化提供支持MySQL 8.0.25版本的補丁包,該特性采用鯤鵬CRC32硬件指令替換CRC32算法的軟件實現,從而提高系統業務的性能。通過CRC32指令優化特性,MySQL Sysbench寫場景性能有5%的提升。MySQL可插拔在線向
49、量化分析引擎支持MySQL 8.0.25版本,該特性是MySQL預留接口第二執行引擎(SecondaryEngine)的一種輕量實現,通過執行計劃的并行計算,充分發揮鯤鵬CPU多核的優勢,使OLAP性能倍級提升,且具有可插拔性,支持動態加載。采用并行加速技術,可將OLAP查詢性能提升到3倍以上。虛擬化虛擬化鯤鵬BoostKit虛擬化使能套件聚焦虛擬化輕載性能低、網絡損耗大、資源碎片嚴重及開源生態可用性等關鍵痛點,提供了OVS流表網卡加速等特性提升系統性能,充分發揮鯤鵬多核架構、核間完全隔離的優勢,釋放鯤鵬極致算力。負載感知加速系統負載感知加速系統(以下簡稱WAAS)能夠基于每個計算任務深度調優
50、,啟用最優的加速庫,自動配置全棧最佳參數。通過收集應用負載信息自動感知業務的應用類型、任務特征、OS特征和微架構特征,對各層性能特征進行分析,生成調優策略,通過加速庫加速、任務調優、OS調優和CPU微架構調優對SQL任務進行全棧深度優化,動態調整達到業務實時最佳。OVS流表歸一化在OVS+DPDK的基礎上,提出流表歸一化的方案,進一步加速云計算中的數據包轉發性能,其典型場景為VXLAN+CT組網。卸載場景較不卸載場景網絡轉發性能提升30%以上。OVS流表網卡加速在虛擬化場景下,將OVS轉發流表卸載到網卡硬件上,利用硬件的查表能力來提升流表的查找速度,提高虛擬化網絡的處理能力,可實現虛擬化網絡的
51、轉發性能提升10倍。高性能云盤優化通過BoostKit提供的SPDK+Ceph的方案來對虛擬化場景下的Ceph存儲客戶端進行加速,以提升存儲場景的IO讀寫能力。存儲IOPS性能提升30%以上。虛擬化DPU卸載虛擬化DPU卸載支持虛擬化場景下網絡和存儲的加速,其可以將本來運行在物理機上的軟件(如:VS-DPDK、SPDK等)卸載到DPU卡上運行,節省了物理機的CPU負載,從而提高虛擬機密度,同時DPU卡支持VirtIO-net和VirtIO-blk等協議,其作為VirtIO設備后端,可提高虛擬化網絡和存儲性能。Web/CDN鯤鵬BoostKit CDN使能套件聚焦CDN開源組件可用性和CDN緩存
52、節點吞吐量低、時延大等問題,通過使能鯤鵬處理器內置的RSA加速引擎,對RSA2048算法進行硬件卸載,同時提供了NUMA優化等手段,以便充分發揮鯤鵬處理器多核優勢,助力CDN緩存節點提供更大吞吐量,實現更低時延。鯤鵬BoostKit Web使能套件聚焦Web應用HTTPS連接性能和Web開源組件可用性等關鍵問題,通過使能鯤鵬處理器內置的RSA加速引擎,提升Web網站的安全性,并實現用戶HTTPS訪問的極致體驗。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司18KAE RSA加解密非對稱加密算法RSA,支持同步異步模式,支持KeyS
53、izes1024/2048/3072/4096。在使用Nginx處理HTTPS請求時,可通過配置開啟SSL模塊,使能鯤鵬RSA加速引擎對HTTPS請求處理中SSL/TLS握手時的RSA非對稱加解密運算進行加速。相比x86 SSL加速卡方案,鯤鵬RSA加速方案性能高35%。HPCHPC聚焦資源調度效率低、應用性能優化難等關鍵挑戰,通過全棧架構創新、軟硬件自研、基礎軟件優化和行業應用性能調優等技術構建全棧高性能計算基礎平臺,幫助客戶釋放平臺算力,縮短產品上市周期,提升企業產品競爭力。多瑙管理平臺通過可視化界面為用戶提供了便捷的HPC集群系統數據管理和軟硬件資源管理功能,串聯整個工作流程,幫助用戶合
54、理地進行作業調度和資源分配,提升集群系統計算能力利用率。多瑙調度器提供大規模集群下的高資源利用率、高吞吐量的作業調度能力:超大規模調度:最大支持3000節點/38萬核超大規模集群調度。高吞吐量作業:端到端吞吐量高,達到每小時400萬+個作業。高資源分配率:高效靈活的調度框架,資源分配率達到90%+。3.1.1.3.3 鯤鵬鯤鵬 BoostKit 基礎加速基礎加速鯤鵬BoostKit加速庫提供基于ARM指令深度優化和基于鯤鵬KAE(鯤鵬硬件加速引擎)開發的加速庫,覆蓋系統庫、壓縮、加解密、媒體、數學庫、存儲、網絡和AI庫等8類加速庫,為大數據加解密、分布式存儲壓縮、視頻轉碼等應用場景提供高性能加
55、速。鯤鵬BoostKit基礎加速軟件包,詳細介紹和最新內容請參見鯤鵬應用使能套件鯤鵬應用使能套件BoostKit-基礎加速軟件包基礎加速軟件包。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司19圖圖 3-19 鯤鵬 BoostKit 基礎加速軟件包系統庫系統庫鯤鵬BoostKit系統庫包括如下組件:Glibc-patch:主要對內存、字符串、鎖等接口基于華為鯤鵬920處理器微架構特點進行了加速優化。Hyperscan:一款高性能的正則表達式匹配庫,增加鯤鵬計算平臺分支,且完全兼容armv8-a,通過使用NEON指令、內聯匯編、數據
56、對齊、指令對齊、內存數據預取、靜態分支預測、代碼結構優化等方法,實現在鯤鵬計算平臺的性能提升。AVX2KI:一款接口集合庫,將傳統平臺的Intrinsic接口集合使用鯤鵬指令重新實現,并封裝為獨立的接口模塊(C語言頭文件方式),以減少大量遷移項目重復開發的工作量。KQMalloc:鯤鵬高性能內存庫,是專為鯤鵬920系列處理器設計的內存分配器。此分配器分為單線程和多線程應用場景,最大限度地減少內部緩存占用空間,最大限度地減少內部緩存未命中,可極大地提升應用性能。HTL:輕量級線程庫(Hyper Thread Library,HTL)是構建在內核態線程之上的用戶級線程庫。用于解決內核級線程大量使用
57、時,應用性能下降、系統資源不足的問題,尤其解決嵌套并行場景下性能極低的問題。在保障減少資源使用的情況下,提升并發度,改善性能。KSL_ASN1:ASN.1(Abstract Syntax Notation One)是定義抽象數據類型規格形式的一套標準,是描述數據的表示、編碼、傳輸、解碼的靈活的一種記法。KSL_ASN1是開源ASN.1軟件的國產化替換,目前支持PER(Packed EncodingRules)和BER(Basic Encoding Rules)格式,性能相較開源軟件asn1c有較大的提升。HAF:同構加速框架(Homogeneous Acceleration Framework
58、,HAF),提供用戶友好的編程方式和API,快速、有效、安全地使能用戶業務程序指定加速片段卸載推送至卸載節點執行,帶來用戶預期的卸載優化效果。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司20壓縮壓縮鯤鵬BoostKit壓縮庫包括如下組件:Gzip:Gzip(GUN zip)通過數據預取、循環展開、CRC指令替換等方法,來提升其在鯤鵬計算平臺上的壓縮和解壓縮速率,尤其對文本類型文件的壓縮及解壓具有更明顯的性能優勢。ZSTD:Zstandard,即ZSTD壓縮庫。通過使用NEON指令、內聯匯編、代碼結構調整、內存預取、指令流水線排布
59、優化等方法,實現ZSTD在鯤鵬計算平臺上壓縮和解壓性能的提升。Snappy:利用內聯匯編、寬位指令、優化CPU流水線、內存預取等方法,實現Snappy在鯤鵬計算平臺上的壓縮和解壓速率提升。KAEzip:鯤鵬加速引擎的壓縮模塊,使用鯤鵬硬加速模塊實現deflate算法,結合無損用戶態驅動框架,提供高性能Gzip/zlib格式壓縮接口。LZ4:快速壓縮庫,它能夠以極高的速度對數據進行壓縮和解壓縮。該壓縮算法非??焖俸透咝?,適用于各種類型的數據壓縮。LZ4庫可以被廣泛應用于數據存儲、網絡傳輸和實時數據處理等領域,為用戶提供了快速且可靠的數據壓縮解決方案。其官網發布的1.9.3 Release優化版本
60、,利用NEON指令、內聯匯編、代碼結構調整、內存預取、指令流水線排布優化等方法,實現LZ4在鯤鵬計算平臺上壓縮性能的提高。加解密加解密KAE加解密是鯤鵬加速引擎的加解密模塊,使用鯤鵬硬加速模塊實現RSA/SM3/SM4/DH/MD5/AES算法,結合無損用戶態驅動框架,提供高性能對稱加解密、非對稱加解密算法能力,兼容OpenSSL 1.1.1a及其之后版本,支持同步&異步機制。媒體媒體鯤鵬BoostKit媒體庫包括如下組件:HMPP:鯤鵬超媒體性能庫(Hyper Media Performance Primitives,HMPP),包括向量緩沖區的分配與釋放、向量初始化、向量數學運算與統計學運
61、算、向量采樣與向量變換、濾波函數、變換函數(快速傅里葉變換),支持IEEE 754浮點數運算標準。x265:針對FFmpeg視頻轉碼場景,對X265的轉碼底層算子使用鯤鵬向量指令進行加速優化,提高整體性能。x264:采用GPL授權的視頻編碼免費軟件,主要功能實現H.264/MPEG-4 AVC的視頻編碼。KVSIP:鯤鵬矢量信號處理庫,提供了高性能計算接口,包括向量基礎運算、矩陣基礎運算和快速傅里葉運算功能。數學庫數學庫鯤鵬數學庫(Kunpeng Math Library,KML)是華為提供的基于鯤鵬平臺優化的高性能數學函數庫,主要完成標量、矢量、矩陣上的數學計算,包括基本的四則運算、三角函數
62、、對數函數、指數函數、線性代數計算等,數學庫所有接口由C/C+、匯編語言實現,部分接口兼容Fortran語言調用,部分提供Java語言封裝的接口。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司21存儲存儲鯤鵬BoostKit存儲庫包括如下組件:Smart Prefetch:創新性地采用高速緩存盤配合高效的預取算法,提升系統存儲IO性能,進而提升上述解決方案中存儲IO密集型場景的整體性能。SPDK:高性能存儲開發包(Storage Performance Development Kit,SPDK)通過使用網絡技術、處理技術和存儲技術
63、來提升效率和性能。通過運行為硬件設計的軟件,SPDK已經證明很容易達到每秒鐘數百萬次IO讀取,通過使用許多處理器核心和許多NVMe驅動去存儲,而不需要額外卸載硬件。ISA-L:ISA-L(Intelligent Storage Acceleration Library)提供RAID、糾刪碼、循環冗余檢查、密碼散列和壓縮的高度優化的函數。網絡網絡鯤鵬BoostKit網絡庫包括如下組件:XPF:XPF(Extensible Packet Framework)在OVS(Open vSwitch)軟件內部實現了一個智能卸載引擎模塊,該模塊用于跟蹤數據報文在OVS軟件中所經歷的所有流表和CT表,將執行的
64、CT行為和所有流表行為項進行綜合編排成一條綜合行為項并結合統一匹配項生成一條集成流表項。后續的數據報文在進入OVS后,若匹配命中該集成流表,則直接執行綜合行為,相比開源的處理流程,查詢次數將減少,性能將大幅度提升。DPDK:數據平面開發工具包(Data Plane Development Kit,DPDK),為用戶空間高效的數據包處理提供數據平面開發工具集,包括庫函數和驅動。AI 庫庫KAIL_DNN:深度神經網絡算子庫(Deep Neural Network Library),結合鯤鵬處理器微架構特性,通過向量化、匯編、算法優化等手段,提升DNN核心算子性能,并通過插件化形式對接開源oneD
65、NN庫提供完整能力。KAIL_DNN_EXT:深度神經網絡算子拓展庫(Deep Neural Network ExtensionLibrary),旨在作為KAIL_DNN的拓展庫,深度優化softmax、random_choice等算子,為AI特定場景封裝為Python語言接口庫直接提供給用戶調用。3.1.2 代碼優化代碼優化3.1.2.1 代碼優化介紹代碼優化介紹鯤鵬原生開發在代碼優化階段提供了DevKit親和分析工具,可實現鯤鵬親和代碼優化建議,幫助開發者寫出更適配鯤鵬平臺的代碼。圖圖 3-20 代碼優化階段鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30
66、)版權所有 華為技術有限公司223.1.2.2 親和分析工具親和分析工具親和分析工具是針對鯤鵬平臺的開發者、用戶和ISV開發者的應用、源碼分析工具。親和分析工具屬于鯤鵬DevKit的擴展工具之一,支持在鯤鵬平臺運行。支持以下功能:64位運行模式檢查:將原32位平臺上的軟件遷移到64位平臺上,進行遷移檢查并給出修改建議。字節對齊檢查:在需要考慮字節對齊時,檢查源碼中結構體類型變量的字節對齊情況。緩存行對齊檢查:對C/C+源碼中結構體變量進行128字節對齊檢查,提升訪存性能。內存一致性靜態檢查:在鯤鵬平臺上,分析、修復用戶軟件中的內存一致性問題。向量化檢查:在鯤鵬平臺上檢查可向量化片段并提供修改建
67、議。矩陣化檢查:在鯤鵬平臺上檢查可矩陣化片段并提供修改建議。構建親和:分析makefile、CMakeLists.txt中可以替換成鯤鵬加速庫的內容,并提供替換建議和功能修復。計算精度分析:精度分析工具對應用函數插樁后,分別在x86平臺和鯤鵬平臺運行,最終通過對比輸出結果,分析平臺計算精度差異。親和分析工具詳細介紹請參見鯤鵬鯤鵬DevKit-應用遷移應用遷移。以向量化檢查功能為例。向量化檢查向量化檢查向量化檢查功能用于對可向量化片段進行檢查,并提供向量化修改建議。步驟步驟1 創建向量化檢查分析任務。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華
68、為技術有限公司23圖圖 3-21 向量化檢查(VS Code)用戶需要上傳源碼及編譯生成的BC文件,BC文件生成指導請參見聯機幫助。步驟步驟2 查看向量化檢查分析結果。圖圖 3-22 向量化檢查分析結果鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司24圖圖 3-23 源碼修改建議-結束結束3.1.3 編譯編譯3.1.3.1 編譯介紹編譯介紹鯤鵬原生開發在編譯構建階段提供了畢昇編譯器、畢昇JDK、GCC for openEuler。通過上述鯤鵬親和編譯器,在不修改用戶應用源碼的情況下,提供鯤鵬平臺的應用性能提升。圖圖 3-24 編譯
69、階段鯤鵬親和編譯器,詳細介紹與最新內容請參見鯤鵬鯤鵬DevKit-編譯編譯3.1.3.2 畢畢昇昇編譯器編譯器畢昇編譯器是華為編譯器實驗室針對通用處理器架構構建,增強和引入了多種編譯優化技術,致力于打造高性能、高可信及易擴展的編譯器工具鏈。支持C11、C+14/17、Fortran語言標準,OpenMP 4.5/5.0 API標準。高性能編譯算法,基于鯤鵬架構深度調優,內存優化、循環優化、自動向量化等多種編譯增強。支持安全/高效編碼工具集,包括靜態檢查工具、重構工具等。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司253.1.3.
70、3 畢畢昇昇 JDK畢昇JDK基于OpenJDK開發,是一款高性能、可用于生產環境的OpenJDK發行版;畢昇JDK已應用于華為內部多個產品上,解決了業務實際運行中遇到的多個疑難問題;在GC、鯤鵬后端代碼生成、類信息共享等方面重點優化,在大數據等領域性能突出。畢昇JDK致力于為JAVA開發者提供一款穩定可靠、高性能、易調測的JDK,也為用戶在鯤鵬架構上提供一個更好的選擇。支持Java版本:支持Java 8、11、17、21四個LTS版本。支持架構:Linux/AArch64、Linux/x86_64。支持操作系統:openEuler全系列操作系統、CentOS 7.6、Ubuntu 20.04
71、、Ubuntu 22.04、麒麟V10、UOS 20等。3.1.3.4 GCC for openEulerGCC for openEuler是基于開源GCC開發的編譯器工具鏈(包含編譯器、匯編器、鏈接器),在openEuler社區開源發布。支持C11、C+14/17、Fortran 2018語言標準,OpenMP 4.5/5.0 API標準。針對鯤鵬平臺進行質量加固,覆蓋開源+商業全量測試,多產品穩定商用。3.1.4 調試調試3.1.4.1 調試介紹調試介紹鯤鵬編譯調試工具支持在調試階段進行應用調試。支持C/C+/Fortran代碼調試能力、支持單機下GPU應用調試能力、支持HPC場景多節點應
72、用并行調試能力。圖圖 3-25 調試階段3.1.4.2 編譯調試工具編譯調試工具編譯調試工具能一鍵式部署鯤鵬編譯器,支持單機下GPU應用調試能力,通過統一調試界面調試GPU應用,實現CUDA-GDB調試能力;支持HPC場景多節點應用并行調試能力以及鯤鵬平臺遠程編譯調試能力。支持C/C+/Fortran代碼調試能力。支持以下功能:一鍵式部署鯤鵬編譯器(GCC for openEuler、畢昇編譯器、畢昇JDK)??梢暬渲镁幾g調試參數,一鍵式編譯、運行、調試。遠程單步調試C/C+代碼。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司2
73、6編譯調試過程中信息實時交互。CUDA支持調試源碼、匯編代碼。HPC支持調試源碼、匯編代碼,支持歷史通信組詳細信息展示和堆棧切換。圖圖 3-26 編譯調試工具編譯調試工具,詳細介紹與最新內容請參見鯤鵬鯤鵬DevKit-調試調試。通用應用調試通用應用調試通用應用調試提供鯤鵬、飛騰平臺遠程調試能力,提供圖形化界面,大幅提升調試效率。步驟步驟1 通用應用調試參數配置,如圖圖3-27所示。圖圖 3-27 通用應用參數配置步驟步驟2 進行通用應用調試,如圖圖3-28所示。支持設置斷點、單步調試、變量/寄存器查看等通用調試能力。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-
74、30)版權所有 華為技術有限公司27圖圖 3-28 通用應用調試-結束結束HPC 并行應用調試并行應用調試提供HPC場景多節點并行調試能力,僅支持以Launch模式調試MPI應用。步驟步驟1 HPC并行應用調試參數配置,如圖圖3-29所示。圖圖 3-29 HPC 并行應用參數配置步驟步驟2 進行HPC并行應用調試,如圖圖3-30所示。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司28圖圖 3-30 HPC 并行應用調試步驟步驟3 界面左下角呈現RANK、通信組信息。單擊按鈕,可查看通信子組變化概覽、變化詳情以及死鎖信息,如圖圖3-
75、31所示。圖圖 3-31 查看詳情-結束結束CUDA 應用調試應用調試支持鯤鵬平臺調試CUDA程序,通過統一的調試界面使用CUDA-GDB調試GPU應用。步驟步驟1 CUDA應用調試參數配置,如圖圖3-32所示。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司29圖圖 3-32 CUDA 應用參數配置步驟步驟2 進行CUDA應用調試,如圖圖3-33所示。在源碼下方可查看KERNEL THREADS信息以及INFO CUDA信息。圖圖 3-33 CUDA 應用調試-結束結束安全應用調試安全應用調試步驟步驟1 安全應用調試參數配置,如圖
76、圖3-34所示。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司30圖圖 3-34 安全應用參數配置步驟步驟2 通過查看tee.log查看調試結果,如圖圖3-35所示。圖圖 3-35 日志文件-結束結束3.1.5 調優調優3.1.5.1 調優介紹調優介紹鯤鵬原生開發在調優階段提供了系統性能分析工具、Java性能分析工具、系統診斷工具。通過通用性能調優和場景化性能調優,可實現應用性能提升5%-10%。圖圖 3-36 調優階段鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司3
77、1性能調優工具,詳細介紹與最新內容請參見鯤鵬鯤鵬DevKit-調優調優&診斷診斷。3.1.5.2 系統性能分析工具系統性能分析工具3.1.5.2.1 系統性能分析工具簡介系統性能分析工具簡介系統性能分析是針對基于鯤鵬的服務器的性能分析工具,能收集服務器的處理器硬件、操作系統、進程/線程、函數等各層次的性能數據,分析出系統性能指標,定位到系統瓶頸點及熱點函數,給出優化建議。該工具可以輔助用戶快速定位和處理軟件性能問題。調優助手是針對基于鯤鵬的服務器的調優工具,能系統化組織性能指標,引導用戶分析性能瓶頸,實現快速調優。圖圖 3-37 系統性能分析工具表表 3-1 任務描述任務分類任務分類描述描述調
78、優助手調優助手通過系統化組織和分析性能指標、熱點函數、系統配置等信息,形成系統資源消耗鏈條,引導用戶根據優化路徑分析性能瓶頸,并針對每條優化路徑給出優化建議和操作指導,以此實現快速調優。對比分析支持對同一種類型分析任務的結果,選擇同一節點或者不同節點間進行比較,從而快速獲得不同分析結果之間的差別,定位性能指標的變化,快速識別優化手段的效果。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司32任務分類任務分類描述描述HPC集群檢查通過對用戶指定的MPI集群進行硬件、軟件配置檢查,并給出集群中各節點軟硬件配置的一致度報告。檢查對象支持硬
79、件領域的CPU、GPU、互聯、內存、網卡、磁盤,軟件領域中的OS、Kernel、環境變量、MPI、OpenMP、HPC常用依賴庫等維度。對于不符合鯤鵬平臺最佳實踐的配置,工具會給出優化建議。HPC應用分析HPC應用分析通過采集系統的PMU事件并配合采集面向OpenMP和MPI應用的關鍵指標,從而幫助用戶精準獲得Parallel region及Barrier-to-Barrier的串行及并行時間,校準的L2層微架構指標,指令分布及L3的利用率和內存帶寬等信息。全景分析通過采集系統軟硬件配置信息,以及系統CPU、內存、存儲IO、網絡IO資源的運行情況,獲得對應的使用率、飽和度、錯誤次數等指標,以此
80、識別系統性能瓶頸。針對部分系統指標項,根據當前已有的基準值和優化經驗提供優化建議。微架構分析基于ARM PMU(Performance Monitor Unit)事件,獲得指令在CPU流水線上的運行情況,可以幫助用戶快速定位當前應用在CPU上的性能瓶頸,用戶可以有針對性地修改自己的程序,以充分利用當前的硬件資源。訪存分析基于CPU訪問緩存和內存的事件,分析訪存過程中可能的性能瓶頸,給出造成這些性能問題的可能原因及優化建議。訪存統計分析基于處理器訪問緩存和內存的PMU事件,分析存儲的訪問次數、命中率、帶寬等情況,具體包括:分析L1C、L2C、L3C、TLB的訪問命中率和帶寬。分析HHA訪問速率。
81、分析DDR的訪問帶寬和次數。Miss事件分析基于ARM SPE(Statistical Profiling Extension)能力實現。SPE針對指令進行采樣,同時記錄一些觸發事件的信息,包括精確的PC指針信息。利用SPE能力可以用于業務進行LLCMiss,TLB Miss,Remote Access,Long Latency Load等Miss類事件分析,并精確的關聯到造成該事件的代碼?;谶@些信息,用戶便可以有針對性地修改自己的程序,降低發生對應事件發生的幾率,提高程序處理性能。NUMA精細化分析基于ARM SPE(Statistical Profiling Extension)能力實現
82、。SPE針對指令進行采樣,同時記錄一些觸發事件的信息,包括精確的PC指針信息。利用SPE能力可以用于收集系統中所有進程的NUMA性能,找到Top N(e.g.N=10)NUMA性能最差的進程及這些進程中的內存熱區,各NUMA節點間內存訪問統計矩陣,識別節點間內存訪問不平衡狀態,并得到相關優化建議。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司33任務分類任務分類描述描述I/O分析分析存儲IO性能。以存儲塊設備為分析對象,分析得出塊設備的I/O操作次數、I/O數據大小、I/O隊列深度、I/O操作時延等性能數據,并關聯到造成這些I/O
83、性能數據的具體I/O操作事件、進程/線程、調用棧、應用層I/O APIs等信息。根據I/O性能數據分析給出進一步優化建議。進程/線程性能分析采集進程/線程對CPU、內存、存儲IO等資源的消耗情況,獲得對應的使用率、飽和度、錯誤次數等指標,以此識別進程/線程性能瓶頸。針對部分指標項,根據當前已有的基準值和優化經驗提供優化建議。針對單個進程,還支持分析它的系統調用情況。資源調度分析采集進程/線程的運行情況,獲得對應的冷火焰圖、鏈路切換次數和全局占比等指標,以此識別性能瓶頸。支持分析單個進程的系統調用情況。熱點函數分析分析C/C+程序代碼,找出性能瓶頸點,獲得對應的熱點函數,支持通過火焰圖展示函數的
84、調用關系,給出優化路徑。鎖與等待分析分析glibc和開源軟件(如MySQL、Open MP)的鎖與等待函數(包括sleep、usleep、mutex、cond、spinlock、rwlock、semaphore等),關聯到其歸屬的進程和調用點,并根據當前已有的優化經驗給出優化建議。Roofline分析幫助用戶在給定硬件平臺上,分析出應用程序的瓶頸點位置,從而有針對性的進行優化。AI調優使用自研高性能AI調優方案,通過用戶自主選擇測試用例,對數據庫和大數據場景進行自動優化,自動調優后給予最優參數配置,提供復雜場景下參數配置的優化建議。3.1.5.2.2 通用分析通用分析通用分析包含全景分析、進程
85、/線程分析、熱點函數分析。步驟步驟1 創建通用分析任務。如圖圖3-38所示。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司34圖圖 3-38 通用分析任務步驟步驟2 查看任務分析結果,如圖圖3-39、圖圖3-40和圖圖3-41所示。圖圖 3-39 全景分析結果鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司35圖圖 3-40 進程/線程分析結果圖圖 3-41 熱點函數分析結果-結束結束3.1.5.2.3 系統部件分析系統部件分析系統部件分析包括微架構分析、訪存分析、I/
86、O分析。步驟步驟1 創建系統部件分析,如圖圖3-42所示。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司36圖圖 3-42 系統部件分析步驟步驟2 查看分析結果,如圖圖3-43、圖圖3-44和圖圖3-45所示。圖圖 3-43 微架構分析結果鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司37圖圖 3-44 訪存分析結果圖圖 3-45 I/O 分析結果-結束結束3.1.5.2.4 專項分析專項分析專項分析包括資源調度分析、鎖與等待分析和Roofline分析。步驟步驟1 創
87、建專項分析任務,如圖圖3-46所示。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司38圖圖 3-46 專項分析步驟步驟2 查看分析結果,如圖圖3-47、圖圖3-48和圖圖3-49所示。圖圖 3-47 資源調度分析結果鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司39圖圖 3-48 鎖與等待分析結果圖圖 3-49 Roofline 分析結果-結束結束3.1.5.2.5 調優助手調優助手步驟步驟1 創建調優助手分析任務,如圖圖3-50所示。鯤鵬原生開發技術白皮書3 鯤鵬原
88、生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司40圖圖 3-50 調優助手分析任務步驟步驟2 查看分析結果,如圖圖3-51、圖圖3-52、圖圖3-53和圖圖3-54所示。圖圖 3-51 系統配置分析結果鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司41圖圖 3-52 熱點函數分析結果圖圖 3-53 系統性能分析結果鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司42圖圖 3-54 進程/線程性能分析結果-結束結束3.1.5.2.6 AI
89、調優調優步驟步驟1 創建AI調優任務,如圖圖3-55所示。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司43圖圖 3-55 AI 調優任務鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司44步驟步驟2 調優結束后,可通過單擊“下載優化后參數集”按鈕下載已調優的參數配置。圖圖 3-56 下載優化后參數集-結束結束3.1.5.2.7 場景化調優場景化調優步驟步驟1 創建場景化調優任務,如圖圖3-57所示。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024
90、-09-30)版權所有 華為技術有限公司45圖圖 3-57 場景化調優任務步驟步驟2 查看HPC應用分析總覽,如圖圖3-58所示。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司46圖圖 3-58 HPC 應用分析總覽步驟步驟3 查看MPI timeline,如圖圖3-59所示。圖圖 3-59 MPI timeline-結束結束3.1.5.3 Java 性能分析工具性能分析工具3.1.5.3.1 Java 性能分析工具簡介性能分析工具簡介Java性能分析工具是針對基于鯤鵬的服務器上運行的Java程序的性能分析和優化工具,能圖形化顯示
91、Java程序的堆、線程、鎖、垃圾回收等信息,收集熱點函數、定位程序瓶頸點,幫助用戶采取針對性優化。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司47圖圖 3-60 Java 性能分析工具鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司48表表 3-2 任務描述任務分類任務分類描述描述在線分析在線分析包含對于目標JVM和Java程序的雙重分析。包括Java虛擬機的內部狀態如Heap,GC活動,線程狀態及上層Java程序的性能分析,如調用鏈分析,熱點函數,鎖分析,程序線程狀
92、態及對象生成分布等。通過Agent的方式在線獲取JVM運行數據,進行精確分析。主要分析結果包含:1.概覽 在線顯示Java虛擬機系統狀態。在線顯示JVM的Heap大小、GC活動、Thread數量、Class加載數量和CPU使用率。2.線程信息獲取當前JVM中實時的活動線程狀態和當前線程轉儲,圖形化顯示線程鎖定狀態,分析線程死鎖情況。3.內存信息 通過抓取堆快照,分析應用在某時刻堆的直方圖分布和支配調用關系,追溯堆內存中各Java存活對象到GC root的引用關系鏈,幫助定位潛在的內存問題;對比分析不同時刻的堆快照,給出堆使用與分配變化,輔助用戶發現堆內存在分配和使用過程中的異常情況。獲取Jav
93、a堆中各個對象創建的數量及大小,顯示相關內存使用情況并實時刷新。4.熱點信息 通過工具分析的熱點方法,熱點方法以倒火焰圖形式呈現,不同層(如Java調用層、JNI層、Native層、內核層等)的熱點方法的以不同顏色區分。通過工具展開查看Java方法對應的字節碼(非必須)、經JVM JIT編譯器生成的機器指令,并查看這些指令的熱點分布;對于不能查看的字節碼的情形需要給出原因。對給定的入口方法進行調用鏈采集,收集采集期間的方法調用關系,方法耗時等數據;以樹形式展現。5.GC信息用戶可以在線統計分析目標JVM進程中發生的GC事件,分析GC原因、GC階段分布、GC內存回收效果、GC暫停等因素,以定位潛
94、在的GC相關的內存問題、性能瓶頸問題。6.IO信息在線分析應用中的文件IO、Socket IO時延、消耗帶寬等數據,找出熱點IO操作。7.數據庫信息 監測和分析數據庫連接池。監測數據庫連接池連接的情況、幫助用戶定位潛在的連接泄露,對不合適的連接池配置給出優化建議。分析JDBC熱點SQL操作。記錄應用中的SQL調用時間、耗時和堆棧跟蹤,幫助用戶定位耗時最長的熱點SQL操作。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司49任務分類任務分類描述描述 分析NoSQL熱點操作。記錄應用中訪問/操作NoSQL數據庫調用時間、耗時和堆棧跟蹤,
95、幫助用戶定位耗時最長的熱點NoSQL操作。8.HTTP信息記錄應用中的HTTP請求時間和耗時,找出熱點HTTP請求。9.快照信息支持在堆、IO、Workload在線分析過程中生成快照,對快照進行比對,輔助用戶發現資源、業務相關指標的變化趨勢,定位潛在的資源泄露問題或性能指標惡化問題。采樣分析通過采樣的方式,收集JVM的內部活動/性能事件,通過錄制及回放的方式來進行離線分析。這種方式對系統的額外開銷很小,對業務影響不大,適用于大型的Java程序。主要分析結果包括:1.概覽 顯示Java虛擬機系統狀態。通過采樣及回放的方式顯示JVM的Heap使用情況、GC活動、IO消耗和CPU使用率。2.線程轉儲
96、及鎖分析結果 分析程序線程狀態及鎖。獲取采樣時間內的線程的狀態變化和當前線程轉儲,根據線程轉儲圖形化地顯示線程鎖定狀態,分析線程死鎖情況。分析估計線程阻塞對象和阻塞時間。3.方法采樣分析結果 分析Java及native代碼中熱點函數CPU Cycles的占比及定位。支持通過火焰圖查看熱點函數及其調用棧。4.內存分析結果 Java對象在Heap中的分配情況,快速定位消耗Heap最多或數量分配最多的對象,發現潛在問題;通過堆棧追蹤定位潛在的內存問題。通過對存留周期長的Java對象進行采樣分析,發現潛在的堆內存泄漏點,定位潛在堆內存泄露問題。5.GC分析結果用戶查看Java的GC配置,Heap大小變
97、化以及GC事件發生情況。通過觀察Heap變化,GC活動頻率和暫停時間,分析和調整當前的GC策略。6.IO分析結果用戶可分析目標Java應用中關于文件讀寫、Socket流量使用情況,以發現IO使用瓶頸;分析應用對文件的讀寫統計信息:讀寫路徑、讀/寫頻次、讀/寫速率、讀/寫總量、堆棧跟蹤(可配)及隨時間變化圖。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司503.1.5.3.2 在線分析在線分析在線分析包含對于目標JVM和Java程序的雙重分析。步驟步驟1 選擇Java進程,如圖圖3-61所示。圖圖 3-61 選擇 Java 進程步驟
98、步驟2 查看Java性能分析概覽,如圖圖3-62所示。圖圖 3-62 概覽-結束結束3.1.5.3.3 采樣分析采樣分析通過采樣的方式,收集JVM的內部活動/性能事件,通過錄制及回放的方式來進行離線分析。步驟步驟1 新建采樣分析記錄,如圖圖3-63所示。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司51圖圖 3-63 新建采樣分析記錄步驟步驟2 查看采樣分析結果,如圖圖3-64所示。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司52圖圖 3-64 查看采樣分析結果-結
99、束結束3.1.5.4 系統診斷工具系統診斷工具3.1.5.4.1 系統診斷工具簡介系統診斷工具簡介系統診斷是針對基于鯤鵬的服務器的性能分析工具,通過分析系統運行指標,識別異常點,例如:內存泄漏、內存越界、網絡丟包等,并給出優化建議,幫助用戶識別出源代碼中內存使用的問題點,提升程序的可靠性。圖圖 3-65 系統診斷工具表表 3-3 任務描述任務分類任務分類描述描述內存使用診斷分析應用程序存在的內存泄漏點(包括內存未釋放和異常釋放),得出具體的泄漏信息,并支持關聯出調用棧信息和源碼。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司53任
100、務分類任務分類描述描述內存越界診斷分析應用程序的內存異常訪問點,給出異常訪問類型和內存訪問信息,并支持關聯出調用棧和源碼。網絡IO診斷壓測網絡,獲得網絡最大能力,為網絡IO性能優化提供基礎參考數據;診斷網絡,定位網絡疑難問題,解決因網絡配置和異常而導致的網絡IO性能問題。具體包括:網絡撥測、丟包診斷(RDMA暫不支持)、網絡抓包(RDMA暫不支持)、系統負載監控。實現網絡數據流統計功能,對IPv4/IPv6協議簇中UDP和TCP協議數據流、RDMA RoCEv2、IB數據流進行分析,統計不同階段數據流在不同處理核上執行的情況。存儲IO診斷壓測存儲IO,獲得存儲設備最大能力,為存儲IO性能優化提
101、供基礎參考數據。支持存儲IO壓測,獲得存儲IO最大能力,包括:吞吐量、IOPS、時延。3.1.5.4.2 內存診斷內存診斷步驟步驟1 創建內存診斷任務,如圖圖3-66、圖圖3-67所示。圖圖 3-66 內存使用任務鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司54圖圖 3-67 內存越界任務步驟步驟2 查看內存診斷任務結果,如圖圖3-68、圖圖3-69所示。圖圖 3-68 內存使用任務結果鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司55圖圖 3-69 內存越界任務結
102、果-結束結束3.1.5.4.3 網絡網絡 IO 診斷診斷步驟步驟1 創建網絡IO診斷任務,如圖圖3-70所示。圖圖 3-70 網絡 IO 診斷任務步驟步驟2 查看網絡IO診斷任務分析結果,如圖圖3-71所示。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司56圖圖 3-71 網絡 IO 診斷任務分析結果-結束結束3.1.5.4.4 存儲存儲 IO 診斷診斷步驟步驟1 創建存儲IO診斷任務,如圖圖3-72所示。圖圖 3-72 存儲 IO 診斷任務步驟步驟2 查看存儲IO診斷任務分析結果,如圖圖3-73所示。鯤鵬原生開發技術白皮書3 鯤
103、鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司57圖圖 3-73 存儲 IO 診斷任務分析結果-結束結束3.2 流水線階段流水線階段3.2.1 門禁檢查門禁檢查3.2.1.1 門禁檢查介紹門禁檢查介紹鯤鵬原生開發在流水線門禁檢查階段提供了DevKit應用遷移工具、親和分析工具和編碼規范檢查,可攔截不適配鯤鵬服務器的代碼、提供鯤鵬親和代碼優化建議和編碼規范問題提示,把問題攔截在早期階段,提升鯤鵬原生開發效率。圖圖 3-74 門禁檢查3.2.1.2 應用遷移命令行應用遷移命令行應用遷移工具屬于鯤鵬DevKit的擴展工具之一,支持在x86和鯤鵬平臺運行,提供VSC
104、ode插件、Web、命令行等多種使用形態,其中命令行工具支持以下功能:軟件遷移評估:自動掃描并分析軟件包(非源碼包)、已安裝的軟件,提供可遷移性評估報告。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司58源碼遷移:檢查分析C/C+/ASM/Fortran/解釋型語言等源碼文件,定位出需要遷移的代碼并給出遷移指導,支持遷移編輯及一鍵代碼替換功能。用戶可在CI/CD流水線中集成應用遷移工具命令行,實現不適配鯤鵬平臺代碼的門禁攔截能力。應用遷移命令行詳細操作步驟請參見Kunpeng DevKit 用戶指南(命令行工作模式)中的應用遷移應
105、用遷移。軟件遷移評估軟件遷移評估軟件遷移評估幫助用戶分析用戶x86環境上軟件包安裝路徑中的SO庫文件,并檢查這些文件與鯤鵬平臺的兼容性。命令格式:devkit porting pkg-mig-i INPUT_PATH|-input INPUT_PATH-o OUTPUT_PATH|-output OUTPUT_PATH-r all,json,html,csv|-report-type all,json,html,csv-l 0,1,2,3|-log-level 0,1,2,3-set-timeout TIMEOUT-t,-target-os target-os 源碼遷移源碼遷移源碼遷移功能分析
106、用戶C/C+/ASM/Fortran/Go/解釋型語言軟件的可遷移性。命令格式:devkit porting src-mig-i INPUT_PATH|-input INPUT_PATH-c command|-cmd command-s c|c+|asm|fortran|go|interpreted*|-source-type c|c+|asm|fortran|go|interpreted*-t targe_os|-target-os targe_os-p compiler_version|-compiler compiler_version-f fortran-compiler-versio
107、n|-fortran-compiler fortran-compiler-version-o OUTPUT_PATH|-output OUTPUT_PATH-b make,cmake,automake,go|-build-tool make,cmake,automake,go-r all,json,html,csv|-report-type all,json,html,csv-l 0,1,2,3|-log-level 0,1,2,3-set-timeout TIMEOUT-ignore ignore_file-macro MACRO-keep-going True,False3.2.1.3 親
108、和分析命令行親和分析命令行親和分析工具屬于鯤鵬DevKit的擴展工具之一,支持鯤鵬920平臺軟件代碼質量檢查,提升代碼質量、優化訪存性能,提供VS Code插件、Web、命令行等多種使用形態,其中命令行工具支持以下功能:64位運行模式檢查:使用命令通過終端工具進行運行模式檢查。字節對齊檢查:檢查源碼中結構體變量的字節對齊情況。內存一致性檢查:檢查源碼中存在的內存一致性問題。向量化檢查:對可向量化片段進行檢查。矩陣化檢查:對可矩陣化片段進行檢查。構建親和:對構建親和進行檢查。緩存行對齊檢查:對C/C+源碼中結構體變量進行128字節對齊檢查。BC文件生成:通過掃描源碼文件生成對應的BC文件。用戶可
109、在CI/CD流水線中集成親和分析工具命令行,實現鯤鵬親和代碼的優化建議。親和分析命令行詳細操作步驟請參見Kunpeng DevKit 用戶指南(命令行工作模式)中的親和分析親和分析。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司5964 位運行模式檢查位運行模式檢查4位運行模式檢查就是將GCC4.8.5GCC10.3.0版本原32位的應用遷移到64位平臺上,進行遷移檢查并給出修改建議。命令格式:devkit advisor run-mode-i INPUT_PATH|-input INPUT_PATH-o OUTPUT_PATH|
110、-output OUTPUT_PATH-l 0,1,2,3|-log-level 0,1,2,3-r all,json,html,csv|-report-type all,json,html,csv-set-timeout TIMEOUT字節對齊檢查字節對齊檢查字節對齊檢查就是在需要考慮字節對齊時,檢查源碼中結構體類型變量的字節對齊情況,提升內存訪問效率。命令格式:devkit advisor addr-align-i INPUT_PATH|-input INPUT_PATH-c COMMAND|-cmd COMMAND-o OUTPUT_PATH|-output OUTPUT_PATH-b
111、make,cmake,automake|-build-tool make,cmake,automake-r all,json,html,csv|-report-type all,json,html,csv-l 0,1,2,3|-log-level 0,1,2,3-set-timeout TIMEOUT內存一致性檢查內存一致性檢查內存一致性檢查就是檢查源碼遷移在鯤鵬平臺運行時可能存在的內存一致性問題,并提供插入內存屏障的建議。命令功能:devkit advisor mm-check-i INPUT_PATH|-input INPUT_PATH-f BC_PATH|-bc-file BC_PATH
112、-autofix true,false -autofix-dir AUTOFIX_OUTPUT_PATH-o OUTPUT_PATH|-output OUTPUT_PATH -r all,json,html,csv|-report-type all,json,html,csv-l 0,1,2,3|-log-level 0,1,2,3-set-timeout TIMEOUT向量化檢查向量化檢查向量化檢查功能用于對可向量化片段進行檢查,并提供向量化修改建議,更好地發揮芯片性能。命令格式:devkit advisor vec-check-i INPUT_PATH|-input INPUT_PATH-
113、f BC_PATH|-bc-file BC_PATH-c COMMAND|-cmd COMMAND-p clang,gcc|-compiler clang,gcc-o OUTPUT_PATH|-output OUTPUT_PATH -r all,json,html,csv|-report-type all,json,html,csv-l 0,1,2,3|-log-level 0,1,2,3-set-timeout TIMEOUT-sve-enable true,false矩陣化檢查矩陣化檢查矩陣化檢查功能用于對可矩陣化片段進行檢查,并提供矩陣化修改建議,更好地發揮芯片性能。命令功能:devki
114、t advisor matrix-check-i INPUT_PATH|-input INPUT_PATH-s scan_file_path|-scan-dir scan_file_path(-b make,cmake|-build-tool make,cmake)&(-c COMMAND|-cmd COMMAND)|-j COMPILE_JSON_PATH|-compile-command-json COMPILE_JSON_PATH-o OUTPUT_PATH|-output OUTPUT_PATH-r all,json,html,csv|-report-type all,json,htm
115、l,csv-l 0,1,2,3|-log-level 0,1,2,3-p sme,domain|-optimization sme,domain-m compute,memory_access,communication|-module compute,memory_access,communication-set-timeout TIMEOUT鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司60構建親和構建親和構建親和功能用于分析makefile、CMakeLists.txt中可以替換鯤鵬加速庫的內容,并提供替換建議和功能修復。命
116、令功能:devkit advisor affi-check-i INPUT_PATH|-input INPUT_PATH-c COMMAND|-cmd COMMAND-o OUTPUT_PATH|-output OUTPUT_PATH-b make,cmake|-build-tool make,cmake-r all,json,html,csv|-report-type all,json,html,csv-l 0,1,2,3|-log-level 0,1,2,3-set-timeout TIMEOUT緩存行對齊檢查緩存行對齊檢查緩存行對齊檢查是對C/C+源碼中結構體變量進行128字節對齊檢查,
117、提升訪存性能。命令功能:devkit advisor cacheline-i INPUT_PATH|-input INPUT_PATH-o OUTPUT_PATH|-output OUTPUT_PATH-r all,json,html,csv|-report-type all,json,html,csv-l 0,1,2,3|-log-level 0,1,2,3-set-timeout TIMEOUTBC 文件生成文件生成BC文件用于內存一致性檢查和向量化檢查,簡化BC文件生成過程。命令功能:devkit advisor bc-gen-i INPUT_PATH|-input INPUT_PATH
118、-c COMMAND|-cmd COMMAND-o OUTPUT_PATH|-output OUTPUT_PATH-l 0,1,2,3|-log-level 0,1,2,3-set-timeout TIMEOUT3.2.1.4 編碼規范檢查編碼規范檢查鯤鵬原生開發流水線使用SonarQube進行編碼規范檢查。SonarQube是一個管理代碼質量的開放平臺,涵蓋了架構設計、注釋、編碼規范、潛在缺陷、代碼復雜度、重復代碼等多個維度的質量分析。幫助檢查代碼缺陷、改善代碼質量以及提高開發速度,可以支持Java、C、C+、JavaScript等多種編程語言的代碼質量管理與檢測。包含七個代碼質量檢查維度:
119、復雜度分布(complexity):代碼復雜度過高將難以理解。重復代碼(duplications):程序中包含大量復制、粘貼的代碼而導致代碼臃腫,SonarQube可以展示源碼中重復嚴重的地方。單元測試統計(unit tests):統計并展示單元測試覆蓋率,開發或測試可以清楚測試代碼的覆蓋情況。代碼規則檢查(coding rules):通過Findbugs、PMD、CheckStyle等檢查代碼是否符合規范。注釋率(comments):若代碼注釋過少,當有人員變動后,其他人比較難以接手;若代碼注釋過多,又不利于閱讀。潛在的Bug(potential bugs):通過Findbugs、PMD、C
120、heckStyle等檢測潛在的bug。結構與設計(architecture&design):找出循環,展示包與包、類與類之間的依賴、檢查程序之間耦合度。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司61圖圖 3-75 代碼缺陷檢查3.2.2 編譯構建編譯構建鯤鵬原生開發在流水線編譯構建階段提供了畢昇編譯器、畢昇JDK、GCC foropenEuler。通過上述鯤鵬親和編譯器,在不修改用戶應用源碼的情況下,提供鯤鵬平臺的應用性能提升。詳細內容請參見3.1.3 編譯編譯。圖圖 3-76 編譯構建3.2.3 調優調優3.2.3.1 調優
121、介紹調優介紹鯤鵬原生開發在流水線調優階段提供了自動反饋優化功能,通過流水線自動觸發,實現應用編譯優化。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司62圖圖 3-77 調優3.2.3.2 自動反饋優化自動反饋優化PGO(Profile Guided Optimization)是一種編譯器優化技術,通過編譯器插樁收集程序運行時信息進行優化決策。編譯器根據這些運行時信息指導各種編譯優化技術進行更準確的優化決策,生成更優的目標程序。A-FOT是一款用于提升編譯器GCC for openEuler自動反饋優化特性的工具,支持以下三種模式:
122、AutoFDO:PGO的簡化部署版,使用perf替代插樁獲取程序運行profile,受益優化點包括矢量化、循環展開、循環剝離等優化。AutoPrefetch:增強版預取優化,根據Dcache訪問、存取指令Cache Miss率,獲取數據訪問優化代碼塊并進行預取優化,同時優化預取提前量,建議和AutoFDO共同使用。AutoBOLT:鏈接后二進制優化,對控制流復雜的程序具有顯著的優化效果,主要優化包括BB重排、函數重排、冷熱分區等優化,與AutoFDO、AutoPrefetch部分沖突。A-FOT安裝部署指導請參見鯤鵬原生開發 用戶指南中的安裝安裝A-FOT工具工具。3.2.4 測試測試3.2.
123、4.1 測試介紹測試介紹鯤鵬原生開發在流水線測試階段提供了兼容性測試工具和Java性能測試工具,在鯤鵬服務器上對應用進行全方位測試。圖圖 3-78 測試鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司633.2.4.2 兼容性測試工具兼容性測試工具鯤鵬原生開發提供了一系列兼容測試用例集,實現了鯤鵬兼容測試自動化,保證應用實現鯤鵬兼容。測試用例集如表表3-4所示。表表 3-4 測試用例集說明主要功能主要功能功能描述功能描述兼容性測試通過待測試應用軟件在鯤鵬環境啟動前后資源波動異常檢測、驗證應用軟件啟動和停止,自動檢測應用軟件在鯤鵬平臺
124、上的可運行性、兼容性問題??煽啃詼y試通過待測試應用軟件在穩定運行期間的系統資源內存的波動異常檢測、在異常終止測試場景檢測應用運行,自動評估應用軟件在鯤鵬平臺上的穩定性和可靠性。安全測試通過待測試應用軟件在運行情況下的端口掃描、病毒掃描和漏洞掃描,自動發現應用軟件可能存在的安全風險。鯤鵬原生開發兼容性測試工具安裝部署詳細內容請參見鯤鵬原生開發 用戶指南中的單獨部署兼容性測試工具單獨部署兼容性測試工具。3.2.4.3 Java 性能測試工具性能測試工具鯤鵬原生開發在流水線測試階段提供了Java性能測試工具,結合Jmeter,對目標程序進行壓測,采集目標進程的性能數據,生成壓測報告。鯤鵬原生開發Ja
125、va性能測試工具安裝部署詳細內容請參見鯤鵬原生開發 用戶指南中的安裝工具到執行機安裝工具到執行機。3.2.5 版本發布版本發布鯤鵬原生開發在版本發布階段提供了病毒掃描能力,實現了版本安全合規掃描自動化,版本發布效率提升。圖圖 3-79 版本發布鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司64鯤鵬原生開發病毒掃描使用開源病毒掃描工具ClamAV,ClamAV可檢測數百萬種病毒、蠕蟲、木馬和其他惡意軟件,包括Microsoft Office宏病毒、移動惡意軟件和其他威脅。3.3 OS 底座(底座(openEuler 系操作系統)系操
126、作系統)3.3.1 openEuler 簡介簡介openEuler是一個面向數字基礎設施的操作系統,支持服務器、云計算、邊緣計算、嵌入式等應用場景,支持多樣性計算,致力于提供安全、穩定、易用的操作系統。openEuler社區及其他第三方開發者共同提供了豐富易用的軟件包,在最新的版本中,軟件包總數已超過3.5萬。openEuler社區版本使用者可以根據自己的需求配置不同的軟件倉庫。openEuler從用戶場景出發,回溯梳理相應的軟件依賴關系,理清所有軟件包的上游社區地址、源碼和上游對應驗證。完成構建驗證、分發、實現生命周期管理,提供可靠開源軟件供應鏈。目前,openEuler社區積累超過1300
127、+的企業和合作伙伴,覆蓋了全產業鏈,發展了近萬名社區貢獻者,國內外主流操作系統廠商均推出基于歐拉的商業發行版。圖圖 3-80 openEuler 簡介獲取最新的openEuler版本和詳細的用戶指南,請參見openEuler社區社區。3.3.2 openEuler 基礎能力基礎能力鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司653.3.2.1 iSulad 輕量級容器引擎輕量級容器引擎iSulad是一個由C/C+編寫實現的輕量級容器引擎,具有輕、靈、巧、快的特點,不受硬件規格和架構限制,底噪開銷更小,可應用的領域更為廣泛。iSu
128、lad是openEuler提供的新的容器引擎,其統一的架構設計能夠滿足CT和IT領域的不同需求。相比Golang編寫的Docker,iSulad資源占用更少,容器啟動更快,可應用范圍更廣。iSulad容器引擎提供了與Docker類似的命令行,方便用戶操作使用。其北向支持CRI接口,可以對接Kubernetes,用戶可以使用iSulad作為底座,通過Kubernetes進行容器的編排調度。iSulad南向支持OCIruntime標準,能夠靈活對接runc、lxc、kata、kuasar等多種容器運行時,兼容容器生態。圖圖 3-81 iSuladiSulad的核心能力包括容器服務,鏡像服務、卷服務
129、以及網絡服務。容器服務:用來負責容器生命周期的管理。鏡像服務:負責提供對容器鏡像的操作。iSulad支持符合OCIimage標準的鏡像格式,保證iSulad能夠支持業界主流鏡像。此外,iSulad還支持用于系統容器場景的externalrootfs以及嵌入式場景的embedded鏡像格式。卷服務:為用戶提供容器數據卷管理的能力。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司66網絡服務:可以與符合CNI標準的網絡插件一起,為容器提供網絡能力。iSulad作為一款通用容器引擎,除了支持運行普通容器之外,還支持運行系統容器與安全容器。
130、普通容器:傳統的應用容器。系統容器:在普通容器的基礎上進行功能擴展,相比于普通容器,系統容器具備systemd管理服務的能力,支持在容器運行時動態添加/釋放磁盤設備、網卡、路由以及卷。系統容器主要應用在重計算、高性能、大并發的場景下,可以解決重型應用和業務云化的問題。安全容器:安全容器是虛擬化技術和容器技術的結合,相比于普通容器共用同一臺宿主機內核存在的安全隱患,安全容器通過虛擬化層實現容器間的強隔離,每個安全容器都有一個自己單獨的內核和輕量級虛擬機運行環境,保證同一個宿主機上不同安全容器的運行互相不受影響。3.3.2.2 StratoVirtStratoVirt是一種基于Linux內核虛擬化
131、(KVM)的開源輕量級虛擬化技術,在保持傳統虛擬化的隔離能力和安全能力的同時,降低了內存資源消耗,提高了虛擬機啟動速度。StratoVirt可以應用于微服務或函數計算等Serverless場景,保留了相應接口和設計,用于快速導入更多特性,直至支持通用虛擬化。StratoVirt的核心架構如圖圖3-82所示,從上到下分為三層。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司67圖圖 3-82 StratoVirt外部API:StratoVirt使用QMP協議與外部系統通信,兼容OCI,同時支持對接libvirt。bootloader:
132、輕量化場景下使用簡單的bootloader加載內核鏡像實現快速啟動,而不像傳統的繁瑣的BIOS和Grub引導方式;在通用虛擬化場景下,支持UEFI啟動。模擬主板microvm:為了提高性能和減少攻擊面,StratoVirt最小化了用戶態設備的模擬。模擬實現了KVM仿真設備和半虛擬化設備,如GIC、串行、RTC和virtio-mmio設備。通用機型:提供ACPI表實現UEFI啟動,支持添加virtio-pci以及VFIO直通設備等,極大提高虛擬機的I/O性能。StratoVirt配合iSulad容器引擎和Kubernetes編排引擎可形成完整的容器解決方案,支持Serverless負載高效運行。
133、鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司683.3.2.3 openEuler AI 軟件棧軟件棧openEuler兼容NVIDIA、Ascend等主流算力平臺的軟件棧,為用戶提供高效的開發運行環境。通過將不同AI算力平臺的軟件棧進行容器化封裝,即可簡化部署過程,提供開箱即用的體驗。openEuler AI軟件棧容器化封裝優化環境部署過程,并面向不同場景提供如圖圖3-83所示的三類容器鏡像。圖圖 3-83 容器鏡像SDK鏡像:以openEuler為基礎鏡像,安裝相應硬件平臺的SDK,如Ascend平臺的CANN或NVIDIA
134、的CUDA軟件。AI框架鏡像:以SDK鏡像為基礎,安裝AI框架軟件,如PyTorch或TensorFlow。模型應用鏡像:在AI框架鏡像的基礎上,包含完整的工具鏈和模型應用。3.3.2.4 A-Tune 智能調優引擎智能調優引擎完整的IT系統從最底層的CPU、加速器、網卡,到編譯器、操作系統、中間件框架,再到上層應用,可調節參數超過7000個。而大部分使用者只使用了這些參數的默認配置,因此無法充分發揮系統最佳性能。然而,針對特定的應用場景進行調優存在以下三方面的難點。參數數量多,且參數之間存在依賴關系。上層應用系統種類多,不同應用系統的參數不同。每個應用的負載也復雜多樣,不同負載對應的最優參數
135、值也不同。A-Tune是一款基于AI的操作系統性能調優引擎。A-Tune利用AI技術,使操作系統“懂”業務,簡化IT系統調優工作的同時,讓應用程序發揮出色性能。A-Tune目前主要提供智能決策和自動調優兩個能力。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司69圖圖 3-84 A-Tune智能決策的基本原理是通過采集系統數據,并通過AI引擎中的聚類和分類算法對采集到的數據進行負載識別,得到系統中當前正在運行的業務負載類型,并從優化配置數據庫中提取優化配置,最終選取適合當前系統業務負載的最優參數配置。具備以下功能:重要特征分析:自動
136、選擇重要特征,剔除冗余特征,實現精準用戶畫像。兩層分類模型:通過分類算法,準確識別當前負載。負載變化感知:主動識別應用負載的變化,實現自適應調優。自動調優的基本原理是基于系統或應用的配置參數及性能評價指標,利用AI引擎中的參數搜索算法,反復迭代,最終得到性能最優的參數配置。具備以下功能:重要參數選擇:自動選擇重要的調優參數,減少搜索空間,提升訓練效率。調優算法構建:用戶可從適用場景、參數類型、性能要求等方面選擇最優算法。知識庫構建:將當前負載特征和最優參數增加到知識庫,提升后續調優效率。3.3.3 openEuler 工具和社區服務工具和社區服務3.3.3.1 操作系統遷移操作系統遷移當操作系
137、統生命周期即將EOM,但是應用軟件或者產品的生命周期還未結束時,為了保障業務的連續性、安全性,急需將原操作系統遷移到新操作系統上。企業一方面需要做好操作系統選型(如持續演進、全場景支持、可靠、穩定等),支撐企業持續發展、產品創新、數字化轉型;另一方面需要有系統性的遷移方案及工具,保障遷移無鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司70憂。針對企業遷移操作系統的需求,openEuler助力企業簡單、平穩、高效進行操作系統遷移。x2openEuler是一款將源操作系統遷移到目標操作系統的遷移工具套件,具有批量化原地升級能力,工具提
138、供簡單易用的操作界面,可以批量添加待升級節點進行遷移分析,設計遷移方案并對兼容性問題進行遷移適配,最后對已適配的待升級節點批量升級,實現端到端的無感遷移?;趏penEuler的遷移方案,包括成立遷移保障組織、遷移分析、方案設計、移植適配、遷移實施和測試上線六個階段,如圖圖3-85所示。圖圖 3-85 x2openEuler3.3.3.2 EulerMaker 構建系統構建系統EulerMaker構建系統是一款軟件包構建系統,完成源碼到二進制軟件包的構建,并支持開發者通過搭積木方式,組裝和定制出適合自己需求的場景化OS。主要提供增量/全量構建,分層定制與鏡像定制的能力。社區開發者及合作伙伴基于
139、統一構建系統建設自己的用戶個人倉、OS核心倉,定制出適合自己需求的場景化OS。圖圖 3-86 EulerMaker 特性鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司71功能描述:增量/全量構建:基于軟件包變化并結合軟件包依賴關系,分析影響范圍,得到待構建軟件包列表,按照依賴順序下發并行構建任務。構建依賴關系:提供工程軟件包構建依賴表,支持篩選及統計軟件包依賴及被依賴的軟件包內容。分層定制:支持在構建工程中,基于spec或yaml,疊加配置層模型,實現針對軟件包的版本、patch、構建依賴、安裝依賴、編譯選項及構建流程等內容的定制
140、。鏡像定制:支持開發者通過配置repo源,生成iso、qcow2、容器等OS鏡像,并支持對鏡像進行軟件包列表定制。支持本地任務復現:通過命令行在本地復現構建任務,方便定位構建問題。一鍵工程創建:基于yaml配置實現一鍵工程創建,支持批量加包,大大簡化用戶操作。3.3.3.3 EulerTest 測試管理平臺測試管理平臺EulerTest是openEuler社區孵化的用以承載社區全流程測試活動的管理平臺。EulerTest核心為web端數據中臺,幫助社區版本測試高效運作,使能社區版本測試可跟蹤可追溯。具備支撐資源管理以及自動化測試功能的插件化服務,支持對接多元測試引擎。圖圖 3-87 Euler
141、Test 測試管理平臺功能描述:支持對物理機進行靜態資源管理,包括資源的密鑰修改、占用釋放和系統重裝。支持對虛擬機進行動態資源管理,提供網卡磁盤配置熱修改以及web控制臺等功能。支持文本用例的數據管理和版本用例基線的制定,具備用例評審功能。支持對產品和里程碑進行數據管理,支持和碼云企業倉進行數據同步管理,提供版本質量看板以支撐質量看護,使能測試可信。支持管理測試任務數據,支持自動化測試觸發執行,以及支持手工測試執行IT化管理。具備日志按測試步驟分割和分析標注的功能。支持自動化從openQA、Compass-CI等平臺讀取執行結果矩陣,并基于社區既定模板整合為版本測試報告。鯤鵬原生開發技術白皮書
142、3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司723.3.3.4 EulerPipeline 流水線流水線面向社區開發者,基于EulerPipeline流水線,構建多架構、高質量的源碼及二進制倉庫。支持Package-CI/Code-CI/Repo-CI/ISO-CI/單包test-CI/版本test-CI 6類模板,實現模板+任務按需編排,提供40+原子化SaaS服務,簡化社區開發者OS&軟件包開發。支持流水線編排、矩陣測試、一鍵復現、結對聯調。圖圖 3-88 EulerPipeline功能描述:流水線編排:支持流水線自定義,DSL語言編排。矩陣測試
143、:一次聲明,多種組合并行運行;提供矩陣總覽視圖,多OS、多架構運行結果一眼掌握。一鍵復現:通過Web控制臺登入復現環境調測,同時支持通過自有終端軟件利用公鑰登入復現環境調測。結對聯調:流水線服務提供的web控制臺支持多人共享終端,使能多用戶結對調測。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司733.3.3.5 CVE Manager 漏洞管理漏洞管理漏洞管理是openEuler社區對安全漏洞進行感知、收集、處理以及披露的流程、工具和機制的統稱。從合作漏洞感知系統獲取公開漏洞感知信息,再通過機器人在碼云平臺對應項目軟件包倉創建并
144、維護漏洞相關記錄,漏洞修復后進入通用版本構建發布以及安全公告發布流程。openEuler使用CVS Sv3進行漏洞評分。為了保護openEuler用戶的安全,在進行調查、修復和發布安全公告之前,openEuler社區不會公開披露、討論或確認openEuler產品的安全問題。圖圖 3-89 CVE Manager 漏洞管理功能描述:發布安全公告:安全公告內容包括該漏洞的技術細節、CVE編號、CVSS安全評分、嚴重性等級以及受到該漏洞影響的版本和修復版本等信息。安全公告提供郵件訂閱功能:社區同時也提供CVRF格式的安全公告。3.3.3.6 openEuler 官方倉及擴展倉官方倉及擴展倉openE
145、uler生態提供超過3萬+源碼包、百萬級二進制軟件包,可為CentOS、Fedora等系統向openEuler遷移的開發者、OSV、企業等用戶提供一站式兼容性軟件包、文件查詢、下載、開源軟件包的使用風險感知服務。圖圖 3-90 openEuler 官方倉及擴展倉鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司74功能描述:面向創新場景開發者:提供快速的軟件包引入平臺,快速將上游項目形成RPM包。面向廣大用戶:提供openEuler已兼容的軟件包查詢,支持軟件包、文件、命令查找。面向企業用戶:提供開源軟件風險一站式查詢平臺,感知軟件活躍度、合規性、漏洞信息。面向企業用戶:提供閉源軟件分發渠道,支持企業軟件直達用戶。鯤鵬原生開發技術白皮書3 鯤鵬原生開發能力介紹文檔版本 01(2024-09-30)版權所有 華為技術有限公司754 修訂記錄修訂記錄文檔版本文檔版本發布日期發布日期修改說明修改說明032024-09-30第三次正式發布。鯤鵬BoostKit應用使能套件刷新描述及截圖。應用開發工具刷新界面圖。編譯調試工具刷新界面圖。022024-07-18第二次正式發布。012024-04-22第一次正式發布。鯤鵬原生開發技術白皮書4 修訂記錄文檔版本 01(2024-09-30)版權所有 華為技術有限公司76