作者:宋文喆
在應用程序部署到服務器上以后,可能會出現(xiàn)CPU占用率過高,I/O吞吐量下降等性能問題,此時,就需要對程序進行優(yōu)化。性能調(diào)優(yōu)是一個比較復雜的過程,包括建立基準、壓力測試、確定瓶頸、實施優(yōu)化、確認優(yōu)化這5個步驟。調(diào)優(yōu)過程對程序員的知識結構要求非常高,需要非常熟悉硬件、操作系統(tǒng)(OS\JVM)、應用程序等多個方面。
鯤鵬920處理器(兼容ARM架構)的整體設計思路就是通過“多核”獲得強悍性能。具有更多的核數(shù),2NUMA/Socket,L3 Cacheline為128 Byte。這些都是芯片的一些特性,這些特性對于性能調(diào)優(yōu)也會產(chǎn)生不同的影響。
1月11日,華為鯤鵬開發(fā)者技術沙龍-杭州站,來自華為的四位技術專家分享了四個議題,分別是—基于鯤鵬處理器的性能調(diào)優(yōu);鯤鵬大數(shù)據(jù)優(yōu)化實踐;A-Tune自調(diào)優(yōu)技術詳解;iSulad容器引擎分享與實踐。議題分享結束后,緊接著就是最受大家歡迎的現(xiàn)場編碼環(huán)節(jié)。華為技術專家現(xiàn)場演示并指導開發(fā)者進行實操。

