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

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

3天內不再提示

基于專家知識+AI算法的性能調優

vliwulianw ? 來源:阿里巴巴技術質量 ? 2023-03-07 10:54 ? 次閱讀

在業務的性能調優中,我們往往會遇到下面三個方面的問題:

1)操作系統的軟硬件配置過于繁雜。

無論是應用內核參數、系統服務還是應用配置,都有成百上千的參數,而且參數之間相互,在調優的時候往往存在蹺蹺板現象,如何管理如此大量的領域知識,是非常困難的事情。

2)人力、時間成本高。

做一次有效的全棧調優,往往需要把多個領域的專家集中起來進行一次1-3個月的集中攻關,在人力和時間成本上是非常大的代價。

3)專家知識難以固化復用。

即使是我們在一個場景上把所有專家集中起來做了一次非常好的攻關,專家知識還是非常難以固化下來并在下個應用擴展使用起來,到了下一次調優場景,還是幾乎要重頭再來。

針對上述問題我們該如何求解呢?

如果專家知識非常難以固化,那我們為什么不建一個專家知識庫平臺來把專家知識固化起來呢?

如果我們的配置關系非常復雜,投入時間和人力非常高,那我們為什么不把AI算法引入進來,讓人工智能幫我們做一些事情。

??f0a104c0-bc43-11ed-bfe3-dac502259ad0.png

在容量評估測試中,我們也會遇到類似的問題:Benchmark的參數眾多,哪些參數是需要使用的,哪些其實無關緊要?需要使用的參數,如何設置它的值才能保證給出的壓力是足夠的,從而不會因為壓力不足而無法驗證到物理機/系統真實的容量呢?

I可行的解決途徑——KeenTune的緣起

從上個部分中,我們其實可以看出求解的方式,一個是需要專家知識的固化平臺,一個是可以考慮引入AI算法來解決人工無法有效探索參數取值空間的問題。這也就是KeenTune的起源,其主要完成兩大部分的功能,一方面將人工的經驗固化下來,形成能夠在業務上一鍵調優的專家知識庫——也就是靜態調優;另一方面,在有了需要調優的參數及其取值空間的概要知識的情況下,可以使用AI算法來進行最優取值搜索。

這是KeenTune產品開始研發時最樸素的想法,后面也因為業務的實際需要,引入了參數可解釋性方向的算法,來識別出來哪些參數對結果真實有影響,其最優取值范圍是什么,從而指導進行人工解釋和進一步研究;同時,也引入了高保真方向的算法來規避Benchmark/業務環境的波動對調優效果的準確性帶來的影響;另外,也針對“在不增加時延的情況下,提升吞吐量”這樣的帶控制條件的實際調優需求,引入了多目標調優方向的算法。

f0f639b8-bc43-11ed-bfe3-dac502259ad0.png

請注意,KeenTune提供的動靜態協同調優的能力,可以協助實際業務解決如下問題:

1)POC小集群調優到線上大規模集群調優,比如:POC小集群動態調優完后,調優經驗固化成靜態調優,直接大規模部署到線上;

2)相似場景的精細化調優,比如:調優過mysql后,使用mysql的固化出的靜態專家知識庫,轉化成動態進行精細化調優。

在算法創新的同時,基于阿里業務自身的特點,KeenTune采用了高度模塊化的分布式部署的方式,在業務端只需要部署輕量的agent(keentune-target),管控調度模塊keentuned,算法模塊keentune-brain,Benchmark管控模塊keentune-bench,前端管控與算法可視化模塊keentune-ui都是可以部署在網絡可連通的其他環境上,因此,對業務的適配度非常高。

f12fb224-bc43-11ed-bfe3-dac502259ad0.png

一、創新點

KeenTune項目目前已經提交13篇專利,其中9篇已提交專利;另外,還有3篇正在提交流程中。A類論文發表1篇(FSE2022:KeenTune: Inteligent Parameter Interpretability and Tuning Tool for Linux System),1篇在投A類論文。

本章節的各小節中,后續也會簡單介紹一下KeenTune的創新點。

I多領域算法的集成

KeenTune主要使用的算法為Hyper Parameter Tuning方向,目標是在參數空間上尋找最優組合。不過,在實際應用落地中,發現在實際應用中會存在很多問題:

