溫馨提示×

溫馨提示×

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

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

MYSQL數(shù)據(jù)庫服務(wù)CPU高問題分析與優(yōu)化

發(fā)布時間:2020-07-30 17:16:45 來源:網(wǎng)絡(luò) 閱讀:14826 作者:郭柏雅 欄目:MySQL數(shù)據(jù)庫

MYSQL數(shù)據(jù)庫服務(wù)CPU高問題分析與優(yōu)化

   MySQL服務(wù)性能監(jiān)控分析與優(yōu)化是永恒的主題,做為性能測試人員有時也要站在DBA角度出發(fā)進(jìn)行適當(dāng)分析與優(yōu)化,這也是性能測試人員能長期生存發(fā)展之路。而資源的使用監(jiān)控分析才是性能故障分析的根本首要任務(wù)。在數(shù)據(jù)庫服務(wù)器內(nèi)部,如果執(zhí)行的操作會嚴(yán)重受到內(nèi)存、CPU或磁盤吞吐量中任何一個的影響,則可以將它視為瓶頸。

   因此理解服務(wù)器如何運(yùn)行,資源損耗在哪些方面對問題進(jìn)行故障診斷是非常有價值有意義的活動,具體案例如下。

這些監(jiān)控分析優(yōu)化方法等細(xì)節(jié)我們在品課學(xué)院性能實(shí)戰(zhàn)課堂中都會以實(shí)戰(zhàn)方式進(jìn)行實(shí)操性測試監(jiān)控分析實(shí)踐理解學(xué)習(xí),特別是資源利用問題花費(fèi)在什么地方,課堂中都會操作項目案例模擬講解,來提高學(xué)員對性能監(jiān)控分析的認(rèn)知。

1、  識別瓶頸

在分析性能問題時,首先需要識別瓶頸,然后將該瓶頸解決。產(chǎn)生瓶頸的原因通常有兩類,一類是由于錯誤的配置,另一類是達(dá)到了軟件或硬件的性能或可伸縮性的限制,例如SQL語法問題。

2、  識別CPU瓶頸

前面章節(jié)我們有講到《MYSQL數(shù)據(jù)庫服務(wù)磁盤IO高問題分析與優(yōu)化》有提到IO 問題故障分析與解決方案,而本章主要是講解CPU 問題定位分析與解決方案。

CPU時間開銷是最昂貴、最寶貴的服務(wù)器資源,并且系統(tǒng)總體性能往往對CPU使用率非常敏感。例如,用戶經(jīng)??梢圆煊X到高CPU使用率的狀況,就是響應(yīng)時間慢,超時現(xiàn)象等。

3、瓶頸根源分析

MYSQL自身經(jīng)常會導(dǎo)致高CPU使用率的情形,包括執(zhí)行差效率的查詢、哈希連接或多表合并連接、參數(shù)設(shè)置不合理等。

4、  案例說明如下

測試場景,在壓力測試某銀行系統(tǒng)登錄退出時,因用戶登錄需要查詢對應(yīng)的客戶相關(guān)交易信息等,而需要涉及SQL查詢,這時LR 并發(fā)100用戶時,響應(yīng)時間5秒多,人工登錄發(fā)現(xiàn)出現(xiàn)超時錯誤信息,這時通過top命令監(jiān)控到CPU使用率超過90%,如下圖:

 4.1 前端頁面響應(yīng)超時:



MYSQL數(shù)據(jù)庫服務(wù)CPU高問題分析與優(yōu)化

    4.2 數(shù)據(jù)庫服務(wù)器資源使用率

    MYSQL數(shù)據(jù)庫服務(wù)CPU高問題分析與優(yōu)化

       4.3 LR響應(yīng)時間指標(biāo)分析

            MYSQL數(shù)據(jù)庫服務(wù)CPU高問題分析與優(yōu)化

      4.4 MYSQL 語法分析

 在監(jiān)控過程中發(fā)現(xiàn)若干SQL語法都是走全表掃描方式,導(dǎo)致響應(yīng)時間和CPU使用率偏高,其中一個SQL如下

         MYSQL數(shù)據(jù)庫服務(wù)CPU高問題分析與優(yōu)化

 

4.6、  優(yōu)化方法

這時對表的需要檢索字段建立索引后各項性能指標(biāo)如下圖

MYSQL數(shù)據(jù)庫服務(wù)CPU高問題分析與優(yōu)化

這時 同樣是100用戶并發(fā),如下圖建立索引前后響應(yīng)時間走勢圖:

MYSQL數(shù)據(jù)庫服務(wù)CPU高問題分析與優(yōu)化

SQL 檢索數(shù)據(jù)路徑:

 MYSQL數(shù)據(jù)庫服務(wù)CPU高問題分析與優(yōu)化

發(fā)現(xiàn)雖然建立索引,響應(yīng)時間降低到2秒以下,但是數(shù)據(jù)庫服務(wù)器cpu資源使用率仍然70%以上,偏高,這時發(fā)現(xiàn)緩存命中率不高,針對query_cache適當(dāng)調(diào)整大小后,mysql數(shù)據(jù)庫cpu使用率講到30%以下和響應(yīng)時間1秒以下,如下圖。

MYSQL數(shù)據(jù)庫服務(wù)CPU高問題分析與優(yōu)化


響應(yīng)時間指標(biāo)如下:

MYSQL數(shù)據(jù)庫服務(wù)CPU高問題分析與優(yōu)化

 


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

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

AI