您好,登錄后才能下訂單哦!
這篇文章主要講解了“分析數(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”吧!
阿里云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)化。
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ù)。
阿里云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í)時(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ì)圖。
從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)解答。
從以上截圖的下半部分,我們可以方便的找出與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è)字:四層兩鏈路。
四層架構(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è)面截圖。
分析
我們從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查詢,取得了非常好的效果。
伴隨阿里云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)題。
隨著用戶能夠解決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)注!
免責(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)容。