1)在高維空間上,無論是傳統的Bayes,還是更新的HORD、EPTE等算法,都無法達到工程需求的快速收斂(比如:100個連續/分散取值的參數,在100輪達成收斂目標),而一般Benchmark的執行時間都會在幾分鐘甚至幾小時,每一輪執行代價都非常大,因此,降低輪次成為首要問題。

2)非單一目標調優,在實際中,往往是“不增加時延的情況下提升吞吐”、“不僅avg_latency降低,還要求99_latency、95_latency都降低” 3)無論是Benchmark還是業務環境,都存在抖動的問題,如何識別出環境抖動并且盡量消除,是個問題。

為應對這些問題,KeenTune集成了多個領域的算法來使參數調優在實際工程中能夠產生效果:

敏感參數可解釋性方向算法:從眾多的參數中識別出真正對結果有影響的TOP參數,并且能夠給出其最優取值的范圍,給出參考。一方面,可以成為參數調優算法的輸入,大大降低參數空間,從而實現快速找到優化點的目標。另一方面,也可以為人工提煉專家靜態知識庫并進行領域分析提供依據。

多目標調優算法:KeenTune自研的帶有可控制條件的多目標調優,有效地解決了工程中遇到的各種多個評價指標同時調優,甚至是帶有強制限制條件的調優問題。

高保真算法:能夠通過評估環境的波動情況,調整每輪運行的次數,從而保證調優效果。另外,結合early stop機制,能夠智能化控制實際的運行效率,從而大大提升對于每次調優的收斂效率。

f14ea29c-bc43-11ed-bfe3-dac502259ad0.png

I自研參數調優算法BGCS

為了實現高效可擴展的參數調優算法,BGCS參考了HORD框架進行了改進,使用CNN/MLP模型取代RBF模型作為代理模型,以提高代理模型預測準確性。

在HORD算法的DYCORS過程中,通過兩個變量φ和δ來控制變異的過程,前者控制的是給坐標的某個維度進行變異的概率,后者決定了增加變異的幅度。在調優過程中,φ隨著調優的進行遞減,而δ根據每一輪是否發現了新的最優參數進行動態調整。

雖然有兩個變量干預參數的變異,但HORD算法的參數變異過程整體來說是隨機的,在這個過程中會產生大量無意義的參數配置。我們針對這個過程加入性能梯度對參數編譯的過程進行指導,避免盲目隨機地生成大量參數配置。同時使用梯度對參數維度進行排序,優先針對性能梯度較高的參數進行變異,同時保持性能梯度低參數的取值,降低代理模型預測誤差的干擾。

I自研參數可解釋性算法XSen

為了達成算法能夠正確的找到真正對結果產生影響的參數,PIA將多種不同的敏感參數領域算法進行融合,根據實際情況使用。下圖中列出了PIA的框架,主要是分為analyzer和aggregator。

Analyzer分為mutual information analyzer、linear analyzer、non-linear analyzer三種。Non-linear analyzer分為兩種:DNN模型、樹形模型,linear analyzer使用線性模型。在工程驗證中,高維度non-linear analyzer的準確度更高,但是運行時間較久;linear analyzer運行時間在1s內,不過準確度相對不高。mutual information analyzer捕捉線性和非線性信息,通過信息識別來識別敏感參數。

二、應用實踐

IKeenTune在Linux全棧性能調優中的實踐

KeenTune不僅在算法層面上實現了對kernel、environment configuration、runtime、compiler、application的多個層級的參數的動態算法調優,還積累了包括多層級的人工經驗。目前,在云場景、云原生場景、編譯器場景等多個合作項目中達成了調優目標,并且在社區中與統信、中興、intel等SIG伙伴進行相關共建。

f1acd4de-bc43-11ed-bfe3-dac502259ad0.png

1. 專家一鍵式調優 –MySQL的競分打榜

項目背景

某商業打榜

調優目標

AnolisOS提供自研性能調優工具能力,主流應用(MySQL)調優能力不低于友商

調優效果

MySQL的TPCC跑分在一鍵式專家調優后,相比初始安裝性能提升10倍+

f1fc53e2-bc43-11ed-bfe3-dac502259ad0.png

2. 敏感參數識別 –Nginx業務的參數可解釋性

項目背景

調優參數多導致參數空間巨大,進而導致參數調優算法收斂慢(100參數收斂需要2000輪以上)

調優目標

116個聯合參數(內核+ Nginx) 中對結果影響大的參數,目標20個以內

識別效果

TOP10參數對Nginx吞吐與時延的影響已經超過90%,降維后調優效果和全量保持一致

