阿里雲RDS Performance Insights是RDS CloudDBA產品一項專一於用戶數據庫實例性能調優、負載監控和關聯分析的利器,以簡單直觀的方式幫助用戶迅速評估數據庫負載,資源等待的源頭和對應SQL查詢語句,以此來指導用戶在什麼時候、何處、採起何種行動進行數據性能優化。前端
幾個名詞解釋數據庫
Performance Insights:中文翻譯過來叫性能洞察。性能優化
Active Session (AS):RDS數據庫系統中,活躍的會話數量。網絡
Average Active Session (AAS):一段時間內,RDS數據庫中平均活躍會話數量。架構
Max Vcores:RDS數據庫實例最大可使用到的CPU Cores數量。併發
AAS和MaxVcores來量化系統瓶頸性能
在文章開始,咱們但願可以把一個很是重要的問題解釋清楚:爲何可使用AAS (平均活躍會話數)與RDS數據庫實例MaxVcores量化對比來做爲系統瓶頸的判斷依據?咱們的理由是:優化
首先,RDS數據庫系統中,咱們認爲最爲重要的資源是CPU資源,由於其餘全部資源都須要CPU來調度。阿里雲
其次,CPU的併發處理能力,與CPU Cores的數量相關。假設在至關小的一個時間切片上,CPU對活躍會話(AS)處理能力瓶頸就是CPU Cores數量。即:CPU最多同時可以處理與Cores數量均等的活躍會話數。spa
所以,咱們能夠用RDS數據庫系統中,平均活躍會話(AAS)數與MaxVcores數的量化對比,作爲斷定系統是否存在瓶頸的重要依據。
阿里雲RDS Performance Insights可以幫助咱們的用戶快速方便、直接了當的發現數據庫實例負載,以及致使性能問題的SQL語句。目前Performance Insights頁面以三個方面承載咱們的產品思路:
關鍵資源利用率趨勢圖
阿里雲RDS Performance Insights關鍵性能指標的趨勢圖,能夠從宏觀的角度幫助客戶發現實例負載的來源,好比:究竟是CPU資源吃緊,IOPS太高?仍是網絡開銷過大,又或是活躍鏈接數打滿?
實時AAS變化趨勢圖
從關鍵資源利用率趨勢圖部分,咱們已經大體清楚了實例負載的來源。接下來,帶着這個問題,咱們去看看目前實例中活躍會話的資源等待狀況。那麼,此時咱們能夠來到頁面的第二個部分:實時AAS變化趨勢圖。
從Performance Insights中的實時AAS變化趨勢圖中,咱們能夠很是清晰的發現RDS實例中的資源等待狀況。好比上圖,咱們能夠分析出如下重要信息:
因而可知,咱們使用Performance Insights中的實時AAS變化趨勢圖,能夠很是清晰簡單,直接了當的找到用戶RDS實例負載來源,資源等待於什麼時候、何處,以及變化規律。
多維度負載詳情
通Performance Insights中的實時AAS變化趨勢圖,掌握了實例負載來源,資源等待及變化規律,接下來用戶理所應當最關心的一個問題即是:到底致使這些實例負載的具體查詢語句是什麼?哪一個用戶致使的?哪一個鏈接主機客戶端?哪一個應用數據庫?這一系列的問題咱們可使用多維負載信息部分來解答。
從以上截圖的下半部分,咱們能夠方便的找出與AAS變化趨勢關聯的負載對應的SQL查詢語句,以及每一個語句對AAS的貢獻的對比狀況。固然,您也能夠根據本身的須要切換爲Waits,Users,Hosts,Commands,Databases和Status,分別表示資源等待,用戶,客戶端主機,命令類型,數據庫,進程狀態等維度查看。
瞭解阿里雲RDS Performance Insights可以作什麼之後,讓咱們來看Performance Insights的設計架構圖,簡要歸納爲五個字:四層兩鏈路。
四層架構
RDS Performance Insights四層架構從上往下,依次爲:
兩條鏈路
從數據鏈路來看Performance Insights,有兩條鏈路:
如下兩個典型案例,來看看Performance Insights如何一目瞭然,一針見血的幫助咱們診斷分析數據庫系統瓶頸,資源等待和SQL查詢語句。
爲何CPU 100%了?
在咱們多年的專家服務過程當中, 遇到最多的用戶問題即是「爲何個人CPU 100%了」,來看看Performance Insights是如何庖丁解牛這個問題。
Performance Insights截圖
如下是該RDS實例,Performance Insights頁面截圖。
分析
咱們從Performance Insights頁面截圖分析出如下幾個問題:
XXX時間點SQL查詢變慢了
另外,用戶常常遇到的一個問題是「爲何個人SQL查詢語句忽然變慢了」?
Performance Insights截圖
某RDS實例用戶反饋在16:05左右,本來執行很快的Update語句,忽然變得很慢,16:08左右恢復正常,如下是該RDS實例Performance Insights頁面截圖。
分析
從Performance Insights截圖,咱們能夠分析出:
以上,咱們從兩個特定的用戶案例能夠看到Performance Insights能夠簡單直觀,輕鬆愉悅的幫助用戶診斷問題,關聯分析系統瓶頸,資源等待和SQL查詢,取得了很是好的效果。
伴隨阿里雲RDS Performance Insights第一期發佈,咱們已經能夠幫助用戶快速發現RDS實例性能問題,以及致使性能問題的具體SQL查詢。可是,這遠遠不夠,咱們還須要更深刻的幫助咱們的客戶自動化、智能化解決問題。
從「是什麼」到「爲何」
當前,用戶經過阿里雲RDS Performance Insights找到了致使性能問題的具體查詢SQL語句後,接下來很天然的一個問題是,爲何這個查詢語句會致使性能問題?是缺失必要的索引?統計信息數據傾斜?查詢數據類型轉換?Non-SARG查詢等等?接下來,咱們須要深刻探索爲何SQL會致使性能問題。
從「爲何」到「怎麼辦」
當用戶知道了SQL語句爲何有性能問題之後,接下來的問題即是:我該怎麼作才能解決性能問題?咱們須要明確告訴用戶怎麼辦就可以解決性能問題。
從「怎麼辦」到「自動辦」
隨着用戶可以解決SQL語句性能問題之後,用戶接下來最爲迫切的需求即是:阿里雲可否幫咱們預先發現、智能化、自動化處理解決這些相似的問題?
以上,即是RDS Performance Insights的產品脈絡,從是什麼到爲何;從爲何到怎麼辦;從怎麼辦到自動辦,層層遞進,步步爲營,一步一步創造客戶愈來愈高的診斷優化需求。
阿里雲RDS Performance Insights是數據庫實例性能調優、負載監控、關聯分析的必備利器,它能夠幫助用戶決策從何處下手,什麼時候採起行動,採起何種行動以及智能化自動解決問題根源。咱們有能力有信心能夠幫助咱們的客戶更好的上好阿里雲,用好阿里雲。
做者: 風移
本文爲雲棲社區原創內容,未經容許不得轉載。