溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

分析數(shù)據(jù)庫(kù)實(shí)例性能調(diào)優(yōu)利器Performance Insights

發(fā)布時(shí)間:2021-11-06 11:30:02 來(lái)源:億速云 閱讀:88 作者:iii 欄目:web開(kāi)發(fā)

這篇文章主要講解了“分析數(shù)據(jù)庫(kù)實(shí)例性能調(diào)優(yōu)利器Performance Insights”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“分析數(shù)據(jù)庫(kù)實(shí)例性能調(diào)優(yōu)利器Performance Insights”吧!

Performance Insights是什么

阿里云RDS Performance Insights是RDS CloudDBA產(chǎn)品一項(xiàng)專(zhuān)注于用戶數(shù)據(jù)庫(kù)實(shí)例性能調(diào)優(yōu)、負(fù)載監(jiān)控和關(guān)聯(lián)分析的利器,以簡(jiǎn)單直觀的方式幫助用戶迅速評(píng)估數(shù)據(jù)庫(kù)負(fù)載,資源等待的源頭和對(duì)應(yīng)SQL查詢語(yǔ)句,以此來(lái)指導(dǎo)用戶在何時(shí)、何處、采取何種行動(dòng)進(jìn)行數(shù)據(jù)性能優(yōu)化。

幾個(gè)名詞解釋

Performance Insights:中文翻譯過(guò)來(lái)叫性能洞察。 
Active Session (AS):RDS數(shù)據(jù)庫(kù)系統(tǒng)中,活躍的會(huì)話數(shù)量。 
Average Active Session (AAS):一段時(shí)間內(nèi),RDS數(shù)據(jù)庫(kù)中平均活躍會(huì)話數(shù)量。 
Max Vcores:RDS數(shù)據(jù)庫(kù)實(shí)例最大可以使用到的CPU Cores數(shù)量。
AAS和MaxVcores來(lái)量化系統(tǒng)瓶頸

在文章開(kāi)始,我們希望能夠把一個(gè)非常重要的問(wèn)題解釋清楚:為什么可以使用AAS (平均活躍會(huì)話數(shù))與RDS數(shù)據(jù)庫(kù)實(shí)例MaxVcores量化對(duì)比來(lái)作為系統(tǒng)瓶頸的判斷依據(jù)?我們的理由是:

首先,RDS數(shù)據(jù)庫(kù)系統(tǒng)中,我們認(rèn)為最為重要的資源是CPU資源,因?yàn)槠渌匈Y源都需要CPU來(lái)調(diào)度。

其次,CPU的并發(fā)處理能力,與CPU Cores的數(shù)量相關(guān)。假設(shè)在相當(dāng)小的一個(gè)時(shí)間切片上,CPU對(duì)活躍會(huì)話(AS)處理能力瓶頸就是CPU Cores數(shù)量。即:CPU最多同時(shí)能夠處理與Cores數(shù)量均等的活躍會(huì)話數(shù)。

因此,我們可以用RDS數(shù)據(jù)庫(kù)系統(tǒng)中,平均活躍會(huì)話(AAS)數(shù)與MaxVcores數(shù)的量化對(duì)比,做為判定系統(tǒng)是否存在瓶頸的重要依據(jù)。

Performance Insights能做什么

阿里云RDS Performance Insights能夠幫助我們的用戶快速方便、直接了當(dāng)?shù)陌l(fā)現(xiàn)數(shù)據(jù)庫(kù)實(shí)例負(fù)載,以及導(dǎo)致性能問(wèn)題的SQL語(yǔ)句。目前Performance Insights頁(yè)面以三個(gè)方面承載我們的產(chǎn)品思路:

關(guān)鍵性能指標(biāo)趨勢(shì)圖:關(guān)鍵資源利用率變化趨勢(shì)圖。

實(shí)時(shí)AAS變化趨勢(shì)圖:數(shù)據(jù)庫(kù)實(shí)例中平均活躍會(huì)話(Average Active Sessions)實(shí)時(shí)變化趨勢(shì)。
多維負(fù)載信息:展示多維度實(shí)例負(fù)載信息。
關(guān)鍵資源利用率趨勢(shì)圖

