国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于機(jī)器學(xué)習(xí)的數(shù)據(jù)庫(kù)系統(tǒng)參數(shù)優(yōu)化方法綜述

2024-01-22 10:58:20高宇飛李翠霞陶永才
關(guān)鍵詞:數(shù)據(jù)庫(kù)性能智能

石 磊, 李 天, 高宇飛, 衛(wèi) 琳, 李翠霞, 陶永才

(1.鄭州大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,河南 鄭州 450002;2.鄭州大學(xué) 計(jì)算機(jī)與人工智能學(xué)院,河南 鄭州 450001;3.嵩山實(shí)驗(yàn)室,河南 鄭州 450046)

數(shù)據(jù)庫(kù)是信息系統(tǒng)用于存儲(chǔ)、分析和管理數(shù)據(jù)的基礎(chǔ)設(shè)施,直接影響信息系統(tǒng)的可靠性。數(shù)據(jù)庫(kù)中有上百項(xiàng)可調(diào)整的參數(shù),控制著各組件的表現(xiàn),如openGauss的參數(shù)max_process_memory控制數(shù)據(jù)庫(kù)節(jié)點(diǎn)上的最大可用內(nèi)存,通過(guò)調(diào)整該參數(shù)可為各類緩存分配更大內(nèi)存,減少磁盤讀寫次數(shù),同時(shí)避免操作系統(tǒng)內(nèi)存溢出(out of memory,OOM)。

數(shù)據(jù)庫(kù)參數(shù)優(yōu)化面臨以下挑戰(zhàn)。

(1)參數(shù)空間大。假設(shè)有n個(gè)參數(shù),每個(gè)參數(shù)有k種取值,則可選擇的配置有kn個(gè),若參數(shù)取值范圍為一個(gè)連續(xù)區(qū)間,則配置數(shù)目無(wú)窮。因此,在高維參數(shù)空間內(nèi)尋找最優(yōu)配置是NP-Hard問(wèn)題[1]。

(2)訓(xùn)練樣本少。為確定一組配置對(duì)應(yīng)的數(shù)據(jù)庫(kù)表現(xiàn),需要在數(shù)據(jù)庫(kù)上運(yùn)行較長(zhǎng)時(shí)間的壓力測(cè)試,以獲取吞吐量等性能指標(biāo)的變化。但是,為保障數(shù)據(jù)庫(kù)的穩(wěn)定性,調(diào)優(yōu)時(shí)間有限,因此獲取訓(xùn)練樣本的時(shí)間短、數(shù)量少。

(3)環(huán)境變化多。數(shù)據(jù)庫(kù)的性能與軟硬件環(huán)境和工作負(fù)載等因素密切相關(guān),在生產(chǎn)環(huán)境中,這些因素隨時(shí)可能發(fā)生變化,導(dǎo)致之前的最優(yōu)配置失效,需要針對(duì)新的環(huán)境重新優(yōu)化。

參數(shù)優(yōu)化方法通過(guò)自動(dòng)選擇合適的配置來(lái)快速提升數(shù)據(jù)庫(kù)的性能,現(xiàn)有數(shù)據(jù)庫(kù)參數(shù)優(yōu)化方法可分為專家決策、啟發(fā)式算法、傳統(tǒng)機(jī)器學(xué)習(xí)方法和深度強(qiáng)化學(xué)習(xí)方法。專家決策基于人工經(jīng)驗(yàn)調(diào)整數(shù)據(jù)庫(kù),是早期數(shù)據(jù)庫(kù)參數(shù)優(yōu)化的主要手段;啟發(fā)式算法將參數(shù)空間離散化,通過(guò)抽樣來(lái)搜索最優(yōu)解,難以在多項(xiàng)式時(shí)間內(nèi)搜索到合適的配置;傳統(tǒng)機(jī)器學(xué)習(xí)算法基于訓(xùn)練樣本找到數(shù)據(jù)庫(kù)狀態(tài)和參數(shù)之間的映射關(guān)系,效率較高,但是需要大量高質(zhì)量的訓(xùn)練樣本;深度強(qiáng)化學(xué)習(xí)結(jié)合神經(jīng)網(wǎng)絡(luò)和強(qiáng)化學(xué)習(xí)的優(yōu)勢(shì),在高維參數(shù)空間中以試錯(cuò)的方式進(jìn)行探索,減少了對(duì)訓(xùn)練樣本的依賴性。

傳統(tǒng)參數(shù)優(yōu)化方法依賴于人工調(diào)整或啟發(fā)式算法,隨著數(shù)據(jù)庫(kù)實(shí)例越來(lái)越多,場(chǎng)景越來(lái)越復(fù)雜,傳統(tǒng)的參數(shù)優(yōu)化方法難以取得理想的結(jié)果。隨機(jī)森林、支持向量機(jī)和決策樹(shù)等方法能夠通過(guò)歷史數(shù)據(jù)積累“經(jīng)驗(yàn)”,提升解決問(wèn)題的能力。但是傳統(tǒng)機(jī)器學(xué)習(xí)模型難以解決像數(shù)據(jù)庫(kù)參數(shù)優(yōu)化這樣具有高維連續(xù)空間的優(yōu)化問(wèn)題。隨著算力的發(fā)展,深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)[2-3](reinforcement learning,RL)為此類問(wèn)題帶來(lái)更好的解決方案。深度學(xué)習(xí)利用神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,通過(guò)調(diào)整神經(jīng)元之間的連接來(lái)模擬數(shù)據(jù)的映射關(guān)系,適用于傳統(tǒng)方法難以解決的問(wèn)題或存在大量訓(xùn)練樣本的場(chǎng)景。數(shù)據(jù)庫(kù)有著復(fù)雜的參數(shù)和大量的數(shù)據(jù),為深入學(xué)習(xí)解決數(shù)據(jù)庫(kù)參數(shù)優(yōu)化問(wèn)題提供了很好的先驗(yàn)條件。強(qiáng)化學(xué)習(xí)旨在訓(xùn)練一個(gè)智能體與環(huán)境交互,智能體觀測(cè)環(huán)境后根據(jù)策略生成配置,然后根據(jù)環(huán)境的反饋來(lái)調(diào)整策略,以提升配置的質(zhì)量。強(qiáng)化學(xué)習(xí)以“試錯(cuò)”的方式進(jìn)行學(xué)習(xí),因此不需要預(yù)先準(zhǔn)備大量的樣本,深度強(qiáng)化學(xué)習(xí)結(jié)合了深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的優(yōu)點(diǎn),在工業(yè)界復(fù)雜的場(chǎng)景下有更好的表現(xiàn)。

本文首先對(duì)數(shù)據(jù)庫(kù)參數(shù)優(yōu)化問(wèn)題進(jìn)行定義,并對(duì)相關(guān)方法進(jìn)行分類;其次,分析現(xiàn)有數(shù)據(jù)庫(kù)參數(shù)優(yōu)化方法的關(guān)鍵特征;最后,結(jié)合現(xiàn)階段存在的問(wèn)題,對(duì)該領(lǐng)域未來(lái)的研究方向進(jìn)行展望。

