您現在的位置是:首頁 > 網路遊戲首頁網路遊戲

DAS論文入選全球頂會SIGMOD,領航“資料庫自動駕駛”新時代

簡介後端DAS App負責調參的主控邏輯,主要操作在使用者VPC環境的回放壓測,從而獲取相應Metric(資源使用率、TPS、Latency等),然後透過呼叫Cloudtune Microservice來進行迭代訓練,Cloudtune Ser

系統資料庫有哪幾個

近日,智慧資料庫和DAS團隊研發的智慧調參ResTune系統論文被SIGMOD 2021錄用,SIGMOD是資料庫三大頂會之首,是三大頂會中唯一一個Double Blind Review的,其權威性毋庸置疑。

ResTune論文的錄用,說明了我們在智慧化資料庫管控方向的技術積累和深度,也是阿里雲自治資料庫和智慧化運維里程碑式的一步。目前,智慧調參功能已經在資料庫自治服務(DAS)上落地,是業界第一個正式上線的資料庫配置引數智慧調參功能,進一步說明了阿里雲自治資料庫方向的技術領先性。

1。 概述

調參服務在阿里豐富的業務場景中有著廣泛的應用,如資料庫系統的效能與配置引數最佳化、機器學習模型/深度神經網路的超參選擇、推薦系統和雲排程系統中引數的自適應調節、工業控制和供應鏈中的模擬最佳化和引數最佳化等。如何在生產環境中支援客戶實際需求,是學術界AI for system的一個研究熱點。

