【云駐共創】BoostKit 2.0進階:數據親和
本次直播介紹了鯤鵬BoostKit使能極致性能,全新推出2.0,提供四大類“數據親和”加速組件,通過對數據全處理流程進行負載優化,提升CPU利用率,減少等待,從而大幅提升應用性能。
一.BoostKit整體介紹
我們都知道硬件和軟件是一個完整的計算機系統互相依存的兩大部分。硬件是軟件賴以工作的物質基礎,是負責提供算力的,而軟件的正常工作是硬件發揮作用的唯一途徑。其中基礎軟件負責釋放算力,而在基礎軟件之上的應用軟件則是整個互聯網行業的價值實現。
那么如何充分釋放硬件的算力潛能,使能應用極致性能?這是當前業界所面對的主要挑戰之一。為了應對這個挑戰,鯤鵬應用使能套件BoostKit應運而生。 通過高性能開源組件,軟件加速包以及參考實現等方面,BoostKit從芯片、整機、基礎軟件,到場景化應用,進行了全棧式的優化。它主要面向八大主流場景,包括大數據,分布式存儲,數據庫、虛擬化、ARM原生、web/CDN、CDN、NFV、HPC。而這些場景無一例外都需要強大的算力,需要海量的數據分析能力。例如,大數據及分布式存儲;亦或者對穩定的網絡及降低網絡延遲等有需求。而鯤鵬BoostKit就是從這些場景的痛點難點問題出發,進行改進優化,包括數據加速,優化數據存儲,提供算力不同密度優化等。使能應用極致性能。
面向華為云的伙伴和客戶開發者,鯤鵬BoostKit提供三大加速能力幫助他們構建有競爭力的解決方案:
? 開源使能:BoostKit已經使能了90%的開源軟件支持鯤鵬,例如MySQL,鯤鵬社區的MySQL已經經過了優化改進,有優秀性能的性能表現。可以直接從開源社區下載下來使用。
? 基礎加速:華為提供基礎性能優化方法,伙伴可以通過鯤鵬社區,在鯤鵬創新中心的指導下使用。
? 應用加速:華為提供高價值的應用創新組件,算法。
1.1高性能開源組件
鯤鵬主導推動70+開源社區引入ARM CI。ARM CI是開源社區項目持續集成的環境。通過引入ARM CI,開源社區的開源軟件在后續開發中的開發,構建,測試以及打包都會同時在鯤鵬服務器上執行。如果社區有發布開源軟件的二進制包,那么該二進制包也會支持鯤鵬。華為除了通過ARM CI對開源項目的支持,同時也貢獻了220+關鍵Patch包以及18項關鍵特性。將來華為還會繼續推動開源社區和鯤鵬的合作。貢獻更多的關鍵能力,讓主流開源軟件都能支持鯤鵬。
1.2基礎加速軟件包
基礎加速軟件包主要包括以下3個方面:
? 基礎性能優化:這個板塊的核心是《鯤鵬性能調優十板斧》,這個優化秘籍主要提供了cpu,磁盤I/O,網絡以及應用的調優方法。開發者可以通過自己的項目情況,選擇具體的調優方法。
? 基礎加速庫:覆蓋7類加速庫,基于ARM指令和KAE高性能加速庫。
? 基礎加速算法:聚焦三大優化方向,構筑高效加速算法。即,鯤鵬BoostKit針對具體的應用場景,常見的開源軟件性能及難點痛點問題,進行深入分析改進優化之后,提供的一套加速補丁開發者可以根據應用的需求和開發場景,有目的地選用。
,
1.3應用加速軟件包
BoostKit應用加速軟件包是能夠提供性能倍增的應用加速軟件包。例如在大數據場景應用BoostKit應用加速軟件包,通過它的機器學習算法,最大能夠提高應用20倍的性能,平均能夠達到10倍。
二.BoostKit1.0回顧
BoostKit1.0在面向八大主流應用場景時,提供場景化性能優化能力,使得各個應用場景性能皆能得到大幅的提升。
BoostKit1.0的基礎加速軟件包包含的基礎加速庫支持7類加速庫,分別是系統庫,壓縮庫,加解密,媒體與信號,數學庫,存儲庫和網絡。其中加解密和壓縮庫是支持基于KAE的硬加速庫進行優化,其他的則是基于arm指令的軟加速庫進行優化。
那么什么是KAE加速引擎呢? 它是鯤鵬920處理器內置的“高性能加速卡”,相較于傳統的方案,KAE方案幫助卸載cpu計算,加速性能比傳統方案要高30%。同時KAE方案支持SM3/SM4等加密算法,明文數據不走數據總線,安全性高;兼容openSSL等接口,應用層無需修改,可以直接調用。
BoostKit的機器學習/圖分析算法優化功能,主要是在它的應用加速軟件包中。
BoostKit通過機器學習/圖分析算法以及算法親和性的優化和原理的優化,能夠成倍提升應用的性能。
那么BoostKit是如何成倍提升應用的性能?我們可以通過一些實驗數據和案例來體會。
? 人碼信息匹配:通過梯度提升GBDT算法,將海量的二維碼和相關信息對應匹配。百萬數據集信息匹配通過鯤鵬boosKit組件進行處理,比沒有使用鯤鵬boosKit組件的速度相比,提升了1.16倍。
? 詐騙短信識別:通過特征降維pca算法,對海量短信樣本提取目標短信樣本。億條短信關鍵特征提取通過鯤鵬boosKit組件進行處理,比沒有使用鯤鵬boosKit組件的速度相比,提升了4倍。
? 識別詐騙團伙:通過全量極大團算法,挖掘抽象圖中的關系稠密團體。千萬級節點圖譜挖掘通過鯤鵬boosKit組件進行處理,比沒有使用鯤鵬boosKit組件的速度相比,提升了5倍。
BoostKit1.0在分布式存儲方面依托EC Turbo技術幫助伙伴提高應用性能。ECTurbo技術相比傳統的開源三副本來說,它采用4+2的方式(4條帶數據+2條帶校驗數據),顯著提升磁盤利用率和存儲能力。由于EC Turbo技術只寫入檢驗數據和待寫條帶數據,且只讀需要的部分塊數據,相較于傳統的直接從整條帶數據讀寫,性能有了極大的提升。
同時BoostKit1.0也提供高比例壓縮算法,通過冷數據歸檔,壓縮算法優化,包括動態全局歷史信息表,分層算法模型方案等,以及指令集優化,使得同等的磁盤容量,能夠多存儲25%的數據,訪問等待時間更加短。
BoostKit1.0在數據庫方面,集中聚焦MySQL的優化。以前的MySQL是通過單SQL查詢。現在則將MySQL單SQL查詢由單線程變成多核并行查詢。主要實現的方式是對查詢涉及的數據分片,實現多核并行讀取和處理數據。最后再將結果匯總。這種方法能夠將查詢性能提高2倍。
BoostKit1.0在數據庫方面,還對MySQL 的TP鎖進行優化。由于DML語句大量并發操作trx_sys關鍵數據結構,造成性能瓶頸。BoostKit1.0通過使用無鎖哈希表維護事務單元,減少鎖沖突,提升并發量。同時,由于DML語句大量并發操作loclk_sys->mutex全局鎖,造成鎖競爭。BoostKit1.0通過將數據結構拆分成若干個數據結構,大鎖拆分成若干把細粒度鎖,從而將OLTP TPCC寫性能提升10%。
三.BoostKit2.0進階
從以上的介紹,我們對鯤鵬BoostKit1.0有了完整的了解。可以知道鯤鵬BoostKit1.0主要聚焦八大場景,解決應用的性能瓶頸,使得鯤鵬算力發揮極致。經過一年的時間,華為在BoostKit1.0的實踐過程中,有了進一步的發現和理解與思考。即,有很多傳統計算負載的cpu本身利用率并不高,這是因為大量的cpu算力浪費在了等待數據的時間上。為了有效減少浪費,讓數據更快到達算力層,同時讓伙伴以及各位開發者能夠從用上鯤鵬過渡到用好鯤鵬。華為在BoostKit1.0的基礎上,升級性能優化理念,隆重推出了BoostKit2.0了。
BoostKit2.0是基于數據全處理流程進行負載優化的,提供了四大加速組件:
? 數據就近計算
? 數據加速傳輸
? 數據并行化處理
? 全生命周期數據安全
隨著互聯網和智能化的相關發展,需要處理的數據量越來越大,呈現爆炸式的增長。而與此同時,cpu的算力卻遠遠滯后于數據量的增長。在這種情況下,如何更好的發揮cpu算力,應對數據不斷增長的需求,就成為一個急需解決的問題。例如在大數據方面,就有大量的數據需要處理。在數據獲取方面也沒有很好的方法過濾掉不必要數據。因為大數據的數據層和控制層在邏輯層面緊密耦合的,優化難度高,導致了大量的無效數據參與了傳輸和運算。從而導致大量的計算資源被浪費。同時大量的算子是通過Java等高級語言寫的,中間要通過虛擬機解釋執行。無法充分發揮硬件的算力。同時還有大數據集群在處理數據的時候,涉及組件較多,要解決端到端的問題,各個引擎都要做一個優化。優化難度特別大。
面對這些問題,BoostKit2.0給出了一個OmniRuntime解決方案。即,通過數據就近計算來解決難題。即通過OmniRuntime解決方案的OmniData組件進行存算的一個協同。即將數據里面的過濾算子架推到存儲側,讓數據的計算在數據的存儲側執行。從而實現數據的過濾,減少數據的無效搬移,讓有用數據更快傳輸到計算層。數據處理方面通過OmniOperat和OmniJillr來實現高效率的算子。這樣就可以通過c或者c++實現算子,從而充分利用硬件能力。以上的解決方案,鯤鵬社區會通過軟件包的方式來實現。
那么OmniRuntime解決方案中OmniData組件存算協同是怎么樣的呢?在了解OmniData組件存算協同之前,我們先來了解一下傳統方案的運作。傳統方案中計算實在計算節點完成的,而數據是在存儲節點存儲的,那么大量的數據需要從數據存儲節點通過網絡傳輸到計算節點,造成網絡的瓶頸。計算效率比較低。而通過OmniData組件存算協同,將包含操作,運算規則的算子卸載到邊緣側,計算在數據本地進行。降低數據的搬遷。消除網絡傳輸的瓶頸,使得計算效率大大提升。
OmniRuntime解決方案中中另外一個優化點——全局緩存Global Cache。在分布式存儲有一個痛點問題。即原生Ceph IO流程中IO請求的線程多,切換頻繁,系統流程的線程數量比較大算力開銷大,導致IOPS低。同時端到端之間的處理路徑長,隊列的等待時間也很長,導致了IO的延遲高。為了解決這個問題,加速數據的傳輸,降低線程頻繁切換的開銷。OmniRuntime解決方案是重構了原生架構Ceph ,建立了一個全局的讀寫緩存池,使得所有的存儲服務器上的內存空間在邏輯上組成一個統一的內存資源池,緩存在任一存儲服務器上的數據。降低了IO請求線程數量,并縮短處理路徑。全局緩存進行了寫緩存的IO聚合,批量合并IO,同時在垃圾回收方面對垃圾進行了時空特性的模型分析,進行了分解掛列。而在讀緩存方面,進行了I/O智能預取,對各種模式進行了識別和優化,對數據進行了一個多維的分析。通過全局緩存池,IOPS提升高達10倍,IO時延降低90%。
全局緩存Global Cache是特性交付策略,他是通過patch與Ceph適配,做到了對Ceph極低的侵入,無需修改Ceph對外接口。華為提供參考架構和硬件選型建議,以及技術支持。保障伙伴們的項目能夠更好運行。
鯤鵬BoostKit2.0支持全生命周期數據安全。第一,機密計算解決運行數據可用不可見的挑戰。什么是可用不可以見呢?機密數據黑盒處理,即應用可以請求對機密數據的相關運算,但不可以直接獲取數據。比如人臉識別功能,相關的數據會存入安全OS。在人臉識別時,安全OS會根據你的輸入,給出判定結果,匹配不匹配。而不能直接獲取或者導入安全OS里面的人臉數據。也就說機密運算能夠保證數據在數據使用,數據傳輸,數據產生,數據銷毀等全生命周期的數據安全。其中intel的SGX、MKTMES,是劃分部分內存地址作為安全區。而ARM則是通過分時復用cpu來構造安全與非安全區。
鯤鵬社區還提供TrustZone機密計算工具,為客戶安全要求高的代碼和數據提供TEE可信計算執行環境,實現關鍵資產的完整性和機密性保護。
四.BoostKit2.0交流資源
要想了解更多BoostKit2.0的咨訊,完成BoostKit2.0的入門到進階的學習,可以去鯤鵬社區官網免費學習。鯤鵬社區提供場景化體驗demo,在線課程,沙箱等資源,以及軟件包,開發者資料等海量資料幫助你學習。
五.總結
鯤鵬BoostKit1.0到2.0,全面聚焦主流應用的痛點難點問題,使能應用極致性能。期待更多企業攜手鯤鵬BoostKit,探尋未來世界更多的可能!
本文整理自華為云社區【內容共創】活動第13期。
查看活動詳情:https://bbs.huaweicloud.com/blogs/330939
相關任務詳情:任務14.【鯤鵬直播間】BoostKit 2.0進階:數據親和
云社區 內容共創
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。