當(dāng)前位置:首頁 >  IDC >  云計(jì)算 >  正文

極具“殺傷力”的性能調(diào)優(yōu),從幾個(gè)思路說起

 2020-01-15 10:50  來源: 互聯(lián)網(wǎng)   我來投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競價(jià),好“米”不錯(cuò)過

作者:宋文喆

在應(yīng)用程序部署到服務(wù)器上以后,可能會(huì)出現(xiàn)CPU占用率過高,I/O吞吐量下降等性能問題,此時(shí),就需要對(duì)程序進(jìn)行優(yōu)化。性能調(diào)優(yōu)是一個(gè)比較復(fù)雜的過程,包括建立基準(zhǔn)、壓力測(cè)試、確定瓶頸、實(shí)施優(yōu)化、確認(rèn)優(yōu)化這5個(gè)步驟。調(diào)優(yōu)過程對(duì)程序員的知識(shí)結(jié)構(gòu)要求非常高,需要非常熟悉硬件、操作系統(tǒng)(OS\JVM)、應(yīng)用程序等多個(gè)方面。

鯤鵬920處理器(兼容ARM架構(gòu))的整體設(shè)計(jì)思路就是通過“多核”獲得強(qiáng)悍性能。具有更多的核數(shù),2NUMA/Socket,L3 Cacheline為128 Byte。這些都是芯片的一些特性,這些特性對(duì)于性能調(diào)優(yōu)也會(huì)產(chǎn)生不同的影響。

1月11日,華為鯤鵬開發(fā)者技術(shù)沙龍-杭州站,來自華為的四位技術(shù)專家分享了四個(gè)議題,分別是—基于鯤鵬處理器的性能調(diào)優(yōu);鯤鵬大數(shù)據(jù)優(yōu)化實(shí)踐;A-Tune自調(diào)優(yōu)技術(shù)詳解;iSulad容器引擎分享與實(shí)踐。議題分享結(jié)束后,緊接著就是最受大家歡迎的現(xiàn)場(chǎng)編碼環(huán)節(jié)。華為技術(shù)專家現(xiàn)場(chǎng)演示并指導(dǎo)開發(fā)者進(jìn)行實(shí)操。

參會(huì)者們合影留念

鯤鵬處理器的性能調(diào)優(yōu)思路

第一位分享嘉賓是,華為智能計(jì)算高級(jí)工程師蘇林。他指出性能調(diào)優(yōu)是一個(gè)長期的過程,建議開發(fā)者們選擇一個(gè)合理的性能調(diào)優(yōu)平衡點(diǎn),只有最合適的才能達(dá)到最好的性能。以鯤鵬處理器來說,對(duì)性能影響比較大的兩個(gè)特性,第一個(gè)是NUMA架構(gòu),第二個(gè)是L3 Cacheline。

