摘要:近日,騰訊與華中科技大學合作發佈了最新研究論文 《An End-to-End Automatic Cloud Database Tuning System Using Deep Reinforcement Learning》 ,該論文首次提出了一種基於深度強化學習的端到端的雲數據庫自動性能優化系統 CDBTune,該系統可以在缺少相關經驗數據訓練的情況下建立優化模型,爲雲數據庫用戶提供在線自動優化數據庫性能的服務, 性能調優結果首次全面超越數據庫專家 ,將大幅提高數據庫運維效率。騰訊與華中科技大學合作提出了一種基於深度強化學習的端到端的雲數據庫自動性能優化系統 CDBTune,此項研究是 基於 AI 技術的數據庫性能調優結果首次全面超越數據庫專家經驗判斷的傳統方法。

騰訊與華中科技大學合作提出了一種基於深度強化學習的端到端的雲數據庫自動性能優化系統 CDBTune,此項研究是 基於 AI 技術的數據庫性能調優結果首次全面超越數據庫專家經驗判斷的傳統方法 。相關論文已經被國際數據庫頂級會議 SIGMOD 收錄。

隨着雲計算的迅速發展,越來越多中小型企業購買雲數據庫服務系統來代替自建數據庫。然而,大多數用戶在購買雲數據庫服務系統後僅僅停留在使用層面上,使用過程中經常遇到數據庫系統性能下降的問題,由於缺少數據庫管理系統性能優化的經驗,用戶很難發現導致數據庫系統性能下降的原因並有效地解決,這就需要雲服務提供商爲用戶及時地調整數據庫系統參數,以保證數據庫的性能維持在一個較優的狀態。對於擁有數十萬計用戶實例的雲服務提供商來說,完全依賴數據庫專家進行數據庫參數調優並不現實,如何利用 AI 技術解決數據庫系統性能問題變得越來越重要和緊迫。

近日,騰訊與華中科技大學合作發佈了最新研究論文 《An End-to-End Automatic Cloud Database Tuning System Using Deep Reinforcement Learning》 ,該論文首次提出了一種基於深度強化學習的端到端的雲數據庫自動性能優化系統 CDBTune,該系統可以在缺少相關經驗數據訓練的情況下建立優化模型,爲雲數據庫用戶提供在線自動優化數據庫性能的服務, 性能調優結果首次全面超越數據庫專家 ,將大幅提高數據庫運維效率。該論文已經被國際數據庫頂級會議 SIGMOD 收錄,將於 6 月 30 日在荷蘭阿姆斯特丹召開的 SIGMOD 2019 國際會議上公開發表。該成果由華中科技大學武漢光電國家研究中心周可教授團隊和騰訊技術工程事業羣雲架構平臺部 CDB 數據庫團隊合作完成,博士生張霽爲第一作者。

對於該論文,SIGMOD 評審委員會給出了極高的評價:

The paper is on the exciting new area of tuning databases with machine learning. Specifically using reinforcement learning. It does not just throw machine learning techniques but it does a good effort to explain how the techniques exactly match to the particular problem, what are the analogies with more traditional machine learning terminology, etc. Given that not everyone is knowledgeable in these techniques in the DB community this works in an educational way as well and is very much appreciated.

(本文是關於利用機器學習方法優化數據庫的技術,這是一個令人振奮的新領域。 特別是它使用了強化學習的方法。這篇文章不僅僅是簡單地拋出一個機器學習技術,而且非常好地解釋了機器學習是如何與特定的問題進行完全的匹配,同時也闡述了與傳統機器學習術語之間的類比問題。鑑於在數據庫社區中並非每個人都能對這些技術瞭如指掌,這也是一種教學方式,因此我們非常讚賞這篇文章。)

AI 前線第一時間聯繫到騰訊 TEG 雲架構平臺部 CDB 數據庫團隊進行了獨家專訪,內容整理如下:

CDBTune 因何而生?

隨着自研業務以及騰訊雲上數據庫實例規模不斷高速增長,團隊發現對於很多騰訊數據庫 CDB 的使用者來說,由於缺少豐富的數據庫性能優化經驗,很難發現導致數據庫性能下降的原因並有效解決。而對於 CDB 團隊來說,完全依賴數據庫專家進行數據庫參數調優代價昂貴且不現實。

在 CDBTune 之前,業界對於數據庫性能自動調優也有一些類似工作。大概有兩個方向:

  • 第一個方向主要利用啓發式搜索的方法縮小高維配置空間。這種方法不利用任何歷史經驗數據,因此在每個調參任務開始時都需要從 0 開始,調參效率較低。

  • 另外一個方向是採用流水線方式的傳統機器學習方法,導致推薦配置有一定的誤差。而且需要大量高質量的經驗數據進行模型訓練,提高了學習門檻。

CDBTune 主要的目標就是解決兩個問題:降低學習門檻和提升調參效率。

CDBTune 工作原理

