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性能分析工具。