通過資料庫自治服務DAS,可以協助企業節省90%的資料庫管理成本,降低80%的營運風險,讓您可以更集中在業務創新,讓業務持續行駛在快車道上。本文以雙11期間的實際案例介紹DAS已擁有的核心自治特性:7x24即時異常檢測、故障自愈、自動最佳化、自動彈性、智能壓測。
7x24即時異常檢測
DAS的7x24即時異常檢測通過機器學習演算法,即時對資料庫的Workload進行異常檢測,相比傳統基於閾值的警示方式,能夠更及時的探索資料庫的異常,而不是靠故障驅動。您可以採集各種資料,比如從鏈路上採集數百個資料庫效能指標和從鏈路上採集已載入SQL語句的查詢日誌,海量資料的離線上處理與儲存,基於機器學習和資料庫領域預測演算法,實現各業務資料庫執行個體的持續模型訓練,即時模型預測和即時異常檢測分析能夠順利運行。相比傳統基於規則和基於閾值的方式,即時異常檢測具備以下優勢:
檢測範圍更廣,例如不僅限監控指標, 還包括SQL、日誌、鎖等。
實現准即時的檢測,大大超前傳統方式發現異常。
基於AI和異常驅動的檢測技術,而非故障驅動的檢測。
具備周期性識別能力,自適應業務特徵,擁有提前預測能力。

現實中常見的workload情境,如毛刺特徵、周期性特徵、趨勢性特徵、均值位移特徵等, 異常檢測服務都能夠準確自動識別,並支援多種時序特徵疊加識別,識別出異常後, 會觸發基於根因的全域診斷分析,以及後續的異常恢複、最佳化自治情境。

故障自愈
通過7x24即時異常檢測, 資料庫執行個體異常完成即時檢測發現,DAS自動進行根因分析,自動執行相關止損或修複操作,協助資料庫自動回復,減少對企業業務的影響。如下圖為雙11期間自動SQL限流的實際案例:

某自治服務接入執行個體於2020年11月5日12點31分,活躍會話數和CPU開始驟然飆升,DAS異常檢測中心於12點33分確定此次飆升為一次資料庫異常而非抖動尖刺,觸發SQL自動限流根因診斷,12點34分診斷完成,共發現兩條導致該次異常的問題SQL,發現問題SQL後隨即發起自動限流,活躍會話數開始降低,存量已提交問題SQL執行結束後,活躍會話數開始急速恢複,CPU使用率同時也恢複到正常。整個過程滿足“1-5-10”異常自愈能力, 即1分鐘發現,5分鐘定位,10分鐘恢複。
外置式SQL自動最佳化
按照經驗,約80%的資料庫效能問題可通過SQL最佳化手段解決,但SQL最佳化一直以來都是一個非常複雜的過程,需要多方面的資料庫領域專家知識和經驗,另外,由於SQL工作負載不斷變化,SQL最佳化還是一項非常耗時繁重的任務,這些都決定了SQL最佳化是一項高門檻,高投入且非常專業的工作。
資料庫自治服務DAS基於全域workload和真實的業務情境,持續對資料庫進行SQL Review和最佳化,就像有一個不知疲倦的專業DBA一直在守護著您的資料庫,將SQL最佳化推向了更高的境界。同時,DAS的SQL診斷能力有與傳統不同的技術特徵,如:
DAS採用外置式的,基於代價模型方式,實現索引、語句改寫推薦,以及效能瓶頸問題識別和推薦,避免傳統規則式的,過於機械化,推薦品質無法保證,無法量化效能提升收益等問題。
DAS在這些方面提供了足夠覆蓋度的情境:測試案例的正式特徵庫、線上用例的自動反饋提取、阿里巴巴多樣化的應用情境。
基於全域的Workload最佳化,基於Workload特徵,例如SQL執行頻率,讀寫比等進行最佳化,最大限度地消除局部最佳化的片面性弊端。

