MYsql監(jiān)控:全局監(jiān)控workbench + profiling(sql調(diào)優(yōu))

Mysql有很多監(jiān)控工具,有免費(fèi)的workbench、innotop、Monitoring Tool;

workbench比較簡(jiǎn)單,全局監(jiān)控 重點(diǎn)關(guān)注儀表盤(pán),下面是轉(zhuǎn)的關(guān)于儀表盤(pán)的一些描述;

下面是關(guān)于儀表盤(pán)的描述,我就不再重復(fù)啰嗦了;轉(zhuǎn)自http://www.itdecent.cn/p/bb42f18ae5c3

?MySQLworkbench可以在圖形化儀表盤(pán)中顯示服務(wù)器性能統(tǒng)計(jì)信息。如果想要顯示儀表盤(pán),請(qǐng)打開(kāi)一個(gè)數(shù)據(jù)庫(kù)服務(wù)器,然后從左側(cè)導(dǎo)航中選擇管理("management")選項(xiàng)卡。然后單擊儀表盤(pán)("dashboard")。

儀表盤(pán)位置

下圖顯示了儀表盤(pán)中的信息布局

注意 此功能需要MySQL server5.6或者更高版本

儀表盤(pán)布局

網(wǎng)絡(luò)狀態(tài)(Network Status)

這里突出顯示了Mysql服務(wù)器通過(guò)客戶端連接發(fā)送和接受的網(wǎng)絡(luò)流量的統(tǒng)計(jì)數(shù)據(jù),包括傳入網(wǎng)絡(luò)流量,傳出網(wǎng)絡(luò)流量和客戶端連接數(shù)量

網(wǎng)絡(luò)狀態(tài)

從上到下依次為:

傳入網(wǎng)絡(luò)數(shù)量(Incoming Network Traffic)單位字節(jié)/秒

傳出網(wǎng)絡(luò)數(shù)量(Outgoing Network Traffic)單位字節(jié)/秒

客戶端連接數(shù)量(Client connections)

MySQL狀態(tài)(MySQL status)

這里突出顯示了MySQL服務(wù)器主要活動(dòng)和性能統(tǒng)計(jì)信息。數(shù)據(jù)包括開(kāi)表緩存命中效率(MySQL是如何打開(kāi)表的),執(zhí)行的sql語(yǔ)句,以及SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER和DROP語(yǔ)句的計(jì)數(shù)(每秒)。

MySQL Status

從上到下依次是

開(kāi)表緩存命中率(Table Open Cache)。鼠標(biāo)懸停有更詳細(xì)信息

sql語(yǔ)句執(zhí)行量(SQL Statements Executed)

各種主要SQL語(yǔ)句執(zhí)行數(shù)量

InnoDB狀態(tài)(InnoDB Status)

這里提供了由InnoDb儲(chǔ)存引擎生成的InnoDB緩沖池和磁盤(pán)活動(dòng)的概述。數(shù)據(jù)分為三組

注意

將鼠標(biāo)懸停在圖表上可查看其他信息,例如總計(jì)數(shù)。

用法

讀請(qǐng)求(read reqs):InnoDB對(duì)緩沖池執(zhí)行的邏輯讀取請(qǐng)求數(shù)(每秒)

寫(xiě)請(qǐng)求(write reqs):InnoDB對(duì)緩沖池執(zhí)行的邏輯寫(xiě)請(qǐng)求數(shù)(每秒)

磁盤(pán)讀?。╠isk reads):InnoDB無(wú)法從緩沖池中進(jìn)行邏輯讀取的次數(shù)。這些必須從磁盤(pán)中讀取

InnoDB緩沖池使用情況(InnoDB Buffer Pool):正在使用的InnoDB緩沖池的百分比。鼠標(biāo)懸停可以查看附加信息,比如使用率和空閑的頁(yè)(InnoDB緩沖池

寫(xiě)

寫(xiě)入的數(shù)據(jù)(data written):寫(xiě)入InnoDB重做日志文件的寫(xiě)入次數(shù)

寫(xiě)入(writes):寫(xiě)入InnoDB重做日志文件的物理寫(xiě)入次數(shù)

InnoDB磁盤(pán)寫(xiě)入(InnoDB Disk Writes):將鼠標(biāo)懸??梢圆榭刺囟雰?nèi)的磁盤(pán)寫(xiě)入次數(shù)??刹榭醋詈?20s

寫(xiě)入(writing):由InnoDB存儲(chǔ)引擎使用文件操作寫(xiě)入的數(shù)據(jù)總量(以字節(jié)為單位)。

雙寫(xiě)緩存次數(shù)(Doublewrite Buffer):執(zhí)行的雙重緩存寫(xiě)入次數(shù)。

InnoDB磁盤(pán)讀取(InnoDB Disk Reads):將鼠標(biāo)懸??梢圆榭刺囟雰?nèi)的磁盤(pán)讀取次數(shù)??刹榭醋詈?20s