今年,由達摩院-資料庫與儲存實驗室-智慧資料庫團隊研發的ResTune智慧調參工作(ResTune: Resource Oriented Tuning Boosted by Meta-Learning for Cloud Databases,地址:

https://dl。acm。org/doi/pdf/10。1145/3448016。3457291)

,主要針對OLTP資料庫系統的效能引數進行調優,涉及RDS MySQL、RDS PostgreSQL、PolarDB MySQL、PolarDB-O等資料庫系統,該工作發表在資料庫領域的頂級會議SIGMOD2021(Research Track),並在阿里雲資料庫自治服務DAS產品中技術落地。

2。 背景

資料庫系統如MySQL提供200多個配置引數,不同的引數組合與不斷變化的業務負載特徵,共同決定著資料庫系統的效能和資源使用。針對集團內的業務,通常DBA會根據不同的業務,按人工經驗手動選擇一組適合的引數。隨著資料庫上雲的加速,業務越來越多樣化,僅僅依賴於DBA人工調參遇到水平擴充套件的瓶頸制約。同時,由於DBA經驗的差異性,很難對多種多樣的業務負載都找出最優引數。雲廠商要做到“客戶第一”,自動化的調參功能至關重要:在不同的例項環境下對時間上不斷變化的多樣業務負載,自適應的提供個性化的最佳化引數。

資料庫系統調參需要同時考慮效能(如Transactions per second/TPS、Latency)和資源使用(CPU、Memory、IO)的情況。效能最佳化固然重要,但真實負載的TPS往往受使用者的request rate所限,很難達到峰值效能。圖1是兩個引數下不同取值的TPS和CPU利用率,可以看到,在TPS最高的紅色區域對應的CPU利用率變化較大,從15%到75%。而在TPS相同的情況下,資源利用率有很大最佳化空間。從成本角度,TCO(Total Cost of Ownership)是雲資料庫的重要指標,也是雲資料庫的主要優勢。

最佳化資源使用對減少雲資料庫的TCO,提高成本優勢有著重要意義。事實上,我們發現雲上大多數例項都存在Over-Provision的情況。此外,資源使用過高可能會造成雲資料庫的異常和資源爭搶帶來的效能下降;最佳化資料庫的資源使用能夠有效減少甚至避免此類情況引發的故障,提高穩定性。

DAS論文入選全球頂會SIGMOD,領航“資料庫自動駕駛”新時代

3。 挑戰

我們分析了調參的目標是同時考慮最佳化資源使用率和效能,上文也提到效能如TPS往往會被客戶端的request rate所限而達不到峰值效能。因此,我們需要找出資源利用率最小的資料庫配置引數,並且滿足SLA的要求。

另一方面,調參本身需要儘可能快(不然違背了降低資源使用),通常的調參系統需要上百步迭代來找出好的配置,每一步迭代約3-5分鐘回放workload,這樣通常需要天級別的時間進行調參訓練。但如果想解決線上troubleshoot的需求,往往需要在1個小時內找出問題,進行恢復。作為雲廠商,我們基於已有業務負載調參的歷史資料,採用知識遷移學習,可有效加速調參過程,從而儘可能快地找出好的資料庫引數配置。

4。 相關工作

資料庫調參是最近研究相對熱門的領域,在過去幾年中有不少工作發表。這些工作按照技術思路主要可以分為三大類:基於搜尋的啟發式方法、基於貝葉斯最佳化的方法、基於強化學習(Reinforcement Learning)模型的方法。基於搜尋的啟發式方法:該類方法通常基於啟發式思路,透過給定的規則演算法進行搜尋來找出最佳化引數,這一工作的代表是BestConfig[3]系統。這類方法依賴於對workload以及引數對效能影響的先驗假設,但在實際中特別是雲場景,往往很難為每個workload進行特殊最佳化和特徵工程。這類方法在搜尋一組新引數的時候,沒有考慮到之前取樣到資料的分佈,因此效率不高。基於貝葉斯最佳化的方法:該類方法的代表是iTuned[4]和CMU的Andy Pavlo實驗室的SIGMOD17工作OtterTune[5]。貝葉斯最佳化將調參看作是一個黑盒最佳化問題,透過代理函式模擬引數和目標間的函式,並設計採集函式來最小化取樣步數。這類方法沒有考慮以最佳化資源為目標的調參,只考慮了最佳化峰值效能。在實際中,除了壓測和大促的極端場景,通常使用者對TPS是無感的,TPS往往達不到峰值,因此僅考慮效能作為目標還不夠。OtterTune系統還提出了基於Internel Metric(資料庫狀態表的指標)的mapping的方案來利用已有資料,這種mapping方法利用來自同一硬體型別的歷史資料,沒有充分利用雲廠商豐富的資料資源。另一方面,這種方式依賴於預測出來的Internel Metric的相似性計算,在資料點較少的情況下容易不準確。基於強化學習的方法:這類方法是最近資料庫調參的熱門方向,主要包括SIGMOD18的工作CDBTune[6]和VLDB19的QTune[7]工作。透過將Internal Metrics(state)到Knobs(action)的關係抽象成一個policy neural network和一個value network來反饋,將資料庫調參問題轉化成一個馬爾科夫決策過程,不斷地自我訓練,學習出最優引數。一方面,這類工作沒有考慮最佳化資源。另一方面,更重要的是調參問題並不是一個帶狀態的馬爾科夫決策過程,因為引數直接決定了資料庫效能,不需要複雜的狀態空間, 不同於強化學習需要透過解bellman equation來最佳化模型累計獲得的Reward。在這些工作中,往往需要上千步迭代找出好的引數,這難以滿足我們在生產環境中進行調參的要求。

5。 問題定義和演算法概述

我們將問題定義成帶限制的最佳化問題如下,其中限制條件常數可透過設定為預設配置引數下的TPS和Latency值。

DAS論文入選全球頂會SIGMOD,領航“資料庫自動駕駛”新時代

ResTune將最最佳化資源使用並滿足SLA轉化成帶限制的最佳化 (Constrained Bayesian Optimization) 問題。相比於傳統的貝葉斯最佳化演算法,這裡採用了帶限制的 EI 函式 (Constrained EI, CEI),我們將限制資訊加入了常用的 EI 效用函式(Acqusition Function)。詳見論文的第五章內容。

另一方面,為了更好地利用已有資料,ResTune還設計了靜態權重和動態權重相結合的高斯加權模型。透過ensemble歷史的高斯過程模型,加權平均出目標workload的surrogate函式。這裡最核心的問題是如何定義權重。

DAS論文入選全球頂會SIGMOD,領航“資料庫自動駕駛”新時代

在冷啟動時(沒有觀察資料時),靜態權重學習會根據任務工作負載的 meta-feature 距離分配權重。meta-feature 的計算需要透過工作負載的分析,得到工作負載特徵向量。

當積累了一定資料(如10條資料)後,ResTune使用動態權重學習策略,透過偏序關係(如下圖所示,儘管TPS絕對值不同,但是曲面趨勢相同,因此偏序關係也類似),比較歷史學習器的預測與目標任務的真實觀察結果之間的相似程度。使用動態分配策略,權重會隨著對目標工作負載的觀察次數的增加而動態更新。透過這兩種策略,ResTune最終得到了一個元學習器(Meta-Learner),它可以作為經驗豐富的代理模型,更多的細節可以參考論文的第六章內容。

DAS論文入選全球頂會SIGMOD,領航“資料庫自動駕駛”新時代

6。 ResTune系統設計

ResTune將調參問題抽象成帶限制的最佳化問題,即最小化資源使用率,同時滿足SLA的限制。下圖給出了ResTune的系統架構設計。ResTune 系統包括兩個主要部分:ResTune Client 和 ResTune Server。ResTune Client 執行在使用者VPC環境中,負責目標任務的預處理和推薦引數配置的執行,由 Meta-Data Processing 模組和 Target Workload Replay 模組組成。ResTune Server 執行在後端調參叢集中,負責在每次訓練迭代中推薦引數配置,包括 Knowledge Extraction 模組和 Knobs Recommendation 模組。

DAS論文入選全球頂會SIGMOD,領航“資料庫自動駕駛”新時代

一次調參任務中的一個迭代步流程如下:當一個調參任務開始後,系統首先對目標資料庫進行複製,並收集一段時間內的目標工作負載到使用者環境用於未來的回放。

在每一輪迭代中,目標任務首先透過 Meta-Data Processing 模組得到 meta-feature 與 base model,作為 Knowledge Extraction 模組的輸入;Knowledge Extraction 模組負責計算當前任務與歷史任務 base model 整合時的靜態與動態權重,並對 base models 進行加權求和得到 meta model;在 Knobs Recommendation 模組根據 Meta Learner 推薦一組引數配置;Target Workload Replay 模組對推薦引數進行驗證,並將結果寫入目標任務的歷史觀察資料。

以上訓練過程重複若干迭代步,當達到最大訓練步或提升效果收斂時終止。目標任務訓練結束後,ResTune會當前任務的 meta-feature 與觀察資料收集到 Data Repository 作為歷史資料。

每個模組的具體功能如下:Meta-Data Processing: 在調參任務初始啟動時,元資料處理模組分析目標任務的工作負載,使用 TF-IDF 方法統計 SQL 保留字作為目標任務的特徵向量 (meta-feature);在每輪迭代中,元資料處理模組以歷史觀察資料為輸入,經過歸一化處理後,對資源(CPU, memory, IO等)利用率、TPS、Latency 擬合高斯模型,作為目標任務的基模型。Knowledge Extraction: 為了提取與利用歷史知識,我們提出了採用高斯模型加權求和的整合方式,即元模型 M 的關鍵引數 u由基模型加權計算得到。在計算基模型權重時採用了靜態與動態兩種方式。在初始化時,權重的計算採取靜態方式,以特徵向量作為輸入,透過預訓練的隨機森林,得到資源利用率的機率分佈向量,最終以據機率分佈向量之間的距離作為任務相似性,決定靜態權重。當資料量充足後,ResTune使用動態權重學習策略,比較基學習器的預測與目標任務的真實觀察結果之間的相似程度。 使用動態分配策略,權重會隨著對目標工作負載的觀察次數的增加而更新。透過這兩種策略,我們最終得到元學習器,它可以作為經驗豐富的代理模型。Knobs Recommendation: 引數推薦模組根據元模型推薦一組引數配置;採集函式我們使用了帶限制的 EI 函式 (Constrained EI, CEI),其根據限制情況重寫了 EI 的效用函式:當引數不滿足 SLA 限制時效用置0,且當前最佳引數定義為滿足 SLA 限制的最佳引數。CEI 採集函式能夠更好的引導探索滿足限制的最優區域。Target Workload Replay: 目標工作負載回放模組首先推薦引數應用在備份資料庫上,並觸發工作負載的回放,經過一段時間的執行驗證後,驗證結果(包括資源利用率、TPS、latency)與推薦引數將一起寫入目標任務的觀察歷史。

7。 實驗評測

我們在多個場景下對比了 ResTune 和其它 SOTA (state-of-the-art)系統的效能與速度。

7。1。 單任務場景

首先,在單任務場景下,我們選定CPU利用率作為最佳化目標,驗證了 ResTune 解決帶 SLA 限制的最佳化問題的效果。這裡我們測試了Sysbench、Twitter、TPC-C和兩個真實的workload:Hotel Booking和Sales。可以看出,ResTune方法在所有負載上都可以得到最佳效果與最佳效率。

DAS論文入選全球頂會SIGMOD,領航“資料庫自動駕駛”新時代

7。2。 遷移場景

由於雲資料庫上存在大量使用者各種例項,因此我們提出的方法能否在不同工作負載、不同硬體之間遷移至關重要。同樣以CPU利用率作為最佳化目標,我們測試了不同機器硬體之間的遷移效果,可以看到我們提出的元學習演算法帶來了顯著的訓練速度提升和訓練效果提升。使得整個ResTune的調參過程能在30-50步左右完成,而非遷移場景通常需要幾百個迭代步。

DAS論文入選全球頂會SIGMOD,領航“資料庫自動駕駛”新時代

類似的,在不同工作負載之間的遷移實驗中,我們的元學習方法也帶來了顯著的訓練速度提升。

DAS論文入選全球頂會SIGMOD,領航“資料庫自動駕駛”新時代

7。3。 Memory和I/O資源最佳化

除CPU資源外,我們測試了記憶體資源、IO資源的調參最佳化效果。下圖可以看出,對於IO資源最佳化調參任務,ResTune 降低了 84% - 90% IOPS;對於記憶體資源最佳化調參任務,ResTune 將記憶體利用從 22。5G 下降至 16。34G。我們在論文中還估算了TCO的成本減少。

DAS論文入選全球頂會SIGMOD,領航“資料庫自動駕駛”新時代

8。 DAS業務落地

智慧調參技術在DAS(Database Autonomy Service)產品上進行了落地。我們分為不同階段和細化功能進行上線。主要包括模板功能和基於壓測的智慧調參功能。阿里雲是業界第一個上線調參功能的廠商,領先於騰訊和華為。

8。1。 模板引數功能

模板引數功能是我們一期上線的調參場景。在此之前,雲上RDS MySQL資料庫僅有一套統一的引數模板,這很難滿足雲上各不相同的使用者業務負載。因此,我們選取了不同種類的benchmark,在使用者使用最頻繁的RDS Instance型別上調參的離線訓練。

我們將使用者負載分為典型的6種場景如交易、社交網路、壓測等,透過離線訓練我們給每一種典型場景訓練出了最優配置,並提供給使用者根據其業務特徵進行選擇。這樣我們將之前的RDS的統一一套引數模板擴充套件到了多種典型的OLTP業務場景。

下表列出了我們離線調參訓練的結果,在不同workload上有13%-50%的提升。這裡我們以TPS效能作為最佳化目標。

8。2。 基於壓測的智慧調參功能Cloudtune

以上基於模板引數功能驗證了雲上使用者對智慧調參功能的需求。事實上,除了特別專業的使用者,大部分使用者較難非常準確地把握其業務特徵。因此,使用者無法選出最合適其workload特點的一組引數模板。

為了解決使用者痛點,我們在DAS上線了基於壓測的智慧調參功能。主要透過收集並回放使用者真實workload(在使用者VPC環境進行保證安全性),來針對使用者業務負載,定製化地訓練出效能最優的引數配置。這個功能我們叫做Cloudtune智慧調參。

如前文ResTune的架構設計,我們首先需要在使用者VPC環境準備一個使用者資料庫RDS目標例項,然後啟動一個壓測肉機進行使用者環境真實workload的回放,並採集目標例項上的效能資料進行調參訓練。DAS Master使用者打通線上VPC環境和後端網路環境。後端DAS App負責調參的主控邏輯,主要操作在使用者VPC環境的回放壓測,從而獲取相應Metric(資源使用率、TPS、Latency等),然後透過呼叫Cloudtune Microservice來進行迭代訓練,Cloudtune Service透過演算法模型給出下一個取樣配置和目前為止找出的最好配置引數。

DAS論文入選全球頂會SIGMOD,領航“資料庫自動駕駛”新時代

9。 未來工作

目前上線的調參功能是透過拉庫回放的方式,對使用者來說是一種離線的操作,且相對繁瑣。我們正在為幫使用者簡化去這個過程進行線上動態調參。

線上動態調參技術的挑戰和要求更高,首先,引數調節效果要求穩步提升,不能讓系統執行時出現效能猛烈的下降,不能影響線上實時的服務;其次,為了保證線上穩定性和調節過程快速收斂,線上動態調參需要針對不同的workload自動選擇關鍵的相關引數進行調節;最後,目前的工作假設使用者負載變化不頻繁,一旦使用者負載變化就需要重新進行調參。為了提高使用者體驗,要結合workload的檢測支援自適應的調參服務。

10。 智慧資料庫其他研究工作簡介

智慧資料庫團隊以資料庫運維和核心智慧化為主要方向,深度融合人工智慧、機器學習和資料庫專家經驗,使資料庫具備自治能力,實現自感知、自最佳化、自修復與自安全,保障服務的穩定、安全及高效。對外提供業內首個智慧資料庫管控平臺Database Autonomy Service (DAS) 。

相關工作還包括異常SQL檢測之大海撈針、一鍵智慧壓測與基於壓縮感知的資料庫生成、取樣演算法和SQL workload外接最佳化、圖多模資料異常檢測與根因診斷、索引推薦、冷熱資料分離、基於例項知識圖譜的智慧排程、NLP2SQL人機互動介面、計算平臺一體化、One-sided RDMA記憶體池化系統研發等。例如,DAS團隊在VLDB2020上發表的工作Leaper[2]有效地進行資料預取和Cache淘汰,解決了LSM-Tree儲存引擎架構的效能抖動,是學術界將機器學習模型整合到在OLTP資料庫核心的重要嘗試。

最近DAS基於統計與醫療資料分析中的生存分析設計了全新的冷熱資料分層演算法,整合至Polar X Engine中,測試顯示效能提升10%,儲存成本下降25%。同樣在VLDB2020年發表的慢SQL診斷工作,DAS解決了海量SQL請求中近90%的CPU密集型的異常問題。

參考文獻

[1] Zhang, Xinyi, Hong Wu, Zhuo Chang, Shuowei Jin, Jian Tan, Feifei Li, Tieying Zhang, and Bin Cui。 ‘’ResTune: Resource Oriented Tuning Boosted by Meta-Learning for Cloud Databases。‘’ In Proceedings of the 2021 International Conference on Management of Data, pp。 2102-2114。 2021。

[2] Yang, Lei, Hong Wu, Tieying Zhang, Xuntao Cheng, Feifei Li, Lei Zou, Yujie Wang, Rongyao Chen, Jianying Wang, and Gui Huang。 ‘’Leaper: a learned prefetcher for cache invalidation in LSM-tree based storage engines。‘’ Proceedings of the VLDB Endowment 13, no。 12 (2020): 1976-1989。

[3] Y。Zhu,J。Liu,MengyingGuo,YungangBao,WenlongMa,ZhuoyueLiu,Kunpeng Song, and Yingchun Yang。 2017。 BestConfig: tapping the performance potential of systems via automatic configuration tuning。 Proceedings of the 2017 Symposium on Cloud Computing (2017)。

[4] SongyunDuan,VamsidharThummala,andShivnathBabu。2009。TuningDatabase Configuration Parameters with ITuned。 Proc。 VLDB Endow。 2, 1 (Aug。 2009), 1246–1257。

[5] Dana Van Aken, Andrew Pavlo, Geoffrey J。 Gordon, and Bohan Zhang。 2017。 Automatic Database Management System Tuning Through Large-scale Machine Learning。 In Acm International Conference on Management of Data。 1009–1024。

[6] Ji Zhang, Yu Liu, Ke Zhou, Guoliang Li, Zhili Xiao, Bin Cheng, Jiashu Xing,

Yangtao Wang, Tianheng Cheng, Li Liu, Minwei Ran, and Zekang Li。 2019。 An End-to-End Automatic Cloud Database Tuning System Using Deep Reinforce- ment Learning。 In Proceedings of the 2019 International Conference on Management of Data (Amsterdam, Netherlands) (SIGMOD ’19)。 Association for Computing Ma- chinery, New York, NY, USA, 415–432。

[7] Guoliang Li, Xuanhe Zhou, Shifu Li, and Bo Gao。 2019。 QTune。 Proceedings of the Vldb Endowment (2019)

[8]Tan, J。, Zhang, T。, Li, F。, Chen, J。, Zheng, Q。, Zhang, P。, 。。。 & Zhang, R。 (2019)。 ibtune: Individualized buffer tuning for large-scale cloud databases。 Proceedings of the VLDB Endowment, 12(10), 1221-1234。

原文連結:https://developer。aliyun。com/article/784969?utm_content=g_1000281458

Top