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