讀?。╮eading):由InnoDB存儲(chǔ)引擎在文件操作中讀取的數(shù)據(jù)總量(以字節(jié)為單位)。

InnoDB Status

作者:Swerve

鏈接:http://www.itdecent.cn/p/bb42f18ae5c3

來(lái)源:簡(jiǎn)書(shū)

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。



?



Mysql-性能分析-Profiling(sql)調(diào)優(yōu)

?? 如果技能水平較低,性能測(cè)試工程師至少應(yīng)該把調(diào)優(yōu)前后的第四步截圖做下對(duì)比,并報(bào)告;

下面是轉(zhuǎn)自http://www.itdecent.cn/p/36b35f84ccde的詳細(xì)描述,我就不具體寫(xiě)了

是什么

Show Profile是mysql提供可以用來(lái)分析當(dāng)前會(huì)話中語(yǔ)句執(zhí)行的資源消耗情況,可以用于Sql調(diào)優(yōu)的測(cè)量。

怎么玩

1.先查看是否開(kāi)啟了此功能:show variables like 'profiling%';

??? 默認(rèn)情況下,參數(shù)出于關(guān)閉狀態(tài),為OFF狀態(tài)

2.開(kāi)啟Profiling:set profiling=1;

?? 開(kāi)啟此功能后,就能執(zhí)行我們的SQL語(yǔ)句

3.展示最近的SQL執(zhí)行情況:show profiles;

??? 此命令展示最近執(zhí)行的sql語(yǔ)句,默認(rèn)是15次,一個(gè)示例如下:

展示最近的15條

Query_ID會(huì)一直遞增,后期我們會(huì)使用這個(gè)id,來(lái)具體查詢(xún)某一條SQL的執(zhí)行耗時(shí)清單

4.具體查看某一條SQL的執(zhí)行細(xì)節(jié):show profile cpu,block io for query 8;

如下圖為查詢(xún)id=8的這條sql的執(zhí)行細(xì)節(jié),此處查詢(xún)了cpu和block io這兩種類(lèi)型,其他可以選擇的類(lèi)型在圖的下面展示:

SQL執(zhí)行具體細(xì)節(jié)

可以使用的類(lèi)型如下:

ALL;顯示所有的開(kāi)銷(xiāo)信息

BLOCK IO:顯示塊IO相關(guān)開(kāi)銷(xiāo)

CONTEXT SWITCHES:上下文切換相關(guān)開(kāi)銷(xiāo)

CPU:顯示CPU相關(guān)開(kāi)銷(xiāo)

IPC:顯示發(fā)送和接受相關(guān)開(kāi)銷(xiāo)

MEMORY:顯示內(nèi)存相關(guān)開(kāi)銷(xiāo)

PAGE FAULTS:顯示頁(yè)面錯(cuò)誤相關(guān)開(kāi)銷(xiāo)

SOURCE:顯示和Source_function, Source_file,Source_line相關(guān)的相關(guān)開(kāi)銷(xiāo)

SWAPS:顯示交換次數(shù)相關(guān)開(kāi)銷(xiāo)

應(yīng)該重點(diǎn)關(guān)注什么

請(qǐng)讀者繼續(xù)看前面的圖SQL執(zhí)行具體細(xì)節(jié),左邊Status列展示了一條SQL執(zhí)行的從開(kāi)始到清理的整個(gè)生命周期中執(zhí)行的操作。如果在其生命周期階段出現(xiàn)如下的情況的就要重視了:

converting HEAP to MyISAM :查詢(xún)結(jié)果太大,內(nèi)存都不夠用了往磁盤(pán)上面搬了

Creating tmp table :創(chuàng)建了臨時(shí)表,先拷貝到臨時(shí)表,用完后再刪除

Copying to tmp table on disk:把內(nèi)存中的臨時(shí)表復(fù)制到磁盤(pán)中,這個(gè)很耗性能

locked :這個(gè)就是指在等待鎖的意思

可以看看如下Creating tmp table的樣例

Creating tmp table的樣例

總結(jié)

開(kāi)啟Profiling后,mysql會(huì)留下15條最近執(zhí)行的sql的現(xiàn)場(chǎng), 便于我們發(fā)現(xiàn)問(wèn)題。

Show profiles用來(lái)查最近的15條。

Show profile用來(lái)展示每一個(gè)SQL執(zhí)行階段的耗時(shí)清單,便于我們發(fā)現(xiàn)耗時(shí)最多的地方,然后以此為依據(jù)查找問(wèn)題所在,最后優(yōu)化SQL或者優(yōu)化mysql參數(shù)。比如耗時(shí)清單創(chuàng)建了臨時(shí)表,就要考慮表是否創(chuàng)建索引,如果創(chuàng)建了那么是否沒(méi)有用到或者失效了。

總的來(lái)說(shuō)Profiling是一個(gè)很不錯(cuò)的mysql性能分析工具。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容