1 數(shù)據(jù)庫(kù)參數(shù)優(yōu)化方法

為避免混淆,使用“配置參數(shù)”表示所有可配置的參數(shù)構(gòu)成的集合;“配置”表示配置參數(shù)的一組完整取值;“參數(shù)”表示配置參數(shù)集合中的某個(gè)參數(shù);“參數(shù)值”表示參數(shù)的具體取值。

1.1 數(shù)據(jù)庫(kù)參數(shù)優(yōu)化問(wèn)題定義

數(shù)據(jù)庫(kù)通常涉及上百項(xiàng)可調(diào)節(jié)的參數(shù),運(yùn)行環(huán)境和性能指標(biāo)也較復(fù)雜。對(duì)數(shù)據(jù)庫(kù)參數(shù)優(yōu)化的定義如下。

(1)配置。假設(shè)數(shù)據(jù)庫(kù)系統(tǒng)中共有n個(gè)可調(diào)整的參數(shù),記為

x=。

(1)

式中:xi為第i個(gè)參數(shù)的取值;x為一個(gè)配置,包含了所有可能的參數(shù)值的組合,每個(gè)配置表示n維參數(shù)空間的一個(gè)點(diǎn)。

(2)運(yùn)行環(huán)境。數(shù)據(jù)庫(kù)的表現(xiàn)不僅受參數(shù)影響,同時(shí)也和工作負(fù)載和硬件配置等運(yùn)行環(huán)境密切相關(guān)。將運(yùn)行環(huán)境集合記為E,每一種獨(dú)特的環(huán)境記為e, 其中e?E。

(3)系統(tǒng)性能。性能指標(biāo)有吞吐量、響應(yīng)時(shí)間等,設(shè)P表示數(shù)據(jù)庫(kù)的整體性能,P的計(jì)算方式通常不唯一。P受配置x和環(huán)境e的影響,P與x的映射關(guān)系定義為

P=f(x,e)。

(2)

式中:f(x,e)為數(shù)據(jù)庫(kù)系統(tǒng)在環(huán)境e下,部署配置x的性能,參數(shù)優(yōu)化的方向即為最大化函數(shù)f(x,e)。

(4)約束條件。約束條件指變量xi必須滿足某些條件,如數(shù)據(jù)庫(kù)中每個(gè)參數(shù)的值都必須在規(guī)定的取值范圍內(nèi)。此外參數(shù)優(yōu)化消耗的時(shí)間、資源等也構(gòu)成了約束條件的一部分。

數(shù)據(jù)庫(kù)參數(shù)優(yōu)化問(wèn)題可定義為

maxf(x,e);

(3)

s.t.gi(x)≤0,i=1,2,…,p;

(4)

hi(x)=0,i=1,2,…,q。

(5)

式中:x為數(shù)據(jù)庫(kù)配置;e為環(huán)境;求解目標(biāo)為最大化f(x,e),gi(x)≤0和hj(x)=0為求解目標(biāo)函數(shù)需要滿足的第i或j個(gè)約束條件。參數(shù)優(yōu)化問(wèn)題可概括為在滿足約束條件的同時(shí),為數(shù)據(jù)庫(kù)尋找合適的配置,使得數(shù)據(jù)庫(kù)在特定環(huán)境達(dá)到最優(yōu)的性能。

1.2 數(shù)據(jù)庫(kù)參數(shù)優(yōu)化方法介紹

多年來(lái),學(xué)者通過(guò)各種方式嘗試解決這一問(wèn)題[4-11],參數(shù)優(yōu)化方法分類如表1所示。

表1 數(shù)據(jù)庫(kù)參數(shù)優(yōu)化方法比較Table 1 Comparison of database tuning methods

1.2.1 專家決策

對(duì)數(shù)據(jù)庫(kù)參數(shù)的調(diào)整依賴于數(shù)據(jù)庫(kù)管理員(database administrator,DBA),管理員通過(guò)手工多次實(shí)驗(yàn)得到統(tǒng)計(jì)結(jié)果,再根據(jù)經(jīng)驗(yàn)調(diào)整數(shù)據(jù)庫(kù)參數(shù)。但是數(shù)據(jù)庫(kù)參數(shù)較多,多個(gè)參數(shù)組成的高維參數(shù)空間較大,通過(guò)手工抽樣的方式難以獲得最優(yōu)解。此外,手工測(cè)試每個(gè)樣本的質(zhì)量費(fèi)時(shí)費(fèi)力,調(diào)優(yōu)結(jié)果難以適應(yīng)變化的生產(chǎn)環(huán)境,因此,有學(xué)者嘗試使用經(jīng)典算法來(lái)解決該問(wèn)題。

1.2.2 基于規(guī)則的參數(shù)優(yōu)化方法

為提高調(diào)優(yōu)效率,DBA使用工具來(lái)輔助決策,使用某種方法,分析出模糊或確切的規(guī)則,然后輔助DBA調(diào)整數(shù)據(jù)庫(kù)參數(shù)。如 PostgreSQLTune能夠收集并分析數(shù)據(jù)庫(kù)的狀態(tài)(如當(dāng)前緩存命中率等),分析出影響數(shù)據(jù)庫(kù)性能的關(guān)鍵參數(shù),根據(jù)分析的結(jié)果和固定的規(guī)則來(lái)推薦用戶修改某些參數(shù)。Trummer[12]提出了一種自動(dòng)從文本中提取出規(guī)則的工具 DB-BERT。DB-BERT使用預(yù)先訓(xùn)練好的自然語(yǔ)言處理模型BERT[13]從數(shù)據(jù)庫(kù)手冊(cè)中識(shí)別出和參數(shù)相關(guān)的文本,將文本轉(zhuǎn)換成規(guī)則,根據(jù)規(guī)則推薦數(shù)據(jù)庫(kù)配置。這類工具雖然能夠減輕DBA的負(fù)擔(dān),但其核心是基于規(guī)則來(lái)調(diào)整參數(shù),應(yīng)對(duì)的場(chǎng)景有限,面對(duì)復(fù)雜的數(shù)據(jù)庫(kù)環(huán)境和硬件,難以保持良好的表現(xiàn)。MySQLTuner[14]是一款基于規(guī)則調(diào)整MySQL配置的工具,可在不停機(jī)的情況下實(shí)時(shí)獲取數(shù)據(jù)庫(kù)的狀態(tài),給出調(diào)整參數(shù)的建議。Xu等[15]針對(duì)如何選擇系統(tǒng)性能優(yōu)化最相關(guān)的參數(shù)開(kāi)展研究,結(jié)果表明,大量的數(shù)據(jù)庫(kù)參數(shù)沒(méi)有調(diào)整的價(jià)值,因此有必要進(jìn)行參數(shù)篩選;簡(jiǎn)化枚舉類型的參數(shù)可有效降低計(jì)算量,且對(duì)調(diào)優(yōu)結(jié)果的影響幾乎可以忽略。

1.2.3 基于啟發(fā)式算法的參數(shù)優(yōu)化方法