阿里云RDS Performance Insights關(guān)鍵性能指標(biāo)的趨勢(shì)圖,可以從宏觀的角度幫助客戶發(fā)現(xiàn)實(shí)例負(fù)載的來(lái)源,比如:到底是CPU資源吃緊,IOPS過(guò)高?還是網(wǎng)絡(luò)開(kāi)銷(xiāo)過(guò)大,又或是活躍連接數(shù)打滿?

分析數(shù)據(jù)庫(kù)實(shí)例性能調(diào)優(yōu)利器Performance Insights

實(shí)時(shí)AAS變化趨勢(shì)圖

從關(guān)鍵資源利用率趨勢(shì)圖部分,我們已經(jīng)大致清楚了實(shí)例負(fù)載的來(lái)源。接下來(lái),帶著這個(gè)問(wèn)題,我們?nèi)タ纯茨壳皩?shí)例中活躍會(huì)話的資源等待情況。那么,此時(shí)我們可以來(lái)到頁(yè)面的第二個(gè)部分:實(shí)時(shí)AAS變化趨勢(shì)圖。

分析數(shù)據(jù)庫(kù)實(shí)例性能調(diào)優(yōu)利器Performance Insights

從Performance Insights中的實(shí)時(shí)AAS變化趨勢(shì)圖中,我們可以非常清晰的發(fā)現(xiàn)RDS實(shí)例中的資源等待情況。比如上圖,我們可以分析出以下重要信息:

時(shí)間10:25 - 10:57之間,平均活躍會(huì)話遠(yuǎn)遠(yuǎn)大于實(shí)例CPU Cores數(shù)量24(幾個(gè)點(diǎn)低于CPU Cores),說(shuō)明數(shù)據(jù)庫(kù)已經(jīng)面臨比較大的系統(tǒng)瓶頸。
從AAS變化趨勢(shì)圖來(lái)看,幾乎是在等待藍(lán)色標(biāo)示的資源,即CPU資源。

由此可見(jiàn),我們使用Performance Insights中的實(shí)時(shí)AAS變化趨勢(shì)圖,可以非常清晰簡(jiǎn)單,直接了當(dāng)?shù)恼业接脩鬜DS實(shí)例負(fù)載來(lái)源,資源等待于何時(shí)、何處,以及變化規(guī)律。

多維度負(fù)載詳情

通Performance Insights中的實(shí)時(shí)AAS變化趨勢(shì)圖,掌握了實(shí)例負(fù)載來(lái)源,資源等待及變化規(guī)律,接下來(lái)用戶理所應(yīng)當(dāng)最關(guān)心的一個(gè)問(wèn)題便是:到底導(dǎo)致這些實(shí)例負(fù)載的具體查詢語(yǔ)句是什么?哪個(gè)用戶導(dǎo)致的?哪個(gè)連接主機(jī)客戶端?哪個(gè)應(yīng)用數(shù)據(jù)庫(kù)?這一系列的問(wèn)題我們可以使用多維負(fù)載信息部分來(lái)解答。

分析數(shù)據(jù)庫(kù)實(shí)例性能調(diào)優(yōu)利器Performance Insights

從以上截圖的下半部分,我們可以方便的找出與AAS變化趨勢(shì)關(guān)聯(lián)的負(fù)載對(duì)應(yīng)的SQL查詢語(yǔ)句,以及每個(gè)語(yǔ)句對(duì)AAS的貢獻(xiàn)的對(duì)比情況。當(dāng)然,您也可以根據(jù)自己的需要切換為Waits,Users,Hosts,Commands,Databases和Status,分別表示資源等待,用戶,客戶端主機(jī),命令類(lèi)型,數(shù)據(jù)庫(kù),進(jìn)程狀態(tài)等維度查看。

Performance Insights架構(gòu)

