1. 程式人生 > >CMU研發資料庫調優AI,水平超DBA老炮

CMU研發資料庫調優AI,水平超DBA老炮

這個週末,最不開心的應該是優秀的資料庫管理員了。

這些優秀的資料庫管理員(以下簡稱資料庫管理員為DBA),原本可以靠自己的本事,享受高薪,可是,好景不長了,因為即便是資質平平的DBA,以後藉助AI的力量,也能瞬間達到優秀DBA的水平。

來看最近來自卡耐基梅隆資料庫小組的最新研究成果,他們正用最新的深度學習技術,完成資料庫的調優工作。

如果這項技術在未來進一步普及,那麼,很無奈,這個行業不得不接受AI對於人員結構的改造。

DBA迎來新的革命

卡內基·梅隆大學資料庫小組採用機器學習實現了資料庫的自動化管理,其線上版的自動化管理服務 OtterTune 稍後即會上線。

OtterTune 所要解決的是資料庫管理中最為繁雜的問題:諸如快取大小分配、寫入頻率管理等因素在內的數百項引數的動態設定。過去,這項工作只能由經驗豐富的資料庫專家手動來完成。

這其中採用了怎樣的原理呢?

OtterTune 到底用了什麼原理?

採用機器學習後,OtterTune 把資料庫管理系統(DBMS)的工作流程變成這樣:

一開始,OtterTune 需要被告知明確的優化目標,如延遲、吞吐量等;其客戶端 Controller 會自動關聯目標 DBMS 及其亞馬遜 EC2 副本的型別與當前設定。

而後,Controller 便開啟第一個觀察週期,觀察 DBMS 並記錄目標項。觀察結束時,Controller 會蒐集好 DBMS 的內部引數,並將它和目標項傳送給 Tuning Manager。

收到引數後,Tuning Manager 便把它們儲存入庫。OtterTune 用這些引數計算出 DBMS 的目標配置,並將其發回至 Controller,Controller 部署並執行新的配置,以提升資料庫效能。

管理人員可隨時啟用或終止 OtterTune 服務。

簡而言之:

首先,需要設定一些優化目標,連線到資料庫系統,使用初始化的設定去執行;
然後控制器開啟第一次觀察週期,記錄下當前設定模式下的所有系統效能度量,並返回這些結果給調優器;
調優器記錄這些結果,並根據這些度量資訊和系統資訊計算出新的資料庫配置;
最後調優器把調優結果配置傳回控制器,同時可以有效評估系統提升的期望值;
使用者根據評估值決定是否使用新的配置。
其中最核心的步驟就是:計算出新的資料庫管理系統DBMS 的目標配置,即這裡面用到的主要是機器學習。
下面詳細解釋一下機器學習在裡面的作用。

機器學習的作用

機器學習模組分為三部分:獲取 Controller 觀察到的工作負載引數(Workload Characterization 元件),識別並學習這些引數(Knob Identification 元件),自動管理資料庫(Automatic Tuner 元件)。

下面一一來說:

Workload Characterization: OtterTune 使用 DBMS 的內部執行引數來提取資料庫的工作負載特徵。機器學習模組使用聚類方法來衡量這些引數的相關性,儘可能地裁剪引數量,以降低計算的複雜程度。

Knob Identification: 識別並學習資料庫引數,OtterTune 所用的特徵選取方法是 Lasso,以找出它們的重要程度。OtterTune 據此來計算 DBMS 的目標配置,它使用一種增量方法來找出資料庫的最佳配置。

Automatic Tuner: 而後的工作則交由 Automatic Tuner 元件。首先,它用 Workload Characterization 元件的效能資料來確定 DBMS 的目標負載;而後,它會選擇一組不同的配置進行測試。

OtterTune 的目標總是優化下一組配置,儘可能地蒐集資料來提升效能,而非緊盯住目標配置不放。

結果對比

OtterTune 在論文中測試了 MySQL 和 Postgres 這兩個資料庫的延遲和吞吐量,結果如下:

從圖中可以看出,相比於 MYSQL 管理指令碼,OtterTune 的延遲要低 60%,吞吐量則能提升 35%。

相比於 Postgres 的預設配置,OtterTune 與其他方法在延遲方面的提升大體相近;但吞吐量方面,OtterTune 比 DBA 的選擇要好 12%。

總體來看,OtterTune可以在延遲和吞吐等效能指標上大幅領先傳統的自動化配置指令碼,並接近專業DBA的水平。

AI如何擊中了這個行業的痛點?

為什麼這個行業需要AI來改造?DBA的日常工作到底有哪些痛點?

讓我們把目光拉近,看看這個行業到底有什麼問題。

目前的資料庫,主要採用專業的資料庫管理員(以下稱DBA)來設計資料系統的架構,調優等。

但是,由於業務系統極其複雜,且隨著業務的快速迭代,需要資料庫系統能跟上業務的節奏,快速響應,快速更新,這就導致調優任務也隨之變得極其複雜。

DBA需要靈活掌握各項影響系統性能的控制因素,也必須對資料底層,甚至體系結構都有深入瞭解,才能很好地完成調優任務。

因此,真正滿足優秀的DBA就非常少了,而且價格昂貴。

隨著大資料行業的井噴式發展,這種人才一直都是嚴重供不應求。

不過,這部分原本可以享受高薪的人群,好日子貌似要走到頭了。

因為,普通DBA也能借助AI搶飯碗了。

卡耐基梅隆的資料庫小組整出來的這個新研究,就是要通過使用AI技術,簡化了DBA對於資料庫系統的調優過程,即便是普通的DBA,也能達到、甚至超過專業DBA調優系統的能力。

所以,一旦AI在此領域真正開始發揮作用,人力成本將大幅降低,工作又能快速響應,公司再也不會因為專業DBA短缺而影響業務發展了,這將是公司老闆拍手稱快的大好事。

原文地址:
https://aws.amazon.com/cn/blogs/ai/tuning-your-dbms-automatically-with-machine-learning/?tag=vglnk-c1507-20

文章翻譯來自微信公眾號:AI100