啟發(fā)式算法調(diào)整參數(shù)的主要思路是“搜索”,例如Zhu等[16]提出了一個(gè)基于搜索的參數(shù)優(yōu)化系統(tǒng) BestConfig。BestConfig 使用網(wǎng)格抽樣(grid sampling)的方式將連續(xù)的參數(shù)取值范圍離散化:參數(shù)取值范圍被劃分為k段,然后在每段上隨機(jī)取1個(gè)值,這樣n個(gè)參數(shù)可以組合出的配置為kn個(gè)。為減少搜索時(shí)間,BestConfig并不測(cè)試每一個(gè)配置,而是使用有界遞歸搜索算法隨機(jī)地選取k個(gè)樣本進(jìn)行測(cè)試,然后以表現(xiàn)好的樣本為中心,重新開(kāi)始搜索,如此迭代可在有限的資源下找到表現(xiàn)較好的配置。

此外,還有針對(duì)特定類型和版本的數(shù)據(jù)庫(kù)調(diào)優(yōu)指南,例如Oracle數(shù)據(jù)庫(kù)調(diào)優(yōu)指南[17]、DB2數(shù)據(jù)庫(kù)調(diào)優(yōu)手冊(cè)[18]、Azure SQL數(shù)據(jù)庫(kù)的性能優(yōu)化指南[19]。以上方法主要依賴于固定的參數(shù)優(yōu)化規(guī)則或使用搜索算法找到合適的配置,在效率上高于DBA,但無(wú)法完全解決參數(shù)優(yōu)化這類NP-Hard 問(wèn)題,也不能在歷史經(jīng)驗(yàn)的基礎(chǔ)上更新模型,每次調(diào)優(yōu)都要重新開(kāi)始,模型的優(yōu)化能力有限。

1.2.4 基于機(jī)器學(xué)習(xí)的參數(shù)優(yōu)化方法

不同于啟發(fā)式算法,機(jī)器學(xué)習(xí)方法可以從訓(xùn)練樣本中學(xué)習(xí)輸入與輸出之間的關(guān)系,因此能夠?qū)敵鼋o出更為準(zhǔn)確的預(yù)測(cè)?,F(xiàn)有的研究成果中,主要使用了傳統(tǒng)機(jī)器學(xué)習(xí)和深度強(qiáng)化學(xué)習(xí)兩種方法。

2 基于傳統(tǒng)機(jī)器學(xué)習(xí)的參數(shù)優(yōu)化方法

2.1 方法概述

傳統(tǒng)機(jī)器學(xué)習(xí)方法包括決策樹(shù)、線性回歸和神經(jīng)網(wǎng)絡(luò)等多種經(jīng)典模型,利用訓(xùn)練數(shù)據(jù)進(jìn)行回歸分析和模式識(shí)別等,一般包括以下幾個(gè)步驟。

步驟1 性能采樣。數(shù)據(jù)庫(kù)的主要性能指標(biāo)為吞吐量和延遲,使用采樣算法或隨機(jī)采樣,得到若干配置,通過(guò)實(shí)驗(yàn)或者仿真等方式對(duì)配置進(jìn)行評(píng)估,記錄下每種配置部署到數(shù)據(jù)庫(kù)后對(duì)數(shù)據(jù)庫(kù)帶來(lái)的提升,得到訓(xùn)練樣本。

步驟2 構(gòu)建性能預(yù)測(cè)模型。如圖1所示,基于步驟1得到的訓(xùn)練樣本,利用機(jī)器學(xué)習(xí)方法,如回歸模型等,預(yù)測(cè)數(shù)據(jù)庫(kù)與某一配置下的性能之間的隱含關(guān)系。

步驟3 尋找最優(yōu)配置。利用遺傳算法和梯度上升等方法,嘗試不同的配置,找到使系統(tǒng)性能達(dá)到最優(yōu)的配置。

基于傳統(tǒng)機(jī)器學(xué)習(xí)的參數(shù)優(yōu)化方法如表2所示。

2.2 經(jīng)典模型

目前較常用的方法是根據(jù)專家的經(jīng)驗(yàn)篩選出對(duì)數(shù)據(jù)庫(kù)性能影響最大的參數(shù),同時(shí)也有一些研究人員使用機(jī)器學(xué)習(xí)技術(shù)對(duì)相關(guān)性較強(qiáng)的參數(shù)進(jìn)行排序,例如Lasso和方差分析。Lima等[27]使用遞歸特征消除(recursive feature elimination,RFE)和其他有監(jiān)督學(xué)習(xí)方法評(píng)估配置的表現(xiàn),迭代地減少相關(guān)性較弱的參數(shù)。算法分為3步:①根據(jù)預(yù)測(cè)的性能指標(biāo)來(lái)給配置的表現(xiàn)打分;②利用線性回歸和決策樹(shù)等方法對(duì)參數(shù)排序;③基于隨機(jī)森林、梯度提升機(jī)(gradient boosting machine,GBM)和決策樹(shù)構(gòu)建性能預(yù)測(cè)模型。實(shí)驗(yàn)結(jié)果表明,在準(zhǔn)確性上,使用參數(shù)子集訓(xùn)練的模型優(yōu)于使用整個(gè)參數(shù)集訓(xùn)練的模型,說(shuō)明了選擇參數(shù)的重要性。

表2 基于傳統(tǒng)機(jī)器學(xué)習(xí)的數(shù)據(jù)庫(kù)參數(shù)優(yōu)化方法Table 2 Traditional machine learning-based database tuning methods

iTuned[20]是一款基于機(jī)器學(xué)習(xí)的自動(dòng)數(shù)據(jù)庫(kù)參數(shù)優(yōu)化系統(tǒng),其優(yōu)化過(guò)程主要分為兩步。首先,使用拉丁超立方體采樣(Latin hypercube sampling,LHS)選擇初始樣本。然后,利用這些樣本構(gòu)建基于高斯過(guò)程[28](Gauss processes,GP)的性能曲面,并基于觀測(cè)結(jié)果改進(jìn)函數(shù),在參數(shù)空間中繼續(xù)選擇采樣點(diǎn)并在采樣點(diǎn)上再次進(jìn)行實(shí)驗(yàn),得到對(duì)應(yīng)的性能值后,更新性能曲面,重復(fù)這個(gè)過(guò)程,直到達(dá)到最優(yōu)配置。在這個(gè)過(guò)程中,基于高斯過(guò)程的性能曲面逐漸逼近實(shí)際性能曲面,因此可以更快地找到最佳配置。但預(yù)測(cè)實(shí)際的性能曲面計(jì)算量較大,預(yù)測(cè)不夠精確,盡管iTuned使用參數(shù)選擇和工作負(fù)載壓縮等方法提升調(diào)優(yōu)速度,但在性能曲面上尋找最優(yōu)解仍需要消耗大量時(shí)間,例如在MySQL數(shù)據(jù)庫(kù)上選擇7個(gè)參數(shù)進(jìn)行調(diào)優(yōu),每次可消耗3.2~7.0 h,這使得iTuned難以應(yīng)用在生產(chǎn)環(huán)境。