了解阿里云RDS Performance Insights能夠做什么以后,讓我們來(lái)看Performance Insights的設(shè)計(jì)架構(gòu)圖,簡(jiǎn)要概括為五個(gè)字:四層兩鏈路。

分析數(shù)據(jù)庫(kù)實(shí)例性能調(diào)優(yōu)利器Performance Insights

四層架構(gòu)

RDS Performance Insights四層架構(gòu)從上往下,依次為:

應(yīng)用層:前端用戶可見(jiàn),承載著我們產(chǎn)品的思路和邏輯,是終端用戶可見(jiàn)的產(chǎn)品呈現(xiàn)。 
服務(wù)層:各系統(tǒng)API協(xié)調(diào)工作,為應(yīng)用層提供應(yīng)用數(shù)據(jù)服務(wù),我們產(chǎn)品主要的業(yè)務(wù)邏輯處理層。 
數(shù)據(jù)層:數(shù)據(jù)實(shí)時(shí)處理平臺(tái),統(tǒng)計(jì)匯總,數(shù)據(jù)扁平化,實(shí)時(shí)計(jì)算,最終持久化到元數(shù)據(jù)庫(kù)中,為服務(wù)層提供數(shù)據(jù)。 
采集層:從RDS實(shí)例中,采集有價(jià)值的基礎(chǔ)數(shù)據(jù),為數(shù)據(jù)層輸入數(shù)據(jù)。

兩條鏈路

從數(shù)據(jù)鏈路來(lái)看Performance Insights,有兩條鏈路:

訪問(wèn)鏈路:數(shù)據(jù)至上而下請(qǐng)求訪問(wèn),至下而上的數(shù)據(jù)返回。 
采集鏈路:數(shù)據(jù)從生產(chǎn)到消費(fèi),從統(tǒng)計(jì)匯總到最終落庫(kù)整個(gè)生命過(guò)程。

典型案例

以下兩個(gè)典型案例,來(lái)看看Performance Insights如何一目了然,一針見(jiàn)血的幫助我們?cè)\斷分析數(shù)據(jù)庫(kù)系統(tǒng)瓶頸,資源等待和SQL查詢語(yǔ)句。

為什么CPU 100%了 
XXX時(shí)間點(diǎn)SQL查詢變慢了

為什么CPU 100%了?

在我們多年的專(zhuān)家服務(wù)過(guò)程中, 遇到最多的用戶問(wèn)題便是“為什么我的CPU 100%了”,來(lái)看看Performance Insights是如何庖丁解牛這個(gè)問(wèn)題。

Performance Insights截圖

以下是該RDS實(shí)例,Performance Insights頁(yè)面截圖。

分析數(shù)據(jù)庫(kù)實(shí)例性能調(diào)優(yōu)利器Performance Insights

分析

我們從Performance Insights頁(yè)面截圖分析出以下幾個(gè)問(wèn)題:

從資源利用率中CPU使用率和活躍會(huì)話數(shù)量來(lái)看:大概在 09:59 - 10:05,均有大幅上升。CPU使用率達(dá)到了100%,活躍會(huì)話(Active Sessions)達(dá)到了400+;

AAS變化趨勢(shì)中發(fā)現(xiàn),這段時(shí)間內(nèi),系統(tǒng)瓶頸主要集中在CPU和Lock兩資源的等待,總的Active Sessions數(shù)遠(yuǎn)遠(yuǎn)超過(guò)CPU Cores(實(shí)例的CPU Cores為16),存在嚴(yán)重的系統(tǒng)瓶頸。

SQL語(yǔ)句詳情部分:非常清晰的看到排在第一位的SQL查詢語(yǔ)句是等待CPU資源,達(dá)到了96個(gè)活躍會(huì)話;第二位是Lock資源等待,達(dá)到了79個(gè)會(huì)話,可以點(diǎn)擊SQL語(yǔ)句,查看詳情。

XXX時(shí)間點(diǎn)SQL查詢變慢了