f25d1a42-bc43-11ed-bfe3-dac502259ad0.png

3. 智能參數調優 – 云原生業務Ingress-Nginx的全棧調優

項目背景

調優參數多導致參數空間巨大,進而導致參數調優算法收斂慢(100參數收斂需要500輪以上)

調優目標

四個場景完整覆蓋:HTTP短鏈接,HTTP長鏈接,HTTPs短鏈接,HTTPs長鏈接

多領域參數協同調優:Sysctl,Nginx

兩個指標統一優化:Throughput提升的同時Latency下降

調優效果

四個場景均達成了throughput提升的同時latency下降,有些場景最好效果達到40%+

達成內核到應用的全棧調優,取得良好效果

f2797f7a-bc43-11ed-bfe3-dac502259ad0.png

同時,在其中,尤其是長連接的場景,對比了只進行nginx.conf參數調優,與內核+Nginx的全量調優的對比,可以非常明顯的看出,多層級的全棧調優效果會比單一層級的調優效果突出。

f2a36fce-bc43-11ed-bfe3-dac502259ad0.png

4. 智能參數調優 – 云業務gcc編譯參數調優

項目背景

gcc編譯參數對應用性能影響較大,人工定義配置比較困難

調優目標

對云業務上TOP3的應用進行編譯參數優化

調優效果

TOP3應用的主要指標均達成調優目標(目標1-3%)

f2d953be-bc43-11ed-bfe3-dac502259ad0.png

IKeenTune在容量評估方向的實踐

容量評估一直一直以來的痛點,就是Benchmark工具,大家都知道是什么,怎么用,不過卻不一定能夠用對?,F在集團內的使用方式基本上還是人工定義性能測試用例,用這個結果直接評估是否正確,這就對Benchmark使用人員有著非常高的要求,怎么創建模型,定義Benchmark的各個參數是很有講究的。

往往存在直接從網上找到使用的命令行方式,修改修改參數,跑出來個結果就開始做分析??墒沁@樣子就會有幾個問題:

1)不少Benchmark的參數都非常多,比如:sysbench,那么,哪些參數是我們需要關注并且使用的呢?

2)在不同規格的機器上,都使用相同一套參數的測試用例,是不是不合適?換個說法,是否能夠提供足夠的壓力用來提供容量評估?

3)Benchmark本身的資源消耗怎樣?會不會因為參數設置不當,或者環境選用不當,導致Benchmark自己占掉了所有資源而無法給出足夠壓力?這一點在wrk上非常明顯。

為了解決這些問題,KeenTune的參數調優算法登場了,開始在看似不屬于自己的領域,進行了一些還挺有效果的實踐。

1. 基礎Benchmark的壓力管控 – iperf3網絡帶寬測試

項目背景

在與私有云團隊進行容量評估的需求分析時,發現使用人工用例進行容量評估,往往存在因為Benchmark壓力不足導致無法測出真實容量

壓控目標

通過動態控壓,評測出硬件和云上環境的真實容量

壓控效果

相比人工測試用例,評測出更真實的網絡容量,高出10%+

f30a4212-bc43-11ed-bfe3-dac502259ad0.png

管控更多工具參數,并且能夠提供最佳效果取值范圍

說明:左邊的兩個圖分別是iperf3進行接收端和發送端容量評估時,iperf3中參數真正對結果有效果的3個參數,右邊的兩列圖,分別給出來了接收端和發送端在當前規格機器中這三個敏感參數的取值推薦。

f32b542a-bc43-11ed-bfe3-dac502259ad0.png

2. 應用的調優、壓力雙控 – MySQL的調優與變壓

項目背景:

進行應用的調優時,需要解決兩部分問題:(1)Benchmark壓力不足;(2)應用環境及自身調優

壓控目標:

同時管控MySQL與Benchmark的參數,保證壓力控制的狀況下進行MySQL調優

f38293a2-bc43-11ed-bfe3-dac502259ad0.png






審核編輯:劉清

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

    關注

    37

    文章

    6363

    瀏覽量

    122130
  • PoC
    PoC
    +關注

    關注

    1

    文章

    66

    瀏覽量

    20356
  • RBF
    RBF
    +關注

    關注

    0

    文章

    39

    瀏覽量

    15671
  • MYSQL數據庫
    +關注

    關注

    0

    文章

    95

    瀏覽量

    9290
  • AI算法
    +關注

    關注

    0

    文章

    233

    瀏覽量

    12120