OtterTune[21]使用了與iTuned類似的策略,創(chuàng)新之處在于實(shí)驗(yàn)過(guò)程中使用之前學(xué)習(xí)到的知識(shí)來(lái)指導(dǎo)參數(shù)采樣,通過(guò)利用歷史數(shù)據(jù),OtterTune可以更快地找到全局最優(yōu)解,實(shí)現(xiàn)更好的性能優(yōu)化效果。OtterTune優(yōu)化參數(shù)的過(guò)程主要分為以下3步。

(1)特征抽取。從原始數(shù)據(jù)中選擇與之相關(guān)的一部分特征,使用部分特征來(lái)代替原始數(shù)據(jù)參與計(jì)算。OtterTune根據(jù)數(shù)據(jù)庫(kù)工作負(fù)載(workload)的特征來(lái)調(diào)整參數(shù),不同的工作負(fù)載對(duì)參數(shù)的敏感性不同,因此,提取工作負(fù)載的特征并找到工作負(fù)載與參數(shù)的關(guān)聯(lián)非常重要。工作負(fù)載的特征包含兩方面:一方面是工作負(fù)載本身的特征,如負(fù)載中包含的查詢語(yǔ)句的類型、關(guān)聯(lián)的視圖、存儲(chǔ)過(guò)程和索引等;另一方面是數(shù)據(jù)庫(kù)在執(zhí)行負(fù)載時(shí)的內(nèi)部狀態(tài),如內(nèi)存使用率和緩存命中率等。

(2)降維。OtterTune使用因子分析(factor analysis,FA)對(duì)上一步中抽取出的特征進(jìn)行篩選以去除無(wú)關(guān)特征,使用機(jī)器學(xué)習(xí)方法k-means 選擇與參數(shù)相關(guān)的特征,篩選后的特征將作為模型輸入的一部分。為進(jìn)一步減少機(jī)器學(xué)習(xí)算法的搜索空間,OtterTune利用Lasso算法來(lái)選取與數(shù)據(jù)庫(kù)性能相關(guān)性最強(qiáng)的參數(shù),并將參數(shù)按照重要性排序。

(3)搜索。OtterTune根據(jù)特征將當(dāng)前的工作負(fù)載W映射到一個(gè)相似的負(fù)載W′,W′是在以前的參數(shù)優(yōu)化任務(wù)中出現(xiàn)過(guò)的負(fù)載,所以針對(duì)W′調(diào)優(yōu)的經(jīng)驗(yàn)可以復(fù)用,從而提升模型的效率。但由于W和W′并非完全相同,所以在調(diào)優(yōu)時(shí),系統(tǒng)綜合考量W和W′。

與iTuned 類似,OtterTune使用高斯過(guò)程估計(jì)出一個(gè)函數(shù)f(x),x為配置,f(x)代表將x部署在數(shù)據(jù)庫(kù)上執(zhí)行負(fù)載W的性能。在f(x)上進(jìn)行梯度下降(gradient descent)可找到局部最優(yōu)的點(diǎn)。整個(gè)梯度下降的過(guò)程需要 10~20 s,每次調(diào)整參數(shù)的結(jié)果都將被保存起來(lái),以便后續(xù)利用歷史經(jīng)驗(yàn),結(jié)果明顯優(yōu)于啟發(fā)式方法。然而,在高斯過(guò)程中,需要估計(jì)每個(gè)數(shù)據(jù)點(diǎn)的均值和協(xié)方差,從而得到整個(gè)函數(shù)的概率分布。這需要求解一個(gè)n×n的協(xié)方差矩陣K,其中n為數(shù)據(jù)點(diǎn)的數(shù)量,Ki,j=k(xi,xj)表示數(shù)據(jù)點(diǎn)xi和xj的協(xié)方差,整個(gè)高斯過(guò)程的訓(xùn)練時(shí)間復(fù)雜度為O(n3),因此難以處理高維或大規(guī)模的數(shù)據(jù)。

Gunasekaran等[29]對(duì)OtterTune進(jìn)行了改進(jìn),使用高斯混合模型(Gaussian mixture models,GMM)來(lái)修剪指標(biāo),并將集成模型(如隨機(jī)森林)與非線性模型(如神經(jīng)網(wǎng)絡(luò))結(jié)合起來(lái)進(jìn)行建模。其中的一個(gè)關(guān)鍵步驟是利用歷史調(diào)優(yōu)數(shù)據(jù)來(lái)訓(xùn)練機(jī)器學(xué)習(xí)模型以提高預(yù)測(cè)的性能。此外,使用GMM聚類替代k-means聚類進(jìn)行指標(biāo)修剪,通過(guò)將每個(gè)簇視為不同的高斯分布,并考慮簇的均值和方差來(lái)克服k-means聚類的缺點(diǎn)。通過(guò)使用輪廓系數(shù)和貝葉斯信息準(zhǔn)則(Bayesian information criterion,BIC)來(lái)確定GMM的最佳簇?cái)?shù)。Gunasekaran等[29]建議進(jìn)一步研究GMM聚類作為k-means聚類的代替,并收集更多數(shù)據(jù)以深入探索不同方法。實(shí)驗(yàn)結(jié)果表明,基于GPR(Gaussian process regression)的基準(zhǔn)模型表現(xiàn)最好,平均百分比誤差MAPE達(dá)到69%。

沈忱等[30]基于OtterTune提出了一種改進(jìn)的方法D-OtterTune。D-OtterTune利用動(dòng)態(tài)負(fù)載匹配方法解決OtterTune等模型中對(duì)靜態(tài)負(fù)載描述不夠準(zhǔn)確的問(wèn)題,基于動(dòng)態(tài)時(shí)間規(guī)整算法將數(shù)據(jù)對(duì)齊來(lái)解決負(fù)載匹配中序列不規(guī)則的問(wèn)題。

iBTune[22]專注于對(duì)數(shù)據(jù)庫(kù)緩沖池(buffer pool)進(jìn)行優(yōu)化,通過(guò)對(duì)緩存模型進(jìn)行偏差分析(deviation analysis),在確保緩存命中率和響應(yīng)時(shí)間的同時(shí)降低內(nèi)存占用。Rafiki[23]是一種針對(duì)靜態(tài)工作負(fù)載的自動(dòng)調(diào)優(yōu)工具,當(dāng)工作負(fù)載發(fā)生變化時(shí),需要重啟調(diào)優(yōu)過(guò)程并重啟數(shù)據(jù)庫(kù),會(huì)對(duì)數(shù)據(jù)庫(kù)的可用性和穩(wěn)定性造成較大影響。LlamaTune[24]利用領(lǐng)域知識(shí)(domain knowledge)提升調(diào)優(yōu)過(guò)程中的采樣效率,利用隨機(jī)投影對(duì)參數(shù)空間降維,并對(duì)參數(shù)的取值范圍離散化,以進(jìn)一步降低計(jì)算量。CGPTuner[25]綜合考慮操作系統(tǒng)和物理硬件等因素,基于上下文高斯過(guò)程(contextual Gaussian process)進(jìn)行優(yōu)化。OPTIMUSCLOUD[26]通過(guò)分析虛擬機(jī)參數(shù)和數(shù)據(jù)庫(kù)之間的依賴關(guān)系,基于隨機(jī)森林預(yù)測(cè)給定軟硬件環(huán)境下配置的表現(xiàn)。根據(jù)工作負(fù)載的變化情況決定何時(shí)更新配置,然后通過(guò)評(píng)估不同配置的適用性來(lái)確定更新哪些數(shù)據(jù)庫(kù)實(shí)例。Ishihara等[31]提出的調(diào)優(yōu)模型采用高斯過(guò)程來(lái)搜索較優(yōu)的數(shù)據(jù)庫(kù)配置,能夠應(yīng)用于多種軟件系統(tǒng)。Siegmund等[32]綜合利用抽樣啟發(fā)方法和機(jī)器學(xué)習(xí)方法為系統(tǒng)生成性能影響模型。Nair等[33]提出了一種基于排序的性能預(yù)測(cè)模型,以降低構(gòu)建性能模型的成本。