? 鯤鵬處理器支持NUMA架構(gòu),通過適當(dāng)?shù)男阅苷{(diào)優(yōu),既能夠達(dá)成很好的性能,又能夠解決SMP架構(gòu)下的總線瓶頸問題,提供更強(qiáng)的多核擴(kuò)展能力,以及更好更靈活的計(jì)算能力。

? 注意Cacheline偽共享,鯤鵬920和x86的Cacheline大小不一致,可能會(huì)出現(xiàn)在X86上優(yōu)化好的程序在鯤鵬 920 上運(yùn)行時(shí)的性能偏低的情況,需要重新修改業(yè)務(wù)代碼數(shù)據(jù)內(nèi)存對(duì)齊大小。X86 L3 Cacheline大小為64字節(jié),鯤鵬920的Cacheline為128字節(jié)。

華為智能計(jì)算高級(jí)工程師 蘇林

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

NUMA架構(gòu)的特點(diǎn)

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

NUMA配置方法

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

系統(tǒng)的瓶頸判斷

鯤鵬大數(shù)據(jù)優(yōu)化實(shí)踐

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

華為鯤鵬大數(shù)據(jù)解決方案高級(jí)工程師 程碩鋒

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

鯤鵬大數(shù)據(jù)解決方案

為了將開源大數(shù)據(jù)平臺(tái)Ambari+HDP組件移植到泰山,都需要移植什么內(nèi)容?第一類是Jar包,有些Jar包含有So,需要在鯤鵬平臺(tái)重新編譯。組件本身的So文件,需要重新編譯。最后是可執(zhí)行二進(jìn)制文件,依賴底層的芯片架構(gòu),需要重新編譯。具體分為四個(gè)步驟:

? 將RPM包分類,分為X86_64和Noarch兩個(gè)類型

? 使用checkSo工具掃描RPM

? 分析RPM包,查詢得出得出安裝需要的依賴軟件,解壓獲取rpm中源文件、軟鏈接,檢查/var/lib等關(guān)鍵目錄,對(duì)比安裝前后新增的源文件、軟鏈接。

? 構(gòu)建RPM包

開源大數(shù)據(jù)平臺(tái)Ambari+HDP組件移植經(jīng)驗(yàn)總結(jié)

A-Tune自調(diào)優(yōu)技術(shù)詳解

第三位分享嘉賓是,華為2012實(shí)驗(yàn)室高級(jí)工程師謝志鵬。性能調(diào)優(yōu)代表著時(shí)間和成本的支出。工程師往往需要搭建測(cè)試工具找到瓶頸點(diǎn),依靠人工巡檢查找故障原因,安裝多種監(jiān)控工具,匯總分析數(shù)十個(gè)數(shù)據(jù),期間可能要花掉數(shù)個(gè)工程師數(shù)周的時(shí)間,才得以提升系統(tǒng)性能。

華為2012實(shí)驗(yàn)室高級(jí)工程師 謝志鵬

即使是在實(shí)驗(yàn)室的調(diào)優(yōu)達(dá)到了預(yù)期的效果,但是往往在業(yè)務(wù)運(yùn)行真實(shí)環(huán)境里面,業(yè)務(wù)負(fù)載都是會(huì)動(dòng)態(tài)變化,而工程師的調(diào)優(yōu)工作,往往都只能應(yīng)對(duì)靜態(tài)負(fù)載場(chǎng)景,對(duì)于動(dòng)態(tài)負(fù)載場(chǎng)景束手無策。

當(dāng)前系統(tǒng)調(diào)優(yōu)的兩大痛點(diǎn)是:

? 如何使操作系統(tǒng)感知上層業(yè)務(wù)

? 如何降低人工調(diào)優(yōu)成本

基于openEuler的自調(diào)優(yōu)系統(tǒng)A-Tune,使用系統(tǒng)畫像技術(shù),能識(shí)別業(yè)務(wù)匹配最佳資源模型,實(shí)時(shí)響應(yīng)業(yè)務(wù)特征變化。目前,系統(tǒng)畫像技術(shù)有兩個(gè)關(guān)鍵技術(shù)點(diǎn)。第一個(gè)是感知技術(shù),怎么去構(gòu)建系統(tǒng)畫像?主要是通過分類、聚類相結(jié)合的方法,分別在CPU、IO、網(wǎng)絡(luò)、內(nèi)存方面聚類然后通過一些具體的業(yè)務(wù)進(jìn)行一些細(xì)化的分類,來達(dá)到精準(zhǔn)識(shí)別業(yè)務(wù)的效果。

系統(tǒng)畫像構(gòu)建與感知技術(shù)

第二個(gè)關(guān)鍵技術(shù)點(diǎn),基于機(jī)器學(xué)習(xí)算法的調(diào)優(yōu)參數(shù)搜索技術(shù)對(duì)于機(jī)器學(xué)習(xí)里面的貝葉斯優(yōu)化算法去做了一個(gè)調(diào)優(yōu)參數(shù)的自動(dòng)搜索技術(shù),工程師只需要提供一組他認(rèn)為對(duì)我們業(yè)務(wù)有性能影響的參數(shù),以及參數(shù)范圍,接下來,把這些參數(shù)和參數(shù)范圍告訴我們的機(jī)器學(xué)習(xí)算法,并且給出評(píng)價(jià)指標(biāo)。

iSulad的分享與實(shí)踐

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

華為iSula容器團(tuán)隊(duì)架構(gòu)師 蔡灝旻

iSula為全量的容器軟件棧,包括引擎、網(wǎng)絡(luò)、存儲(chǔ)、工具集與容器OS;iSulad 作為其中輕量化的容器引擎,可以為多種場(chǎng)景提供最靈活、最穩(wěn)定、最安全的底層支撐,目前已開源給大家使用。開源地址:https://gitee.com/openeuler/iSulad

iSulad具有輕、快、易、靈四個(gè)特點(diǎn):

? 輕:iSulad的第一個(gè)使用場(chǎng)景是在端側(cè)設(shè)備上,在一個(gè)智能攝像頭上使用容器來達(dá)到快速、簡單切換算法應(yīng)用部署的功能

? 快:采用C/C++語言實(shí)現(xiàn),具備運(yùn)行速度快、底噪低等特性,且LXC運(yùn)行時(shí)優(yōu)秀的并發(fā)設(shè)計(jì)也為iSulad并發(fā)性能提供了基石

? 易:iSulad為了使開發(fā)者遷移方便,正在籌備開發(fā)一系列遷移工具,幫助開發(fā)者將自己的應(yīng)用平滑遷移到iSulad上來

? 靈:針對(duì)不同的使用場(chǎng)景提供不同的模式供大家組合切換,開發(fā)者可以根據(jù)自己的使用需要靈活配置切換注重性能的performance模式和注重資源占用的light模式

iSulad的架構(gòu)

熱烈的調(diào)優(yōu)實(shí)踐

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

濃厚的技術(shù)探討氛圍

Q1:請(qǐng)問您今天參加的實(shí)踐組是?感覺本次沙龍技術(shù)實(shí)踐怎么樣?

A:參加了iSula鏡像,整體的議程感覺都很好。實(shí)踐環(huán)節(jié)很好可以讓我們切身,馬上感受到這個(gè)產(chǎn)品怎么樣。前面是理論講座,后面馬上就能使用是看得見摸得著的,這個(gè)非常好。

Q2:以后希望能聽到鯤鵬技術(shù)沙龍更多內(nèi)容分享的是?

A:更多應(yīng)用指導(dǎo)性更強(qiáng)的內(nèi)容,因?yàn)闀?huì)在工作中用到。比如鯤鵬可以聯(lián)合研究系統(tǒng)級(jí)別的部門和研究大數(shù)據(jù)的部門,將大數(shù)據(jù)應(yīng)用系統(tǒng)結(jié)合起來講解,這樣能會(huì)產(chǎn)生更好的效果。這樣應(yīng)用指導(dǎo)性也會(huì)更強(qiáng)。

熱烈的編碼實(shí)踐環(huán)節(jié)

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)標(biāo)簽
企業(yè)云計(jì)算
軟件開發(fā)者

相關(guān)文章

熱門排行

信息推薦