導語|騰訊云原生數(shù)據(jù)庫團隊最新研究成果入選國際頂會SIGMOD,數(shù)據(jù)庫結合AI形成自治大腦,并在2022年智能調(diào)優(yōu)人機大賽中戰(zhàn)績不菲,標志著騰訊云在數(shù)據(jù)庫自治領域取得重大突破,實現(xiàn)性能領先。
加入AI技術,形成數(shù)據(jù)庫自治大腦
——周可/華中科技大學教授
周可教授表示,在海量數(shù)據(jù)的大背景下,DBA(人工運維)的增長遠遠跟不上數(shù)據(jù)的增長,且用戶負載具有多樣性和動態(tài)性,一成不變的運維方式已不能夠滿足用戶的需求。把AI加入到數(shù)據(jù)庫,形成數(shù)據(jù)庫的自治大腦,符合數(shù)據(jù)庫自治的發(fā)展方向。
實現(xiàn)數(shù)據(jù)庫自治的基本框架包括觀察、分析、決策三個方面。用更低的成本收集負載數(shù)據(jù),根據(jù)收集到的數(shù)據(jù)選擇合適的方法進行分析,最后決策部分解決何時部署,量化操作以便于模型處理,進行反饋操作使模型能夠進行自學習,自優(yōu)化,從而使自治數(shù)據(jù)庫可以在不需要人工輔助的前提下,針對特定的數(shù)據(jù)和負載自動地進行配置、管理和優(yōu)化。
未來,數(shù)據(jù)庫自治面臨的挑戰(zhàn)有三方面:
·數(shù)據(jù)庫負載動態(tài)多樣,需要保證數(shù)據(jù)庫的高效適應性;
·用更少的資源,保證數(shù)據(jù)庫的性能穩(wěn)定性;
·數(shù)據(jù)庫自治操作具有可解釋性,以便幫助系統(tǒng)管理員從中學習,還可以促進系統(tǒng)的優(yōu)化發(fā)展。
以盡可能少的時間,獲得較好的調(diào)優(yōu)效果
——邢家樹/TEG數(shù)據(jù)庫研發(fā)部/云原生數(shù)據(jù)庫研發(fā)中心/高級工程師
數(shù)據(jù)庫的參數(shù)多,調(diào)優(yōu)難度大,運維人時成本高;現(xiàn)存工具功能有限,耗時久且效果一般;部分用戶沒有專職運維團隊,參數(shù)調(diào)優(yōu)更是難以實現(xiàn)。針對種種困難,騰訊云數(shù)據(jù)庫團隊推出參數(shù)調(diào)優(yōu)服務,端到端地自動調(diào)優(yōu)數(shù)據(jù)庫參數(shù)。相比于現(xiàn)存方法,CDBTune(騰訊云MySQL混合調(diào)優(yōu)系統(tǒng))無需細分負載類型,無需積累大量樣本,可智能學習參數(shù)調(diào)優(yōu)過程,獲得較好的參數(shù)調(diào)優(yōu)效果。
原理上采用深度強化學習模型。通過對數(shù)據(jù)庫進行壓測,記錄數(shù)據(jù)庫的內(nèi)外部指標,生成樣本進行學習。使用遺傳算法和專家經(jīng)驗進行快速預熱,通過并行架構顯著提升調(diào)優(yōu)速度。實行端到端的設計,簡單、高效且易于訓練,易于實現(xiàn)服務化,能夠在盡可能少的時間里,為用戶找到最佳調(diào)優(yōu)方向。
落地到工程實踐應用層面。分離服務調(diào)度和任務執(zhí)行工作,由worker執(zhí)行具體的任務。Learner任務負責抽取樣本,計算網(wǎng)絡梯度,更新神經(jīng)網(wǎng)絡,為Actor推薦數(shù)據(jù)庫參數(shù)。Actor則負責與訓練實例交互,設置參數(shù),回放流量,并收集性能數(shù)據(jù);每完成一輪,從Learner獲取新的參數(shù)推薦,形成閉環(huán)。整體上實現(xiàn)為并行架構,具備高可用、可擴展、任務自動恢復等能力。
數(shù)據(jù)庫自治“監(jiān)控-診斷-解決”AI技術實踐
——張遠/TEG數(shù)據(jù)庫研發(fā)部/云原生數(shù)據(jù)庫研發(fā)中心/專家工程師
在數(shù)據(jù)庫服務中,數(shù)據(jù)庫資源包括內(nèi)存/IO/CPU,資源的監(jiān)控,異常的識別、檢測非常重要,只有合理地使用數(shù)據(jù)庫資源,才能保持數(shù)據(jù)庫服務的穩(wěn)定高效。騰訊云MySQL的異常檢測能力,可自動發(fā)現(xiàn)異常(內(nèi)存分析、內(nèi)核埋點、io延遲硬件資源統(tǒng)計),對異常進行識別,實現(xiàn)異常檢測內(nèi)部閉環(huán),降低運維壓力。
騰訊云MySQL可設置SQL限流功能,在發(fā)現(xiàn)異常請求之后,對異常業(yè)務SQL進行限流,從而保證正常SQL語句能夠運行;改進MySQL官方原有直方圖,推出Compressed直方圖,避免了因數(shù)據(jù)傾斜導致統(tǒng)計信息不準,選錯計劃而導致的問題;推出Statment Outline功能,將用戶需要的查詢計劃固化下來,不需要修改SQL語句,從Outlint表中即可查詢到對應的計劃,從而提升用戶使用體驗;對新建索引進行并行優(yōu)化,推出并行排序優(yōu)化,并行構建btree,與官方mysql對比,性能更好(加速比最高可到15,是官方mysql的5倍),功能更全;優(yōu)化器自治方面,跟蹤業(yè)務SQL性能數(shù)據(jù)(SQL標簽,性能埋點,變化跟蹤),自動產(chǎn)生優(yōu)化策略(統(tǒng)計信息,虛擬索引,計劃干預),驗證優(yōu)化策略并灰度生效,實現(xiàn)SQL調(diào)優(yōu)閉環(huán),降低規(guī)?;\營壓力。
針對特定業(yè)務場景性能問題,對死鎖場景優(yōu)化,設置死鎖檢測開關,豐富死鎖信息,對事務鎖優(yōu)化,降低發(fā)生死鎖的概率同時減少了鎖資源占用;對電商業(yè)務的秒殺場景,動態(tài)一鍵開啟熱點更新保護功能,使業(yè)務無感知,秒殺場景性能提升50倍;遷移切換場景優(yōu)化,通過主備緩存同步優(yōu)化解決HA預熱時間長等問題,使HA業(yè)務平滑過度,減少抖動。
數(shù)據(jù)庫“智能化”,以適應任何業(yè)務場景構
——程昌明/CSIG云產(chǎn)品一部/數(shù)據(jù)庫中心/高級產(chǎn)品經(jīng)理
由于業(yè)務系統(tǒng)的千差萬別,針對業(yè)務的參數(shù)調(diào)優(yōu)是令數(shù)據(jù)庫管理者頭痛的難題,往往需要借助經(jīng)驗去構筑一套相對“有效”的參數(shù)模版,往往模板無法應對所有情況。“智能”以適應任何業(yè)務場景。
騰訊云MySQL在2019和2022年發(fā)表2篇SIGMOD頂級論文:
2019年,騰訊云數(shù)據(jù)庫產(chǎn)品團隊首度提出基于深度強化學習(DRL)的端到端云數(shù)據(jù)庫參數(shù)調(diào)優(yōu)系統(tǒng)CDBTune,該研究論文“An End-to-End Automatic Cloud Database Tuning System Using Deep Reinforcement Learning”入選SIGMOD Research Full Paper(研究類長文)
2022年,騰訊云數(shù)據(jù)庫產(chǎn)品團隊最新研究成果入選SIGMOD Research Full Paper(研究類長文),論文題目為“HUNTER:An Online Cloud Database Hybrid Tuning System for Personalized Requirements”,標志著騰訊云數(shù)據(jù)庫團隊在數(shù)據(jù)庫AI智能化上取得進一步突破,實現(xiàn)性能領先。
通過AI智能分析的方式,能夠獲得最佳的調(diào)參效果;通過“一鍵”方式,完成復雜的調(diào)參過程,獲得最佳參數(shù)設置建議。根據(jù)業(yè)務情況,業(yè)務每個階段需要的特性是不一樣的。騰訊云MySQL的最佳實踐可對應到業(yè)務的以下三個階段:
實例新購階段:針對每一種場景訓練最優(yōu)配置,盡可能匹配業(yè)務特征,不同的工作負載上有15%-50%的提升。
業(yè)務快速迭代階段:確定業(yè)務類型,不同的場景根據(jù)自身情況完全自定義,預估優(yōu)化結果,一鍵快速應用到實例。以游戲為例,開局時玩家瘋狂涌入;以電商為例,購物峰值的產(chǎn)生;有預見性地提前設置好最佳參數(shù)以應對即將到來的數(shù)據(jù)庫峰值壓力。
業(yè)務穩(wěn)定運行階段:通過對數(shù)據(jù)庫的工作負載特征捕獲、重放,對監(jiān)控指標、SQL運行狀態(tài)進行監(jiān)控分析,不斷通過深度學習調(diào)整參數(shù)值以最終輸出最佳參數(shù)值。
數(shù)據(jù)庫自治未來的“智能”展望,除了數(shù)據(jù)庫參數(shù),還有各種各樣的因素影響著數(shù)據(jù)庫的高效運行,SQL執(zhí)行效率、索引是否合理、鎖、資源配置等都可以通過“AI”的方式得到解決。