2.3 神經(jīng)網(wǎng)絡(luò)模型

深度神經(jīng)網(wǎng)絡(luò)可以通過(guò)多層神經(jīng)元進(jìn)行高維特征提取,對(duì)高維數(shù)據(jù)具有較好的處理能力,同時(shí)神經(jīng)網(wǎng)絡(luò)可以通過(guò)并行計(jì)算和GPU加速等方式高效處理大規(guī)模數(shù)據(jù)。Zheng等[4]提出了一種基于神經(jīng)網(wǎng)絡(luò)的調(diào)優(yōu)方法。從自動(dòng)工作負(fù)載存儲(chǔ)庫(kù)(automatic workload repository,AWR)收集數(shù)據(jù),包括系統(tǒng)的統(tǒng)計(jì)信息、會(huì)話日志和查詢語(yǔ)句的執(zhí)行記錄,然后構(gòu)建神經(jīng)網(wǎng)絡(luò)模型以獲取數(shù)據(jù)庫(kù)參數(shù)和性能指標(biāo)(如吞吐量)之間的關(guān)系,最后采用調(diào)優(yōu)算法優(yōu)化這些關(guān)鍵參數(shù)。Rodd等[34]也提出了一種基于神經(jīng)網(wǎng)絡(luò)的調(diào)優(yōu)方法,通過(guò)收集數(shù)據(jù)庫(kù)的關(guān)鍵性能指標(biāo)為數(shù)據(jù)庫(kù)的緩存推薦合適的值。Taft等[35]針對(duì)OLTP類型的工作負(fù)載構(gòu)建負(fù)載預(yù)測(cè)模型,在負(fù)載增加之前對(duì)計(jì)算資源進(jìn)行預(yù)測(cè)性分配,結(jié)果優(yōu)于被動(dòng)式調(diào)優(yōu)系統(tǒng)。ACTGAN[36]是基于生成式對(duì)抗網(wǎng)絡(luò)(generative adversarial network,GAN)的軟件系統(tǒng)優(yōu)化模型,也可用于數(shù)據(jù)庫(kù)參數(shù)優(yōu)化。ACTGAN利用隨機(jī)抽樣得到初始樣本,從中選取表現(xiàn)較好的配置來(lái)訓(xùn)練GAN網(wǎng)絡(luò),不同于“搜索”的策略,ACTGAN使用生成的方式直接推薦配置,這與強(qiáng)化學(xué)習(xí)的思路較為相似。Ha等[37]結(jié)合深度前饋神經(jīng)網(wǎng)絡(luò)(deep feedforward neural network,DFNN)和L1正則化的系統(tǒng)性能預(yù)測(cè)方法,提出了一種可以對(duì)系統(tǒng)性能進(jìn)行預(yù)測(cè)的模型DeepPerf。該工作研究對(duì)象為軟件系統(tǒng),同時(shí)也適用于數(shù)據(jù)庫(kù)管理系統(tǒng)。

Fang等[38]提出了一種基于機(jī)器學(xué)習(xí)的查詢級(jí)分布式數(shù)據(jù)庫(kù)調(diào)優(yōu)模型。首先,利用查詢向量嵌入網(wǎng)絡(luò)(query vector embedding network,QVEN)壓縮原始輸入,生成表示查詢特征的向量。QVEN的訓(xùn)練目標(biāo)是使輸出盡可能接近實(shí)際查詢特征向量的壓縮表示,可用于查詢語(yǔ)句向量化。對(duì)輸入的查詢語(yǔ)句和對(duì)應(yīng)的執(zhí)行計(jì)劃進(jìn)行解析和降維生成表示查詢特征的壓縮查詢向量。在此基礎(chǔ)上,利用查詢性能預(yù)測(cè)網(wǎng)絡(luò)(query performance predict network,QPPN)來(lái)預(yù)測(cè)查詢的執(zhí)行時(shí)間。QPPN模型由3層神經(jīng)網(wǎng)絡(luò)組成,包括線性層、BatchNorm層和ReLU激活函數(shù)。在訓(xùn)練模型之前,輸入的查詢向量和配置向量會(huì)進(jìn)行歸一化處理,該模型的訓(xùn)練數(shù)據(jù)是由查詢向量、配置向量和延遲時(shí)間組成的集合。通過(guò)運(yùn)行工作負(fù)載并獲取查詢語(yǔ)句的執(zhí)行計(jì)劃,可以生成訓(xùn)練數(shù)據(jù)。在CockroachDB上的實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)在典型的OLAP工作負(fù)載下實(shí)現(xiàn)了更高的性能,平均降低9.2%的延遲,并且對(duì)于某些查詢類型,延遲降低超過(guò)60%。

3 基于深度強(qiáng)化學(xué)習(xí)的參數(shù)優(yōu)化方法

傳統(tǒng)機(jī)器學(xué)習(xí)方法利用過(guò)去的調(diào)優(yōu)數(shù)據(jù)能夠加速調(diào)參任務(wù),但仍然存在一些局限性。首先,傳統(tǒng)機(jī)器學(xué)習(xí)方法依賴大規(guī)模高質(zhì)量的訓(xùn)練樣本;其次,傳統(tǒng)機(jī)器學(xué)習(xí)方法通常采用鏈?zhǔn)浇Y(jié)構(gòu),在每個(gè)階段獲得的最優(yōu)解并不能保證在下一階段仍然是最優(yōu)解;最后,數(shù)據(jù)庫(kù)系統(tǒng)具有高維連續(xù)的參數(shù)空間,傳統(tǒng)的機(jī)器學(xué)習(xí)模型擬合出的性能曲面不夠精確,而且難以在多項(xiàng)式時(shí)間內(nèi)尋找該曲面上的最優(yōu)解。針對(duì)上述問(wèn)題,一些研究人員開(kāi)始嘗試使用強(qiáng)化學(xué)習(xí)來(lái)解決數(shù)據(jù)庫(kù)參數(shù)優(yōu)化問(wèn)題。

3.1 方法概述