另外,用戶經(jīng)常遇到的一個(gè)問(wèn)題是“為什么我的SQL查詢語(yǔ)句突然變慢了”?

Performance Insights截圖

某RDS實(shí)例用戶反饋在16:05左右,原本執(zhí)行很快的Update語(yǔ)句,突然變得很慢,16:08左右恢復(fù)正常,以下是該RDS實(shí)例

從Performance Insights,我們可以分析出:

從AAS變化趨勢(shì)圖中,發(fā)現(xiàn)大約從16:05:50秒開(kāi)始,系統(tǒng)出現(xiàn)了大量等待Lock資源的活躍會(huì)話(圖中橙色顏色區(qū)域),達(dá)到了33個(gè),遠(yuǎn)超CPU Cores數(shù)。

從截圖最下部分SQL查詢中,發(fā)現(xiàn)等待Lock資源的SQL語(yǔ)句(第一條,橙色標(biāo)示),恰巧是用戶抱怨變慢的Update操作語(yǔ)句。于是我們可以很快斷定,這個(gè)Update變慢的原因是資源被鎖住,導(dǎo)致等待鎖資源釋放時(shí)間過(guò)長(zhǎng),拉長(zhǎng)了執(zhí)行時(shí)間,即Update語(yǔ)句變慢了。
從AAS變化趨勢(shì)圖中,發(fā)現(xiàn)大約在16:07:20左右,等待鎖資源的活躍進(jìn)程消失了,Update語(yǔ)句性能恢復(fù)正常,說(shuō)明鎖資源已經(jīng)釋放。

以上,我們從兩個(gè)特定的用戶案例可以看到Performance Insights可以簡(jiǎn)單直觀,輕松愉悅的幫助用戶診斷問(wèn)題,關(guān)聯(lián)分析系統(tǒng)瓶頸,資源等待和SQL查詢,取得了非常好的效果。

Performance Insights的未來(lái)

伴隨阿里云RDS Performance Insights第一期發(fā)布,我們已經(jīng)可以幫助用戶快速發(fā)現(xiàn)RDS實(shí)例性能問(wèn)題,以及導(dǎo)致性能問(wèn)題的具體SQL查詢。但是,這遠(yuǎn)遠(yuǎn)不夠,我們還需要更深入的幫助我們的客戶自動(dòng)化、智能化解決問(wèn)題。

從“是什么”到“為什么”

當(dāng)前,用戶通過(guò)阿里云RDS Performance Insights找到了導(dǎo)致性能問(wèn)題的具體查詢SQL語(yǔ)句后,接下來(lái)很自然的一個(gè)問(wèn)題是,為什么這個(gè)查詢語(yǔ)句會(huì)導(dǎo)致性能問(wèn)題?是缺失必要的索引?統(tǒng)計(jì)信息數(shù)據(jù)傾斜?查詢數(shù)據(jù)類(lèi)型轉(zhuǎn)換?Non-SARG查詢等等?接下來(lái),我們需要深入探索為什么SQL會(huì)導(dǎo)致性能問(wèn)題。

從“為什么”到“怎么辦”

當(dāng)用戶知道了SQL語(yǔ)句為什么有性能問(wèn)題以后,接下來(lái)的問(wèn)題便是:我該怎么做才能解決性能問(wèn)題?我們需要明確告訴用戶怎么辦就能夠解決性能問(wèn)題。

從“怎么辦”到“自動(dòng)辦”

隨著用戶能夠解決SQL語(yǔ)句性能問(wèn)題以后,用戶接下來(lái)最為迫切的需求便是:阿里云能否幫我們預(yù)先發(fā)現(xiàn)、智能化、自動(dòng)化處理解決這些類(lèi)似的問(wèn)題?

感謝各位的閱讀,以上就是“分析數(shù)據(jù)庫(kù)實(shí)例性能調(diào)優(yōu)利器Performance Insights”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)分析數(shù)據(jù)庫(kù)實(shí)例性能調(diào)優(yōu)利器Performance Insights這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI