好消息,騰訊云數(shù)據庫團隊智能調參CDBTune產品現(xiàn)已進入內測階段,歡迎數(shù)據庫愛好者、使用者、開發(fā)者前來測試。
CDBTune(cloud database tune)是基于2019至2021年間騰訊云數(shù)據庫團隊連續(xù)發(fā)表兩篇頂級論文的研究成果,對云數(shù)據庫進行調優(yōu)的一整套解決方案,旨在充分借助深度學習技術提升數(shù)據庫的運行效率。
在現(xiàn)實場景中,由于業(yè)務系統(tǒng)的千差萬別以及大量參數(shù)帶來的可設置范圍復雜度,往往需要借助經驗去構筑一套相對較為優(yōu)異且通用的參數(shù)模板。因此,數(shù)據庫當前運行參數(shù)往往也不是業(yè)務所需的最佳參數(shù)。同時,數(shù)據庫參數(shù)調優(yōu)能力也是專家級數(shù)據庫管理者的專屬技能,這也就意味著調優(yōu)性能受限于人力。除此之外,數(shù)據庫參數(shù)調優(yōu)還存在以下常見問題:
·參數(shù)非常多:例如MySQL,有幾百個配置項,調優(yōu)難度大。
·人力成本高:需要專職DBA,依靠專家經驗,人時成本高。
·工具普適性:現(xiàn)存工具功能有限,耗時久效果一般。
·云上新需求:部分用戶沒有專職運維團隊,參數(shù)調優(yōu)很難實現(xiàn)。
騰訊云數(shù)據庫團隊通過不斷強化學習算法來解決數(shù)據庫參數(shù)設置的問題,目標是使用有限的樣本,構建端到端的模型,輸入為當數(shù)據庫當前狀態(tài),輸出為推薦的配置,并且將時間成本控制到盡可能的短。基于此,團隊構建了一個使用深度強化學習的云數(shù)據庫調優(yōu)系統(tǒng),通過設置性能目標獎勵,比如TPS上升,QPS上升或者延遲降低,認為是獲得獎勵,使得AI像玩游戲一樣來調整參數(shù),最終數(shù)據庫獲得更高的一個性能。
在整個過程中,數(shù)據庫上執(zhí)行推薦配置數(shù)據庫的當前狀態(tài)將發(fā)生變化。內部指標可用于衡量與強化學習狀態(tài)相對應的數(shù)據庫的運行時的行為。而外部指標可評估數(shù)據庫的性能或獎勵,不斷重復整個過程,直到模型收斂。從調優(yōu)效果比對圖中可以看出,CDBTune在所有的情況下均體現(xiàn)了更好的性能,響應時間普遍降低50%以上。
同時也得益于騰訊云充沛且完善的硬件基礎設施,以及遺傳算法、專家經驗、定型價格,使得只能調參得以產品化,不僅僅停留在理論層面。
智能調參CDBTune服務于數(shù)據庫適應業(yè)務的各個階段,所能實現(xiàn)的功能也正對應著每一階段的特性。具體如下:
實例新購階段,可針對每一種場景訓練出最優(yōu)配置,并且考慮到業(yè)務特征支持靈活自定義,在不同的工作負載上有15%-50%的性能提升。
·在未知并發(fā)量、負載的情況下,CDBTune支持交易類場景、OLTP性能測試場景、壓力測試場景選擇。
·在已有最佳性能參數(shù)的情況下,CDBTune支持針對性調優(yōu),不覆蓋原有最佳性能參數(shù)設置,不影響客戶手工指定最優(yōu)參數(shù)。
·在特殊業(yè)務場景下,應用程序必須適配特殊場景,參數(shù)調整不影響參數(shù)模版的使用。
業(yè)務的快速迭代階段,可主動判斷業(yè)務類型,當適應快速迭代后,僅需2-3小時即可獲得調優(yōu)結果。
·當業(yè)務特征快速變化時,主動確定業(yè)務類型,減少逐一匹配帶來的資源損耗。
·不同的場景可以根據自身情況進行完全自定義,針對具體場景進行專項調用。
·預估優(yōu)化結果,一鍵快速應用至實例。
穩(wěn)定運行階段,整個數(shù)據庫運行的負載及特性明確,該階段主要目標為降低TCO。
·根據長期運行監(jiān)控分析工作負載特征。
·記錄工作負載相關SQL信息。
·記錄工作負載相關資源信息。
整體而言,CDBTune具體優(yōu)勢如下:
全生命周期:CDBTune支持在新購階段以及運行階段進行分析,覆蓋數(shù)據庫實例全生命周期。
靈活易操作:針對不同的場景可以根據實際需求進行負載特征的調整,適配多樣化的業(yè)務場景。
快速可靠:對比傳統(tǒng)的深度學習算法要獲取最佳參數(shù)建議時長減少60%以上。
優(yōu)越性能:針對性優(yōu)化,獲得更好更準確的參數(shù)建議,實現(xiàn)更優(yōu)的參數(shù)設置。