原文標題:基于專家知識+AI算法的性能調優、容量評估

文章出處:【微信號:軟件質量報道,微信公眾號:軟件質量報道】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    爾檢測--您身邊的全球檢測認證專家

    環節都能滿足UL要求的機構,而爾國際的宗旨就是:全面普及和提高生產企業的UL認證知識水平,從根本教起,消除UL知識上的文盲,讓企業摒棄僅僅是為了拿證而做UL認證的錯誤觀念!因為我們能做到:1) 現擁有
    發表于 11-13 16:29

    必選攜手騰瑪人工智能探索:AI智能的未來之路

    人工智能產品,通過多年的技術研發與測試,2018年公司旗下品牌騰瑪人工智能正式成立,并與國內AI獨角獸必選達成了戰略合作,共同為研發人形機器人進行深度合作交流,爭取早日實現”未來每家每戶都能買個人形機器人
    發表于 12-21 17:19

    AI專家講座】不懂編程沒關系,邀請您來學AI

    ``AI專家講座: 不懂編程沒關系,邀請您來學AI活動概述:本活動是現場講座,由***知名AI教育專家、金門創新學院院長、***Androi
    發表于 04-18 15:51

    深藍象棋AI的minimax算法

    通往游戲外掛的終極之路——超級游戲AI系列之一:minimax算法
    發表于 06-25 16:49

    HBase性能調概述

    HBase性能調
    發表于 07-03 11:35

    【免費直播】AI芯片專家陳小柏博士,帶你解析AI算法及其芯片操作系統。

    、Fine-tune3、SOC系統軟硬件資源介紹4、系統平臺架構設計參與直播用戶將獲得哪些知識點:1、AI算法場景應用介紹2、AI算法設計、
    發表于 11-07 14:03

    史上最全AI人工智能入門+進階學習視頻全集(200G)【免費領取】

    ...課程簡介:中山大學-卡耐基梅隆大學集成電路博士、AI芯片科學家陳小柏領銜,聯合多位集成電路、人工智能頂尖企業AI專家傾囊相授,3個學習階段,13大AI芯片與
    發表于 11-27 12:10

    flume讀取文件延遲調說明

    flume讀取文件延遲調
    發表于 07-17 16:38

    參數尋的迭代法的基本原理是什么?伺服控制系統常用參數尋算法是什么?

    參數尋的迭代法的基本原理是什么?伺服控制系統常用參數尋算法是什么?
    發表于 10-13 06:38

    功耗調時經常用到的幾個方法

    前言不清楚當前產品的整機功耗,就不清楚怎么調獲取產品的整機及各個模塊的功耗數據,需要測量正確的功耗測量方法,快速的了解整機的功耗分布,為功耗調提供方向。功耗測量功耗拆解,是功耗
    發表于 12-21 06:31

    【視頻】開發工具第8期:基于DevEco的系統高效調五大法寶(一)

    本課程首先介紹了如何基于DevEco Device Tool內置工具進行系統高效調,以及內置調工具介紹。主要包含有鏡像分析工具,棧估算分析工具,
    發表于 12-23 15:01

    【視頻】開發工具第9期:基于DevEco的系統高效調五大法寶(二)

    本課程首先介紹了如何基于DevEco Device Tool內置工具進行系統高效調,以及內置調工具介紹。主要包含有鏡像分析工具,棧估算分析工具,
    發表于 12-23 15:08

    基于全HDD aarch64服務器的Ceph性能調實踐總結

    和成本之間實現了最佳平衡,可以作為基于arm服務器來部署存儲的參考設計。2 Ceph架構3 測試集群硬件配置:3臺arm服務器每臺arm服務器:軟件配置性能測試工具4 調方式4.1 硬件調
    發表于 07-05 14:26

    KeenTune的算法之心——KeenOpt 調算法框架 | 龍蜥技術

    文/KeenTune SIGKeenTune(輕豚)是一款 AI 算法專家知識庫雙輪驅動的操作系統全棧式智能優化產品,為主流的操作系統提供輕量化、跨平臺的一鍵式
    發表于 10-28 10:36

    一種改進的知識社區中專家貢獻度排名算法

    近來研究的一個熱點是知識社區中專家知識社區的貢獻度大小的計算方法。因此本文研究了知識社區中的專家對象,從
    發表于 12-21 10:19 ?7次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>