下面是雙11期間自動SQL最佳化一個實際案例:某自治服務接入執行個體, DAS於11月7日通過負載異常檢測到因慢SQL引起的負載異常,自動觸發SQL最佳化閉環,SQL語句最佳化上線後,經過持續24小時最佳化效果跟蹤完成最佳化收益評估,最佳化效果顯著,如最佳化之前後的平均RT及掃描行數如下圖所示,據統計,在最佳化之前,被最佳化SQL的平均掃描行數為148889.198,平均RT為505.561毫秒。而最佳化之後,平均掃描行數為12.132,大約降為最佳化前的萬分之一,而平均RT降至0.471毫秒,也大約降低到最佳化前的千分之一。
自動SQL最佳化前平均RT及掃描行數:

自動SQL最佳化後平均RT及掃描行數:

自動彈性
雲上資料庫提供基於計算規格的選項以及儲存容量供使用者選擇,當使用者業務Workload規模變化時可適當進行彈性擴縮容,但對於雲原生應用而言,資料庫能夠根據業務Workload的變化自動決定最合適的規格,使用最小的資源完成業務所需的資料庫容量。DAS基於AI的時序列預測,能夠自動對資料庫的業務模型、容量水位進行計算和預測,實現及時按需(或Crowdsourced Security Testing先覺式)自動擴縮容。
DAS的自動彈性實現了一套完整的資料閉環,包含效能採集、決策中心、演算法模型、規格建議模組、管控執行以及任務跟蹤評估等。
效能採集負責對執行個體進行即時效能資料採集,涉及資料庫的多項效能指標資訊、規格配置資訊、執行個體運行會話資訊等。
決策中心模組則會根據當前效能資料、執行個體會話列表資料等資訊進行全域判斷,以基於根因的全域自治,例如可通過SQL限流來解決當前計算資源不足的問題則會採取限流處理。若確實為突增的業務流量,則會繼續進行彈性服務流程。
演算法模型是整個DAS 自動彈性服務的核心,負責對資料庫執行個體的業務負載異常檢測和容量規格模型推薦進行計算,解決核心的擴容時機、擴容方式、計算規格選擇問題。
規格推薦和驗證模組產生具體的推薦規範,並檢查推薦的規範是否適合資料庫執行個體的部署類型和實際運行環境。該模組還會重複檢查推薦的規範是否可以在目前範圍購買,這確保了推薦的規範可以在管理端順利使用。
管控執行負責按照產出的規格建議進行分發執行。
狀態跟蹤最後用于衡量和跟蹤規格變更前後資料庫執行個體上的效能變化情況。
下圖是雙11期間自動SQL最佳化一個實際案例,某自治服務接入執行個體,使用者的業務流量不斷上升,PolarDB執行個體的CPU使用率不斷飆高並達到了高負載狀態,此時DAS的Autoscaling演算法精確的識別出了執行個體當前的異常狀態,於是自動為執行個體增加了兩個唯讀節點,執行個體的CPU使用率成功降到了較低的水位;在維持該狀態兩個小時後,使用者執行個體的流量依然在不斷上升,並第二次觸發DAS的Autoscaling,DAS Autoscaling將執行個體的規格從4核8GB升級到8核16GB,並平穩持續了10多個小時,協助使用者順利度過了業務高峰期。
智能壓測
DAS提供的智能壓測服務能夠協助您在上雲或在業務大促前評估所需的資料庫規格容量。規格自動擴容AutoScale能力能夠協助您在根據配置的資料庫效能閾值,或根據DAS內建智能化策略自動觸發擴縮容動作,從而一定程度上解決了做規格評估和管理的負擔。
傳統的壓測方案大部分基於現有的壓測工具,如sysbench、TPCC等,其最大的問題是這些壓測工具對應的SQL與真實業務差距太大,壓測結果無法準確反映出真實業務的效能和穩定性。DAS提供的智能壓測服務是基於使用者真實業務的workload,因此壓測結果可以直接體現在不同壓力下的效能和穩定性變化。達到該目標,智能壓測需要解決如下挑戰:
在不能採集大量SQL的情況,如何提供長時間壓測,如7x24小時穩定性壓測。因為SQL採集需要時間和儲存成本,在給定部分SQL的情況,DAS需要產生滿足業務要求的SQL。
並發回放能力:DAS需要保證和真實業務一致的並發,並能夠提供倍速(如2倍速、10倍速等)和峰值壓測功能。

DAS通過自動學習業務模型,自動產生符合壓測時間的真實業務Workload,同時提供給使用者更豐富的壓測情境,協助使用者解決大促、資料庫選型等問題。