強(qiáng)化學(xué)習(xí)不像傳統(tǒng)機(jī)器學(xué)習(xí)那樣需要大量帶標(biāo)注的樣本,相反,智能體(agent)在與數(shù)據(jù)庫(kù)交互的過(guò)程中,通過(guò)試錯(cuò)來(lái)學(xué)習(xí)如何生成高質(zhì)量配置。強(qiáng)化學(xué)習(xí)的核心是利用智能體與環(huán)境(environment)進(jìn)行交互,并通過(guò)在環(huán)境中執(zhí)行一系列動(dòng)作來(lái)學(xué)習(xí)如何最大化獎(jiǎng)勵(lì)(reward)。DQN[39]等方法可用于處理離散動(dòng)作,而數(shù)據(jù)庫(kù)中大部分參數(shù)的取值范圍為一個(gè)連續(xù)區(qū)間,多個(gè)參數(shù)值構(gòu)成的配置有無(wú)窮多個(gè)。Mnih等[40]將深度神經(jīng)網(wǎng)絡(luò)與強(qiáng)化學(xué)習(xí)結(jié)合,提出了一種深度強(qiáng)化學(xué)習(xí)(deep reinforcement learning,DRL)模型,利用深度神經(jīng)網(wǎng)絡(luò)來(lái)處理強(qiáng)化學(xué)習(xí)中具有連續(xù)取值空間的參數(shù)。

將DRL應(yīng)用到參數(shù)優(yōu)化問(wèn)題的最大挑戰(zhàn)之一是基于強(qiáng)化學(xué)習(xí)模型對(duì)參數(shù)優(yōu)化問(wèn)題建模。強(qiáng)化學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)是馬爾科夫決策過(guò)程(Markov decision process,MDP),如圖2所示,在一個(gè)MDP中,智能體在觀測(cè)環(huán)境的狀態(tài)后,選擇一個(gè)動(dòng)作并執(zhí)行,執(zhí)行動(dòng)作后,智能體根據(jù)執(zhí)行結(jié)果獲得一次獎(jiǎng)勵(lì),隨后,環(huán)境的狀態(tài)可能發(fā)生變化,智能體再次觀測(cè)環(huán)境狀態(tài)和選擇動(dòng)作,這個(gè)過(guò)程不斷重復(fù),直至達(dá)到終止條件。智能體的目標(biāo)是選擇一個(gè)最優(yōu)的策略,使得回報(bào)(累計(jì)獎(jiǎng)勵(lì))最大化。

圖2 強(qiáng)化學(xué)習(xí)流程Figure 2 Process of reinforcement learning

圖2中si為第i步環(huán)境的狀態(tài),ai為第i步智能體的動(dòng)作,ri為第i步智能體獲得的獎(jiǎng)勵(lì)。強(qiáng)化學(xué)習(xí)與參數(shù)優(yōu)化問(wèn)題的映射如表3所示。

表3 強(qiáng)化學(xué)習(xí)與參數(shù)優(yōu)化問(wèn)題的映射Table 3 Mapping from RL to database tuning problem

(1)智能體。智能體是做出決策的主體,智能體可以基于多種模型構(gòu)建。

(2)環(huán)境。數(shù)據(jù)庫(kù)被視為一個(gè)環(huán)境,智能體在與環(huán)境的交互中學(xué)習(xí)。

(3)動(dòng)作。動(dòng)作是智能體基于當(dāng)前狀態(tài)做出的決策。在參數(shù)優(yōu)化問(wèn)題中,動(dòng)作是生成配置。

(4)動(dòng)作空間。指所有可能動(dòng)作的集合。在參數(shù)優(yōu)化問(wèn)題中,指所有可選擇的數(shù)據(jù)庫(kù)配置的集合。

(5)獎(jiǎng)勵(lì)。獎(jiǎng)勵(lì)是環(huán)境對(duì)于智能體動(dòng)作的反饋,智能體生成的配置對(duì)數(shù)據(jù)庫(kù)帶來(lái)的提升越大,獎(jiǎng)勵(lì)越大,反之亦然。獎(jiǎng)勵(lì)的計(jì)算方式由獎(jiǎng)勵(lì)函數(shù)(reward function)定義。

(6)狀態(tài)。對(duì)當(dāng)前時(shí)刻數(shù)據(jù)庫(kù)運(yùn)行狀態(tài)的概括,如當(dāng)前死鎖數(shù)量(lock_deads)和當(dāng)前打開(kāi)文件數(shù)量(file_num_open_files)等。

其中,智能體是整個(gè)參數(shù)優(yōu)化模型的核心,智能體的構(gòu)建和訓(xùn)練直接影響模型的表現(xiàn)。

3.2 智能體的構(gòu)建

智能體的形式并不唯一,通常需要根據(jù)強(qiáng)化學(xué)習(xí)的目標(biāo)和環(huán)境的特點(diǎn)來(lái)設(shè)計(jì)。由于智能體需要在連續(xù)高維的參數(shù)空間中探索合適的配置,所以需要使用能夠處理連續(xù)動(dòng)作空間的算法來(lái)構(gòu)建智能體。以soft actor-cricit[41]為例,智能體的結(jié)構(gòu)如圖3所示。其主要包含actor和critic兩個(gè)神經(jīng)網(wǎng)絡(luò),通過(guò)更新actor和critic網(wǎng)絡(luò)的參數(shù)來(lái)學(xué)習(xí)生成高質(zhì)量配置。

圖3 智能體架構(gòu)圖Figure 3 Architecture of agent

給定任意隨機(jī)變量x,假設(shè)x的概率密度為P(x),則x的熵的定義如下:

(6)

熵反映了一個(gè)系統(tǒng)的混亂程度,在參數(shù)優(yōu)化中,該項(xiàng)表示智能體輸出配置的多樣化程度,該項(xiàng)可引導(dǎo)智能體盡可能地輸出多樣的配置,從而增加智能體在參數(shù)空間的探索能力。

智能體學(xué)習(xí)的過(guò)程是最大化目標(biāo)函數(shù)的過(guò)程,目標(biāo)函數(shù)不唯一,其中一種定義如下:

(7)

式中:π為智能體的策略;Vπ(s)為在狀態(tài)s下策略π表現(xiàn)的好壞程度;R(st,at)為獎(jiǎng)勵(lì)函數(shù),表示智能體在環(huán)境的狀態(tài)為st下做出動(dòng)作at能夠獲得的獎(jiǎng)勵(lì);α為系數(shù);H(π(·|st))為智能體輸出的動(dòng)作的熵。

智能體對(duì)應(yīng)的動(dòng)作價(jià)值函數(shù)(action-value function)定義為

(8)

動(dòng)作價(jià)值函數(shù)代表在策略π和狀態(tài)st下采取動(dòng)作at可獲得的回報(bào)的期望?;貓?bào)(累計(jì)獎(jiǎng)勵(lì))為多次獎(jiǎng)勵(lì)的加權(quán)和,根據(jù)式(7)和式(8),Vπ(s)可改寫為

(9)