CDBTune 的工作過程主要分爲離線訓練和在線調優兩個步驟。離線訓練就是用一些標準的負載生成器對數據庫進行壓測,邊收集訓練數據,邊訓練一個初步的配置推薦模型。當用戶或者系統管理員有數據庫性能優化需求時,可以通過相應的交互接口提出在線調參優化請求,此時雲端的控制器通過給智能優化系統發出在線調參請求,並根據用戶真實負載對之前建立好的初步模型進行微調,然後將模型微調後推薦出的相應的參數配置在數據庫中進行設置。反覆執行上述過程,直到待調參的數據庫性能滿足用戶或系統管理員的需求即停止調參。

CDBTune 系統交互圖

對於爲什麼要在系統中採用強化學習,CDB 數據庫團隊表示,強化學習可以邊生成數據邊訓練模型,而且強化學習既可以在成功中學習,也可以在失敗中學習,因此它對前期訓練樣本的質量要求不會非常高,降低了學習建模的門檻。在 CDBTune 系統中,強化學習主要通過激勵信號(數據庫性能的變化)優化配置推薦網絡,使得推薦出來的配置參數更爲合理。

強化學習與數據庫性能優化關係圖

CDBTune 性能表現

CDB 團隊主要採用併發和延時兩個指標來衡量數據庫的性能。論文從整體性能比較(推薦時間、推薦結果),不同可調參數個數的影響比較,在彈性雲環境下(用戶內存和磁盤空間變化)CDBTune 的適應能力等三大方面對 CDBTune 進行考量。

推薦耗時比較

爲了瞭解不同步驟在訓練和調優過程中所需要的耗時,團隊記錄了每個步驟的平均運行時間。每個步驟的運行時間爲 5 分鐘,主要又細分爲 5 個部分(不包括重啓 CDB 的 2 分鐘),如下所示:

(1)壓力測試時間(152.88 秒):工作負載的運行時間 用於收集數據庫當前度量的工作負載生成器的運行時間。

(2)度量收集時間(0.86 ms):從內部度量獲取狀態向量並通過外部指標計算獎勵的運行時間。

(3)模型更新時間(28.76 ms):在一次訓練過程中神經網絡前向計算和反向傳播的運行時間。。

(4)推薦時間(2.16 ms):從輸入數據庫狀態到輸出推薦配置的運行時間。

(5)部署時間(16.68 秒):從輸出推薦配置到根據 CDB 的 API 接口部署配置的運行時間。

對於離線訓練,CDBTune 在 266 種推薦配置上訓練完成需要大約 4.7 小時,在 65 種推薦配置上訓練需要 2.3 小時。請注意,配置數會影響離線訓練時間,但不會影響在線調優的時間。對於在線調優,每個調優請求分 5 步執行 CDBTune,總的耗時爲 25 分鐘。

另外,團隊將 CDBTune 的在線調優效率與 OtterTune、BestConfig 和 DBA 進行對比,結果如下表所示。

其中,只有 CDBTune 需要離線訓練,但它只需要進行一次訓練就可以使用該模型進行在線調優,而 OtterTune 在每一次收到在線調優請求的時候都需要重新訓練模型,BestConfig 則需要進行在線搜索。如下表所示,對於每個調優請求,OtterTune 需要 55 分鐘,BestConfig 需要大約 250 分鐘,DBA 需要 8.6 小時,而 CDBTune 只需要 25 分鐘。在對比實驗中,研發團隊邀請了 3 位 DBA 來調整參數並選擇其中的最佳結果。 DBA 需要大約 2 個小時才能開始執行工作負載重放並找到影響數據庫性能的因素(例如,分析源代碼中最耗時的函數,然後定位原因,並找到相對應可以調整的配置),這個過程通常需要豐富的經驗和大量的時間。

推薦性能比較

如下圖所示,CDB 團隊在多種不同負載和不同類型的數據庫下進行的大量實驗證明,CDBTune 性能優化結果明顯優於目前已有數據庫調優工具和 DBA 專家。即使在彈性雲環境下,用戶購買數據庫內存或磁盤大小發生變化,或負載發生變化(類型不變)的情況下,實驗證明 CDBTune 依然保持了較好的適應能力。更多對比結果和數據在論文中有詳細說明。

CDBTune 性能測試結果 1:性能比較

CDBTune 性能測試結果 2:內存 / 磁盤容量變化對模型的影響

據瞭解,CDBTune 不僅僅適用於雲數據庫,對於本地數據庫同樣也表現出了優異的性能,實驗結果可以查閱論文的附錄部分。

下一步計劃

目前 CDBTune 在在線推薦配置時還需要花大約 25 分鐘左右的時間,CDB 團隊希望進一步壓縮該時間,降低用戶等待時間,從而提高用戶體驗。另外,目前團隊正在進行 CDBTune 的產品化工作,相信過不了多久大家就可以在騰訊雲上體驗這項研究成果,研究團隊也將繼續尋求技術突破,以期在數據庫調參領域取得更多成果。

相關文章