MySQL效能剖析工具(pt-query-digest)

luckyfriends發表於2014-07-15
這個工具同樣來自percona-toolkit
該工具集合的其他工具
MySQL Slave異常關機的處理 (pt-slave-restart)
http://blog.itpub.net/29254281/viewspace-1183545/

驗證MySQL主從一致性(pt-table-checksum&pt-table-sync)
http://blog.itpub.net/29254281/viewspace-1208415/


它可以剖析各種日誌,從而分析效能問題
包括
1.慢日誌(預設)
2.tcpdump
3.general log
4.binlog
5.show processlist

實驗通過tpcc模擬一定的壓力,並開啟binlog,general log,slow log和tcpdump收集日誌。
關於tpcc參考:http://blog.itpub.net/29254281/viewspace-1195589/

1.slow log方式
將slow_query_log設定為on
long_query_time設定為0
重新連線伺服器(一般意味著中介軟體伺服器重啟)
這樣慢日誌將記錄所有的操作。

通過pt-query-digest分析慢日誌檔案,生成剖析報告
首先是概要資訊,包括一共有54.17k個操作,46個語句,平均每秒1.55k查詢,剖析報告覆蓋的時間等。

概要還包括類似Top SQL的分析
可以從響應時間檢視對伺服器效能影響最大的SQL,其中R/Call指的是  平均每次執行的響應時間 ResponseTime/Calls

然後就是每條SQL的詳細剖析報告,
pct指的是該項佔概要報告中的百分比

2.tcpdump方式
因為慢日誌方式需要重新連線,而生產環境重啟中介軟體是非常昂貴的操作。
所以在資料庫伺服器上抓包分析也是一種不錯的選擇。
pt-query-digest對於抓包有一定的格式。(-x -nn -q -tttt)
-s:源埠
-c:抓包的數量
tcpdump -s 65535 -x -nn -q -tttt -i any -c 100000 port 3306 > test.dmp
在完成抓包採集之後進行分析
pt-query-digest --limit 10 --type tcpdump test.dmp
limit 10 限制顯示排名前10的操作

其他方式生成的資訊會有缺失,可能達不到預期的效果。
而processlist方式實驗失敗,尚不清楚如何使用這種方式剖析效能。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1218089/,如需轉載,請註明出處,否則將追究法律責任。

相關文章