智能體中actor的輸入是狀態(tài)s,輸出為數(shù)據(jù)庫(kù)配置;critic的輸入為狀態(tài)s、配置和獎(jiǎng)勵(lì),輸出為1個(gè)累計(jì)獎(jiǎng)勵(lì)的期望。智能體使用梯度上升更新actor和critic網(wǎng)絡(luò)的權(quán)重來(lái)最大化目標(biāo)函數(shù)。訓(xùn)練智能體的流程如下。

步驟1 使用隨機(jī)參數(shù)初始化actor 和 critic 網(wǎng)絡(luò)。

步驟2 在t時(shí)刻,智能體觀測(cè)環(huán)境狀態(tài)st并由actor選擇動(dòng)作,即生成數(shù)據(jù)庫(kù)配置。

步驟3 從環(huán)境獲得獎(jiǎng)勵(lì)rt和新的狀態(tài)st+1。

步驟4 critic為actor輸出的配置生成1個(gè)打分,打分代表智能體未來(lái)可獲得的回報(bào)。打分越高,表示actor 輸出的配置的質(zhì)量越好。

步驟5 critic根據(jù)rt和式(8)更新網(wǎng)絡(luò)參數(shù),以獲得更精確的打分。

步驟6 actor使用梯度上升最大化式(7),獲得更高的打分。

步驟1至步驟6重復(fù)進(jìn)行,直到智能體收斂或達(dá)到終止條件。以上步驟與實(shí)際情況略有出入,在實(shí)際中,還會(huì)使用經(jīng)驗(yàn)回放和自動(dòng)調(diào)整熵正則項(xiàng)優(yōu)化等技術(shù)來(lái)提升智能體的穩(wěn)定性和效率。

3.3 相關(guān)工作

深度強(qiáng)化學(xué)習(xí)相關(guān)參數(shù)優(yōu)化系統(tǒng)如表4所示。

表4 深度強(qiáng)化學(xué)習(xí)相關(guān)參數(shù)優(yōu)化系統(tǒng)Table 4 Database tuning system with reinforcement learning

深度強(qiáng)化學(xué)習(xí)方法在吞吐量和延遲兩方面表現(xiàn)更出色,強(qiáng)化學(xué)習(xí)能將吞吐量提升到8倍,而大部分傳統(tǒng)機(jī)器學(xué)習(xí)方法僅能提升不到1倍。然而,由于智能體和數(shù)據(jù)庫(kù)之間頻繁交互,深度強(qiáng)化學(xué)習(xí)方法的運(yùn)行時(shí)間更長(zhǎng)。例如,CDBTune+[11]運(yùn)行時(shí)間長(zhǎng)達(dá)50 h,Hunter[43]采用分布式訓(xùn)練可將運(yùn)行時(shí)間縮短至3 h,傳統(tǒng)機(jī)器學(xué)習(xí)方法則只需要1 h左右。

3.3.1 CDBTune

CDBTune首次將深度強(qiáng)化學(xué)習(xí)應(yīng)用到數(shù)據(jù)庫(kù)參數(shù)優(yōu)化問(wèn)題上,基于深度確定性策略梯度算法(deep deterministic policy gradient,DDPG)[45-46]構(gòu)建智能體。CDBTune優(yōu)化的指標(biāo)為數(shù)據(jù)庫(kù)的吞吐量和延遲,在t時(shí)刻,配置對(duì)兩個(gè)指標(biāo)的提升的定義如下:

(10)

(11)

式中:Tt為t時(shí)刻的吞吐量;T0為數(shù)據(jù)庫(kù)初始狀態(tài)的吞吐量;ΔTt→0和ΔTt→t-1分別為t時(shí)刻與初始狀態(tài)和上一狀態(tài)相比較對(duì)吞吐量的影響;ΔT為t時(shí)刻配置對(duì)吞吐量的總體影響;ΔL為t時(shí)刻配置對(duì)延遲的總體影響。基于式(10)和式(11),獎(jiǎng)勵(lì)函數(shù)定義如下:

(12)

獎(jiǎng)勵(lì)函數(shù)引導(dǎo)著智能體生成能夠提升吞吐量和降低延遲的配置,若配置未能給數(shù)據(jù)庫(kù)帶來(lái)提升,則獎(jiǎng)勵(lì)函數(shù)返回0或負(fù)值。相較于傳統(tǒng)機(jī)器學(xué)習(xí)方法,CDBTune有以下優(yōu)勢(shì)。

(1)在獎(jiǎng)勵(lì)函數(shù)的引導(dǎo)下,智能體以試錯(cuò)的方式尋找最優(yōu)配置,僅需少量樣本即可實(shí)現(xiàn)較好的結(jié)果。

(2)在高維連續(xù)空間中表現(xiàn)優(yōu)于OtterTune等基于傳統(tǒng)回歸方法的模型。

(3)利用端到端的方法減少出錯(cuò)概率,避免陷入局部最優(yōu)。

CDBTune的調(diào)優(yōu)粒度較粗,僅能對(duì)3種工作負(fù)載調(diào)優(yōu):只讀(read-only)型工作負(fù)載、只寫(write-only)型工作負(fù)載、讀寫混合(read-write)型工作負(fù)載,無(wú)法對(duì)特定的工作負(fù)載優(yōu)化。

3.3.2 Qtune

Qtune同樣基于DDPG構(gòu)建智能體,但是Qtune可提供不同粒度的優(yōu)化方案。Qtune從SQL語(yǔ)句中提取特征,如查詢類型、查詢代價(jià)和查詢關(guān)聯(lián)的數(shù)據(jù)庫(kù)表等,將這些特征提供給深度強(qiáng)化學(xué)習(xí)模型,以動(dòng)態(tài)選擇合適的參數(shù)配置。Qtune的調(diào)優(yōu)粒度從高到低分別為查詢級(jí)調(diào)優(yōu)、負(fù)載級(jí)調(diào)優(yōu)、簇級(jí)調(diào)優(yōu)。查詢級(jí)調(diào)優(yōu)針對(duì)單個(gè)查詢生成合適的配置。這種方法延遲較低 ,但不能并行運(yùn)行SQL語(yǔ)句,導(dǎo)致吞吐量較低。工作負(fù)載級(jí)調(diào)優(yōu)面向工作負(fù)載推薦配置,吞吐量較高,但不能針對(duì)SQL語(yǔ)句推薦配置,因此具有高延遲。簇級(jí)調(diào)優(yōu)兼顧了高吞吐量和低延遲,將SQL語(yǔ)句分為若干個(gè)組,以組為單位進(jìn)行調(diào)優(yōu)。Qtune提出了一種基于深度學(xué)習(xí)的查詢聚類方法,能夠根據(jù)SQL語(yǔ)句的特征進(jìn)行聚類。這種方法可以實(shí)現(xiàn)高吞吐量和低時(shí)延。用戶可根據(jù)需求權(quán)衡吞吐量和延遲,選擇不同的調(diào)優(yōu)粒度。

3.3.3 Hunter

