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