【pt系列】MySQL慢日誌分析工具pt-query-digest使用、報告分析

神諭丶發表於2016-03-02
pt-query-digest是一套幫助DBAmysql的工具集percona-toolkit下的一個小工具,由percona公司開發。
用於做日誌分析,此處用於分析slow log,除此之外還可以分析binary 
log,和general log。


一、安裝


去官網選擇對應的版本和平臺



此處我用的是percona-toolkit-2.2.16.tar.gz,直接解壓使用。

  1. $ tar zxvf percona-toolkit-2.2.16.tar.gz
  2. $ cd percona-toolkit-2.2.16/bin
  3. $ ./pt-query-digest --version




二、基礎使用

基礎語法:
pt-query-digest [OPTION...] [FILE]

1、完整分析
  1. $ pt-query-digest slow_log > slow_report

2、分析最近1小時產生的日誌\分析從--since到--until產生的日誌
  1. $ pt-query-digest --since=1h slow_log > slow_report2

  2. $ pt-query-digest --since='2016-01-01 00:00:00' --until='2016-02-01' slow_log > slow_report3

3、針對某類語句分析,比如select
  1. $ pt-query-digest --filter '$event->{fingerprint} =~ m/^select/i' slow.log > slow_report4

4、針對某個使用者分析,比如dbback
  1. $ pt-query-digest --filter '($event->{user} || "") =~ m/^dbback/i' slow.log> slow_report5

5、將分析結果輸出到mysql-server中:
  1. $ pt-query-digest --review h=localhost,D=test,t=review slow.log

更多用法可參考官方手冊



輸出結果分析

第一部分:
Overall:
126.72k 來的查詢次數,其中1k=10^3
140 去重之後的次數,即總共有多少個查詢
Time range:
從日誌中提取出2016-02-01 00:02:12 到 2016-03-02 03:02:30中的相關語句
接下來是時間和傳輸流量統計:
total:總計、min:最小值、max:最大值、avg:平均值、stddev:標準方差、median:中值



第二部分
Rank:排序等級,在第部分可以用於匹配具體語句
Query ID:16進位制數的查詢ID,在第三部分
Response time:總共的響應時間,即這一條總共的執行時間
Calls:總共被查詢的次數,即某一條總共被執行了多少層次
R/Calls:這一條的平均執行時間
V/M:
方差均值比
Item:語句概覽



第三部分:
Database:資料庫名
Hosts:DB的host
Users:執行該語句的DB使用者
Query_time distribution:該條語句執行時間的次數分佈,###越多代表越多的執行時間在這個範圍





其他:
如果要分析結果視覺化,可以結合Anemometer等工具實現。



參考
https://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html


作者微信公眾號(持續更新)


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

相關文章