Qtune和CDBTune能有效地生成高質(zhì)量數(shù)據(jù)庫(kù)配置,但是在訓(xùn)練智能體過(guò)程中,每回合都需要利用吞吐量和延遲計(jì)算獎(jiǎng)勵(lì)值,為獲取準(zhǔn)確的吞吐量和延遲,每次需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行至少 1 min的壓力測(cè)試,這消耗了大量的時(shí)間。為解決該問(wèn)題,Hunter同樣以DRL為核心,利用主成分分析 (principal component analysis,PCA)和隨機(jī)森林(random forest,RF)減少 DRL 模型的搜索空間,提升搜索效率,利用遺傳算法為DRL模型生成訓(xùn)練樣本,提升模型訓(xùn)練速度。為了進(jìn)一步加速模型的訓(xùn)練,Hunter克隆多個(gè)數(shù)據(jù)庫(kù)實(shí)例并行訓(xùn)練,使用10個(gè)克隆的數(shù)據(jù)庫(kù)實(shí)例可將訓(xùn)練速度提升約3倍。

3.3.4 ResTune

ResTune使用元學(xué)習(xí)(meta-learning)從歷史調(diào)優(yōu)中抽取經(jīng)驗(yàn),加速帶約束的貝葉斯優(yōu)化問(wèn)題,保證性能滿足用戶需求的同時(shí),盡可能減少資源消耗。

DRL融合MDP和梯度上升調(diào)整數(shù)據(jù)庫(kù)參數(shù),降低了對(duì)樣本的需求,然而,智能體的動(dòng)作具有一定的不確定性,尤其在初始階段,智能體的策略近似于隨機(jī),因此可能生成危險(xiǎn)的配置,進(jìn)而導(dǎo)致數(shù)據(jù)庫(kù)性能大幅下降甚至停機(jī)。此外,模型的表現(xiàn)受軟硬件環(huán)境的影響。因此需要權(quán)衡多個(gè)因素,才能使總體效果達(dá)到最優(yōu)。

4 趨勢(shì)與展望

(1)參數(shù)優(yōu)化的細(xì)粒度。已有的工作大多是針對(duì)數(shù)據(jù)庫(kù)的吞吐量和延遲進(jìn)行優(yōu)化,這些指標(biāo)可根據(jù)業(yè)務(wù)類型進(jìn)一步進(jìn)行細(xì)分,如寫吞吐量,讀吞吐量、寫延遲、讀延遲和緩存大小等。優(yōu)化的對(duì)象也可以是單條查詢、單個(gè)類型查詢或某一用戶的行為習(xí)慣。根據(jù)場(chǎng)景的變化,動(dòng)態(tài)調(diào)整參數(shù)優(yōu)化的細(xì)粒度能夠使模型有更好的適應(yīng)性[47]。

(2)基于變化環(huán)境的數(shù)據(jù)庫(kù)參數(shù)優(yōu)化。數(shù)據(jù)庫(kù)在不同軟硬件環(huán)境下表現(xiàn)有一定的差異,如何在環(huán)境發(fā)生變化時(shí)能夠用已有的經(jīng)驗(yàn)快速生成針對(duì)新環(huán)境的優(yōu)化結(jié)果,是一個(gè)重要的問(wèn)題。遷移學(xué)習(xí)通過(guò)利用源域中學(xué)到的知識(shí)和經(jīng)驗(yàn)來(lái)改善目標(biāo)域中的學(xué)習(xí)性能,減少標(biāo)注數(shù)據(jù)的需求,提升模型的泛化能力,并幫助解決樣本不平衡問(wèn)題。Jamshidi等[48]利用遷移學(xué)習(xí)將部分歷史經(jīng)驗(yàn)從源域遷移至目標(biāo)域以適應(yīng)新的環(huán)境。然而,如何在環(huán)境劇烈變化時(shí)仍能充分利用已有系統(tǒng)的知識(shí),是未來(lái)重要的研究方向。

(3)自運(yùn)維的數(shù)據(jù)庫(kù)。已有的數(shù)據(jù)庫(kù)參數(shù)優(yōu)化系統(tǒng)由人工設(shè)置優(yōu)化指標(biāo)和各種超參數(shù),然后在接收到優(yōu)化請(qǐng)求后,啟動(dòng)優(yōu)化流程[49]。Pavlo等[50]認(rèn)為自運(yùn)維的數(shù)據(jù)庫(kù)應(yīng)該滿足:①自動(dòng)選擇進(jìn)行何時(shí)進(jìn)行何種操作以改進(jìn)某項(xiàng)指標(biāo);②從歷史經(jīng)驗(yàn)中自動(dòng)學(xué)習(xí),并在沒(méi)有人工干預(yù)的情況下根據(jù)歷史經(jīng)驗(yàn)做出決策。目前幾乎沒(méi)有能完全解決這類問(wèn)題的工作。除了數(shù)據(jù)庫(kù)參數(shù)調(diào)優(yōu)外,未來(lái)的數(shù)據(jù)庫(kù)也將朝著自主監(jiān)控、自主診斷、自主修復(fù)等方向發(fā)展[51-56]。

5 結(jié)束語(yǔ)

數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)由存儲(chǔ)介質(zhì)、處理對(duì)象和管理系統(tǒng)集合體構(gòu)成的復(fù)雜系統(tǒng),數(shù)據(jù)庫(kù)自身的復(fù)雜性和外部環(huán)境的多樣性為參數(shù)優(yōu)化帶來(lái)了多種挑戰(zhàn)。相較于經(jīng)典機(jī)器學(xué)習(xí)模型,神經(jīng)網(wǎng)絡(luò)能夠更好地處理復(fù)雜數(shù)據(jù),但是對(duì)訓(xùn)練樣本的依賴性限制了其泛化能力。而強(qiáng)化學(xué)習(xí)基于馬爾科夫決策過(guò)程,以試錯(cuò)的方式在連續(xù)高維空間內(nèi)搜索最優(yōu)解,減少了對(duì)訓(xùn)練數(shù)據(jù)的依賴。以強(qiáng)化學(xué)習(xí)為核心,并結(jié)合多種方法的數(shù)據(jù)庫(kù)參數(shù)優(yōu)化模型取得了較好的結(jié)果。此外,如何在自運(yùn)維等場(chǎng)景下進(jìn)行參數(shù)優(yōu)化,已成為當(dāng)前研究熱點(diǎn)和難點(diǎn)。

猜你喜歡
數(shù)據(jù)庫(kù)性能智能
提供將近80 Gbps的帶寬性能 DisplayPort 2.0正式發(fā)布
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
Al-Se雙元置換的基于LGPS的thio-LISICON的制備與性能表征
新蔡县| 黄山市| 筠连县| 长宁县| 朔州市| 剑川县| 西盟| 余干县| 延长县| 合肥市| 建平县| 镇江市| 峡江县| 简阳市| 云阳县| 南部县| 漯河市| 防城港市| 靖州| 工布江达县| 收藏| 甘谷县| 朔州市| 曲靖市| 沭阳县| 腾冲县| 鸡西市| 兴海县| 寿光市| 阳原县| 兖州市| 涞水县| 昌乐县| 潼关县| 抚远县| 金门县| 宣恩县| 黔东| 石景山区| 凤阳县| 体育|