參會者們合影留念
鯤鵬處理器的性能調(diào)優(yōu)思路
第一位分享嘉賓是,華為智能計算高級工程師蘇林。他指出性能調(diào)優(yōu)是一個長期的過程,建議開發(fā)者們選擇一個合理的性能調(diào)優(yōu)平衡點,只有最合適的才能達到最好的性能。以鯤鵬處理器來說,對性能影響比較大的兩個特性,第一個是NUMA架構,第二個是L3 Cacheline。
? 鯤鵬處理器支持NUMA架構,通過適當?shù)男阅苷{(diào)優(yōu),既能夠達成很好的性能,又能夠解決SMP架構下的總線瓶頸問題,提供更強的多核擴展能力,以及更好更靈活的計算能力。
? 注意Cacheline偽共享,鯤鵬920和x86的Cacheline大小不一致,可能會出現(xiàn)在X86上優(yōu)化好的程序在鯤鵬 920 上運行時的性能偏低的情況,需要重新修改業(yè)務代碼數(shù)據(jù)內(nèi)存對齊大小。X86 L3 Cacheline大小為64字節(jié),鯤鵬920的Cacheline為128字節(jié)。

華為智能計算高級工程師 蘇林
鯤鵬處理器支持NUMA(Non-uniform memory access, 非統(tǒng)一內(nèi)存訪問)架構,能夠很好的解決SMP技術對CPU核數(shù)的制約。NUMA架構將多個核結成一個節(jié)點 (Node),每一個節(jié)點相當于是一個對稱多處理機(SMP),一塊CPU的節(jié)點之間通過On-chip Network通訊,不同的CPU之間采用Hydra Interface實現(xiàn)高帶寬低時延的片間通訊,在NUMA架構下,整個內(nèi)存空間在物理上是分布式的,所有這些內(nèi)存的集合就是整個系統(tǒng)的全局內(nèi)存。每個核訪問內(nèi)存的時間取決于內(nèi)存相對于處理器的位置,訪問本地內(nèi)存(本節(jié)點內(nèi))會更快一些。

NUMA架構的特點
可以看到不同NUMA內(nèi)的CPU core訪問同一個位置的內(nèi)存,性能不同。內(nèi)存訪問延時從高到低為:跨CPU > 跨NUMA不跨CPU > NUMA內(nèi),因此在應用程序運行時要盡可能的避免跨NUMA訪問內(nèi)存,可以通過設置線程的 CPU親和性來實現(xiàn)。

NUMA配置方法
CPU、內(nèi)存、網(wǎng)卡、磁盤這四個模塊,系統(tǒng)都為我們提供了一些工具進行性能分析。

系統(tǒng)的瓶頸判斷
鯤鵬大數(shù)據(jù)優(yōu)化實踐
第二位分享嘉賓是,華為鯤鵬大數(shù)據(jù)解決方案高級工程師,程碩峰。他向開發(fā)者們介紹了鯤鵬大數(shù)據(jù)的完整生態(tài),分享開源大數(shù)據(jù)平臺Ambari+HDP組件的移植經(jīng)驗。最后介紹了鯤鵬開發(fā)套件(Kunpeng Developer Kit)可實現(xiàn)對海量代碼進行快速掃描和分析,并提供專業(yè)的代碼移植指導,以及移植后全面的系統(tǒng)性能分析與可視化呈現(xiàn),從而極大提升軟件開發(fā)者移植與調(diào)優(yōu)效率。

華為鯤鵬大數(shù)據(jù)解決方案高級工程師 程碩鋒
從下圖可以看到,鯤鵬大數(shù)據(jù)生態(tài)非常完善,在大數(shù)據(jù)領域,各個方面都有了一定的支持,硬件部分,泰山提供了TaiShan 2280 100/200型服務器。芯片有鯤鵬的916、920芯片可供選擇,通過24核、32核、48核、64核來滿足企業(yè)對不同算力的要求。大數(shù)據(jù)組件方面可以從數(shù)據(jù)源頭到數(shù)據(jù)處理、存儲都能夠完美支持。當前支持的大數(shù)據(jù)平臺有華為Fusionlnsight,還有Ambari,東方國信,美亞,他們將為大數(shù)據(jù)快速移植到鯤鵬平臺上來提供支持。

鯤鵬大數(shù)據(jù)解決方案
為了將開源大數(shù)據(jù)平臺Ambari+HDP組件移植到泰山,都需要移植什么內(nèi)容?第一類是Jar包,有些Jar包含有So,需要在鯤鵬平臺重新編譯。組件本身的So文件,需要重新編譯。最后是可執(zhí)行二進制文件,依賴底層的芯片架構,需要重新編譯。具體分為四個步驟:
? 將RPM包分類,分為X86_64和Noarch兩個類型
? 使用checkSo工具掃描RPM
? 分析RPM包,查詢得出得出安裝需要的依賴軟件,解壓獲取rpm中源文件、軟鏈接,檢查/var/lib等關鍵目錄,對比安裝前后新增的源文件、軟鏈接。
? 構建RPM包

開源大數(shù)據(jù)平臺Ambari+HDP組件移植經(jīng)驗總結
A-Tune自調(diào)優(yōu)技術詳解
第三位分享嘉賓是,華為2012實驗室高級工程師謝志鵬。性能調(diào)優(yōu)代表著時間和成本的支出。工程師往往需要搭建測試工具找到瓶頸點,依靠人工巡檢查找故障原因,安裝多種監(jiān)控工具,匯總分析數(shù)十個數(shù)據(jù),期間可能要花掉數(shù)個工程師數(shù)周的時間,才得以提升系統(tǒng)性能。

華為2012實驗室高級工程師 謝志鵬
即使是在實驗室的調(diào)優(yōu)達到了預期的效果,但是往往在業(yè)務運行真實環(huán)境里面,業(yè)務負載都是會動態(tài)變化,而工程師的調(diào)優(yōu)工作,往往都只能應對靜態(tài)負載場景,對于動態(tài)負載場景束手無策。
當前系統(tǒng)調(diào)優(yōu)的兩大痛點是:
? 如何使操作系統(tǒng)感知上層業(yè)務
? 如何降低人工調(diào)優(yōu)成本
基于openEuler的自調(diào)優(yōu)系統(tǒng)A-Tune,使用系統(tǒng)畫像技術,能識別業(yè)務匹配最佳資源模型,實時響應業(yè)務特征變化。目前,系統(tǒng)畫像技術有兩個關鍵技術點。第一個是感知技術,怎么去構建系統(tǒng)畫像?主要是通過分類、聚類相結合的方法,分別在CPU、IO、網(wǎng)絡、內(nèi)存方面聚類然后通過一些具體的業(yè)務進行一些細化的分類,來達到精準識別業(yè)務的效果。

系統(tǒng)畫像構建與感知技術
第二個關鍵技術點,基于機器學習算法的調(diào)優(yōu)參數(shù)搜索技術對于機器學習里面的貝葉斯優(yōu)化算法去做了一個調(diào)優(yōu)參數(shù)的自動搜索技術,工程師只需要提供一組他認為對我們業(yè)務有性能影響的參數(shù),以及參數(shù)范圍,接下來,把這些參數(shù)和參數(shù)范圍告訴我們的機器學習算法,并且給出評價指標。

iSulad的分享與實踐
第四位分享嘉賓是,華為iSula容器團隊架構師蔡灝旻。根據(jù)Sysdig《2019年的容器使用報告》顯示,在容器密度方面,與2018年相比,每臺主機中的容器密度提高了100%,從15個增加到了30個其中最大節(jié)點密度已經(jīng)達到了250個。邊緣節(jié)點資源敏感,留給容器基礎建設的資源屈指可數(shù),一個更輕量、更快速的容器引擎呼之欲出。

華為iSula容器團隊架構師 蔡灝旻
iSula為全量的容器軟件棧,包括引擎、網(wǎng)絡、存儲、工具集與容器OS;iSulad 作為其中輕量化的容器引擎,可以為多種場景提供最靈活、最穩(wěn)定、最安全的底層支撐,目前已開源給大家使用。開源地址:https://gitee.com/openeuler/iSulad
iSulad具有輕、快、易、靈四個特點:
? 輕:iSulad的第一個使用場景是在端側(cè)設備上,在一個智能攝像頭上使用容器來達到快速、簡單切換算法應用部署的功能
? 快:采用C/C++語言實現(xiàn),具備運行速度快、底噪低等特性,且LXC運行時優(yōu)秀的并發(fā)設計也為iSulad并發(fā)性能提供了基石
? 易:iSulad為了使開發(fā)者遷移方便,正在籌備開發(fā)一系列遷移工具,幫助開發(fā)者將自己的應用平滑遷移到iSulad上來
? 靈:針對不同的使用場景提供不同的模式供大家組合切換,開發(fā)者可以根據(jù)自己的使用需要靈活配置切換注重性能的performance模式和注重資源占用的light模式

iSulad的架構
熱烈的調(diào)優(yōu)實踐
最后的調(diào)優(yōu)實踐上機環(huán)節(jié)是最熱烈的,開發(fā)者們果然擁有最忠實的技術信仰,每一位指導老師身旁都圍繞著一群開發(fā)者,從系統(tǒng)配置、調(diào)優(yōu)思路到性能優(yōu)化、故障分析,每一位開發(fā)者都沉浸在濃厚的技術探討氛圍中,我們也采訪了幾位開發(fā)者。

濃厚的技術探討氛圍
Q1:請問您今天參加的實踐組是?感覺本次沙龍技術實踐怎么樣?
A:參加了iSula鏡像,整體的議程感覺都很好。實踐環(huán)節(jié)很好可以讓我們切身,馬上感受到這個產(chǎn)品怎么樣。前面是理論講座,后面馬上就能使用是看得見摸得著的,這個非常好。
Q2:以后希望能聽到鯤鵬技術沙龍更多內(nèi)容分享的是?
A:更多應用指導性更強的內(nèi)容,因為會在工作中用到。比如鯤鵬可以聯(lián)合研究系統(tǒng)級別的部門和研究大數(shù)據(jù)的部門,將大數(shù)據(jù)應用系統(tǒng)結合起來講解,這樣能會產(chǎn)生更好的效果。這樣應用指導性也會更強。

熱烈的編碼實踐環(huán)節(jié)
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!